1. 18 Nov, 2021 2 commits
    • Ville Syrjälä's avatar
      drm/i915: Move vrr push after the frame counter sampling again · 4765d061
      Ville Syrjälä authored
      Moving the vrr push to happen before sampling the frame counter
      was wrong. If we are already in vblank when the push is sent
      the vblank exit will start immediately which causes the sampled
      frame counter to correspond to the next frame instead of the current
      frame.
      
      So put things back into the original order (except we should
      keep the vrr push within the irq disable section to avoid
      pointless irq related delays here).
      
      We'll just have to accept the tiny race that exists between
      sampling the frame counter vs. vrr push. And let's at least
      document said race properly in a comment.
      
      I suppose we could try to minimize the race by sampling the frame
      counter just before sending the push, but that would require
      changing drm_crtc_arm_vblank_event() to accept a caller provided
      vblank counter value, so leave it be for now. Another thing we
      could do is change the vblank evasion to account for the case
      where a push was already sent. That would anyway be required
      for mailbox style updates. Currently mailbox updates are only
      used by the legacy cursor, but we don't do a vrr push for those.
      
      Cc: Manasi Navare <manasi.d.navare@intel.com>
      Fixes: 6f9976bd ("drm/i915: Do vrr push before sampling the frame counter")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211117183103.27418-1-ville.syrjala@linux.intel.comReviewed-by: default avatarManasi Navare <manasi.d.navare@intel.com>
      4765d061
    • Hans de Goede's avatar
      drm/i915/vlv_dsi: Double pixelclock on read-back for dual-link panels · 41211134
      Hans de Goede authored
      In intel_dsi_get_config() double the pclk returned by foo_dsi_get_pclk()
      for dual-link panels. This fixes the following WARN triggering:
      
       i915 0000:00:02.0: [drm] *ERROR* [CRTC:51:pipe A] mismatch in pixel_rate (expected 235710, found 118056)
       i915 0000:00:02.0: [drm] *ERROR* [CRTC:51:pipe A] mismatch in hw.pipe_mode.crtc_clock (expected 235710, found 118056)
       i915 0000:00:02.0: [drm] *ERROR* [CRTC:51:pipe A] mismatch in hw.adjusted_mode.crtc_clock (expected 235710, found 118056)
       i915 0000:00:02.0: [drm] *ERROR* [CRTC:51:pipe A] mismatch in port_clock (expected 235710, found 118056)
       ------------[ cut here ]------------
       pipe state doesn't match!
       WARNING: CPU: 3 PID: 136 at drivers/gpu/drm/i915/display/intel_display.c:9125 intel_display_finish_reset+0x1bd3/0x2050 [i915]
       ...
      
      This has been tested on a Xiaomi Mi Pad 2 (with CHT x5-Z8500 SoC) tablet,
      with a 1536x2048 dual-link DSI panel.
      
      Note this fix was taken from icl_dsi.c which does the same in
      its get_config().
      
      Cc: Tsuchiya Yuto <kitakar@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211024155020.126328-1-hdegoede@redhat.com
      41211134
  2. 17 Nov, 2021 5 commits
  3. 16 Nov, 2021 1 commit
  4. 15 Nov, 2021 7 commits
  5. 12 Nov, 2021 1 commit
  6. 11 Nov, 2021 21 commits
  7. 10 Nov, 2021 1 commit
  8. 09 Nov, 2021 2 commits