1. 26 4月, 2021 1 次提交
  2. 14 4月, 2021 1 次提交
  3. 12 4月, 2021 2 次提交
  4. 08 4月, 2021 1 次提交
  5. 08 2月, 2021 1 次提交
  6. 11 1月, 2021 1 次提交
    • H
      drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no... · 00cb645f
      Hans de Goede 提交于
      drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
      
      Commit 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
      added an intel_dsi_msleep() helper which skips sleeping if the
      MIPI-sequences have a version of 3 or newer and the panel is in vid-mode;
      and it moved a bunch of msleep-s over to this new helper.
      
      This was based on my reading of the big comment around line 730 which
      starts with "Panel enable/disable sequences from the VBT spec.",
      where the "v3 video mode seq" column does not have any wait t# entries.
      
      Given that this code has been used on a lot of different devices without
      issues until now, it seems that my interpretation of the spec here is
      mostly correct.
      
      But now I have encountered one device, an Acer Aspire Switch 10 E
      SW3-016, where the panel will not light up unless we do actually honor the
      panel_on_delay after exexuting the MIPI_SEQ_PANEL_ON sequence.
      
      What seems to set this model apart is that it is lacking a
      MIPI_SEQ_DEASSERT_RESET sequence, which is where the power-on
      delay usually happens.
      
      Fix the panel not lighting up on this model by using an unconditional
      msleep(panel_on_delay) instead of intel_dsi_msleep() when there is
      no MIPI_SEQ_DEASSERT_RESET sequence.
      
      Fixes: 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201118124058.26021-1-hdegoede@redhat.com
      (cherry picked from commit 6fdb335f)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      00cb645f
  7. 07 1月, 2021 1 次提交
    • H
      drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no... · 6fdb335f
      Hans de Goede 提交于
      drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
      
      Commit 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
      added an intel_dsi_msleep() helper which skips sleeping if the
      MIPI-sequences have a version of 3 or newer and the panel is in vid-mode;
      and it moved a bunch of msleep-s over to this new helper.
      
      This was based on my reading of the big comment around line 730 which
      starts with "Panel enable/disable sequences from the VBT spec.",
      where the "v3 video mode seq" column does not have any wait t# entries.
      
      Given that this code has been used on a lot of different devices without
      issues until now, it seems that my interpretation of the spec here is
      mostly correct.
      
      But now I have encountered one device, an Acer Aspire Switch 10 E
      SW3-016, where the panel will not light up unless we do actually honor the
      panel_on_delay after exexuting the MIPI_SEQ_PANEL_ON sequence.
      
      What seems to set this model apart is that it is lacking a
      MIPI_SEQ_DEASSERT_RESET sequence, which is where the power-on
      delay usually happens.
      
      Fix the panel not lighting up on this model by using an unconditional
      msleep(panel_on_delay) instead of intel_dsi_msleep() when there is
      no MIPI_SEQ_DEASSERT_RESET sequence.
      
      Fixes: 25b4620e ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201118124058.26021-1-hdegoede@redhat.com
      6fdb335f
  8. 10 10月, 2020 1 次提交
  9. 15 9月, 2020 1 次提交
  10. 29 5月, 2020 1 次提交
    • V
      drm/i915: Stop using mode->private_flags · af157b76
      Ville Syrjälä 提交于
      Replace the use of mode->private_flags with a truly private bitmaks
      in our own crtc state. We also need a copy in the crtc itself so the
      vblank code can get at it. We already have scanline_offset in there
      for a similar reason, as well as the vblank->hwmode which is assigned
      via drm_calc_timestamping_constants(). Fortunately we now have a
      nice place for doing the crtc_state->crtc copy in
      intel_crtc_update_active_timings() which gets called both for
      modesets and init/resume readout.
      
      The one slightly iffy spot is the INHERITED flag which we want to
      preserve until userspace/fb_helper does the first proper commit after
      actually calling .detecti() on the connectors. Otherwise we don't have
      the full sink capabilities (audio,infoframes,etc.) when .compute_config()
      gets called and thus we will fail to enable those features when the
      first userspace commit happens. The only internal commit we do prior to
      that should be from intel_initial_commit() and there we can simply
      preserve the INHERITED flag from the readout.
      
      v2: Deal with INHERITED in sanitize_watermarks() as well
      
      CC: Sam Ravnborg <sam@ravnborg.org>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Emil Velikov <emil.l.velikov@gmail.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200429103904.11727-1-ville.syrjala@linux.intel.com
      af157b76
  11. 24 4月, 2020 3 次提交
  12. 21 4月, 2020 1 次提交
  13. 04 4月, 2020 1 次提交
  14. 26 3月, 2020 1 次提交
    • J
      drm/i915/dsi: use struct drm_device based logging · dd10a80f
      Jani Nikula 提交于
      Convert all the DRM_* logging macros to the struct drm_device based
      macros to provide device specific logging.
      
      No functional changes.
      
      Generated using the following semantic patch, originally written by
      Wambui Karuga <wambui.karugax@gmail.com>, with manual fixups on top:
      
      @@
      identifier fn, T;
      @@
      
      fn(...,struct drm_i915_private *T,...) {
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_NOTE(
      +drm_notice(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      
      @@
      identifier fn, T;
      @@
      
      fn(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_NOTE(
      +drm_notice(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/436b6dde60dcba235085c8bb216c841267519fa6.1584714939.git.jani.nikula@intel.com
      dd10a80f
  15. 02 3月, 2020 1 次提交
    • H
      drm/i915/dsi: Remove readback of panel orientation on BYT / CHT · 1ca002ad
      Hans de Goede 提交于
      Commit 82daca29 ("drm/i915: Add "panel orientation" property to the
      panel connector, v6.") uses hardware state readback to determine if the
      GOP is rotating the image by 180 degrees to compensate for upside-down
      mounted panels.
      
      When I wrote that commit I tried to find the VBT bits the GOP used to
      decide to rotate the image, but I could not find them. Back then I only
      looked at the rotation bits in struct mipi_config and these read 0 on
      the 1 BYT device I have with an upside-down mounted panel
      (a GP-electronic T701 tablet). While working on a similar problem on a
      BYT device with an eDP panel I noticed that the new
      intel_dsi_get_panel_orientation() helper which gets used on newer
      SoCs (Apollo-Lake, etc.) checks the rotate_180 bit in the
      BDB_GENERAL_FEATURES VBT block.
      
      I've checked and this bit indeed is set on the GP-electronic T701 tablet,
      so using the generic intel_dsi_get_panel_orientation() helper there does
      the right thing without needing any extra readback of hw state.
      
      This commit removes the special handling of the panel orientation for
      DSI panels on BYT/CHT devices, bringing the handling in line with the
      handling of DSI panels on other devices.
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200228114110.187792-2-hdegoede@redhat.com
      1ca002ad
  16. 04 2月, 2020 2 次提交
    • W
      drm/i915/vlv_dsi: conversion to drm_device based logging macros. · f1f76d7a
      Wambui Karuga 提交于
      Converts the printk based logging macros to the struct drm_device based
      logging macros in i915/display/vlv_dsi.c.
      This was done using the following coccinelle script that transforms
      based on the existence of a drm_i915_private device pointer.
      @@
      identifier fn, T;
      @@
      
      fn(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      
      @@
      identifier fn, T;
      @@
      
      fn(...,struct drm_i915_private *T,...) {
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      
      Checkpatch warnings were addressed manually.
      Signed-off-by: NWambui Karuga <wambui.karugax@gmail.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200130083229.12889-3-wambui.karugax@gmail.com
      f1f76d7a
    • P
      drm/i915/display: Make WARN* drm specific where drm_device ptr is available · f4224a4c
      Pankaj Bharadiya 提交于
      drm specific WARN* calls include device information in the
      backtrace, so we know what device the warnings originate from.
      
      Covert all the calls of WARN* with device specific drm_WARN*
      variants in functions where drm_device or drm_i915_private struct
      pointer is readily available.
      
      The conversion was done automatically with below coccinelle semantic
      patch. checkpatch errors/warnings are fixed manually.
      
      @rule1@
      identifier func, T;
      @@
      func(...) {
      ...
      struct drm_device *T = ...;
      <...
      (
      -WARN(
      +drm_WARN(T,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(T,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(T,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(T,
      ...)
      )
      ...>
      }
      
      @rule2@
      identifier func, T;
      @@
      func(struct drm_device *T,...) {
      <...
      (
      -WARN(
      +drm_WARN(T,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(T,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(T,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(T,
      ...)
      )
      ...>
      }
      
      @rule3@
      identifier func, T;
      @@
      func(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      
      @rule4@
      identifier func, T;
      @@
      func(struct drm_i915_private *T,...) {
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      Signed-off-by: NPankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200128181603.27767-20-pankaj.laxminarayan.bharadiya@intel.com
      f4224a4c
  17. 31 1月, 2020 1 次提交
  18. 28 1月, 2020 1 次提交
  19. 22 1月, 2020 1 次提交
  20. 14 1月, 2020 1 次提交
  21. 11 1月, 2020 1 次提交
  22. 03 1月, 2020 2 次提交
  23. 29 12月, 2019 1 次提交
  24. 18 12月, 2019 1 次提交
  25. 01 11月, 2019 2 次提交
  26. 31 10月, 2019 2 次提交
  27. 24 8月, 2019 1 次提交
  28. 17 8月, 2019 1 次提交
  29. 07 8月, 2019 1 次提交
  30. 09 7月, 2019 1 次提交
  31. 17 6月, 2019 1 次提交
  32. 08 6月, 2019 2 次提交