1. 12 Nov, 2021 7 commits
  2. 11 Nov, 2021 17 commits
  3. 10 Nov, 2021 5 commits
  4. 06 Nov, 2021 1 commit
  5. 05 Nov, 2021 9 commits
  6. 04 Nov, 2021 1 commit
    • Brian Norris's avatar
      drm/bridge: analogix_dp: Make PSR-exit block less · c4c6ef22
      Brian Norris authored
      Prior to commit 6c836d96 ("drm/rockchip: Use the helpers for PSR"),
      "PSR exit" used non-blocking analogix_dp_send_psr_spd(). The refactor
      started using the blocking variant, for a variety of reasons -- quoting
      Sean Paul's potentially-faulty memory:
      
      """
       - To avoid racing a subsequent PSR entry (if exit takes a long time)
       - To avoid racing disable/modeset
       - We're not displaying new content while exiting PSR anyways, so there
         is minimal utility in allowing frames to be submitted
       - We're lying to userspace telling them frames are on the screen when
         we're just dropping them on the floor
      """
      
      However, I'm finding that this blocking transition is causing upwards of
      60+ ms of unneeded latency on PSR-exit, to the point that initial cursor
      movements when leaving PSR are unbearably jumpy.
      
      It turns out that we need to meet in the middle somewhere: Sean is right
      that we were "lying to userspace" with a non-blocking PSR-exit, but the
      new blocking behavior is also waiting too long:
      
      According to the eDP specification, the sink device must support PSR
      entry transitions from both state 4 (ACTIVE_RESYNC) and state 0
      (INACTIVE). It also states that in ACTIVE_RESYNC, "the Sink device must
      display the incoming active frames from the Source device with no
      visible glitches and/or artifacts."
      
      Thus, for our purposes, we only need to wait for ACTIVE_RESYNC before
      moving on; we are ready to display video, and subsequent PSR-entry is
      safe.
      
      Tested on a Samsung Chromebook Plus (i.e., Rockchip RK3399 Gru Kevin),
      where this saves about 60ms of latency, for PSR-exit that used to
      take about 80ms.
      
      Fixes: 6c836d96 ("drm/rockchip: Use the helpers for PSR")
      Cc: <stable@vger.kernel.org>
      Cc: Zain Wang <wzz@rock-chips.com>
      Cc: Tomasz Figa <tfiga@chromium.org>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Sean Paul <seanpaul@chromium.org>
      Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
      Reviewed-by: default avatarSean Paul <seanpaul@chromium.org>
      Signed-off-by: default avatarRobert Foss <robert.foss@linaro.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211103135112.v3.1.I67612ea073c3306c71b46a87be894f79707082df@changeid
      c4c6ef22