1. 05 9月, 2020 1 次提交
  2. 31 7月, 2020 4 次提交
    • E
      drm/msm: Quiet error during failure in optional resource mappings. · 62a35e81
      Eric Anholt 提交于
      We don't expect to find vbif_nrt or regdma on sdm845, but were clogging
      up dmesg with errors about it.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Reported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      62a35e81
    • E
      drm/msm: Garbage collect unused resource _len fields. · ecf9cd48
      Eric Anholt 提交于
      Nothing was using the lengths of these ioremaps.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      ecf9cd48
    • R
      drm/msm/dpu: Use OPP API to set clk/perf state · b0530eb1
      Rajendra Nayak 提交于
      On some qualcomm platforms DPU needs to express a performance state
      requirement on a power domain depending on the clock rates.
      Use OPP table from DT to register with OPP framework and use
      dev_pm_opp_set_rate() to set the clk/perf state.
      Signed-off-by: NRajendra Nayak <rnayak@codeaurora.org>
      Reviewed-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NMatthias Kaehlcke <mka@chromium.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      b0530eb1
    • K
      drm/msm/dpu: ensure device suspend happens during PM sleep · ca8199f1
      Kalyan Thota 提交于
      "The PM core always increments the runtime usage counter
      before calling the ->suspend() callback and decrements it
      after calling the ->resume() callback"
      
      DPU and DSI are managed as runtime devices. When
      suspend is triggered, PM core adds a refcount on all the
      devices and calls device suspend, since usage count is
      already incremented, runtime suspend was not getting called
      and it kept the clocks on which resulted in target not
      entering into XO shutdown.
      
      Add changes to force suspend on runtime devices during pm sleep.
      
      Changes in v1:
       - Remove unnecessary checks in the function
          _dpu_kms_disable_dpu (Rob Clark).
      
      Changes in v2:
       - Avoid using suspend_late to reset the usagecount
         as suspend_late might not be called during suspend
         call failures (Doug).
      
      Changes in v3:
       - Use force suspend instead of managing device usage_count
         via runtime put and get API's to trigger callbacks (Doug).
      
      Changes in v4:
       - Check the return values of pm_runtime_force_suspend and
         pm_runtime_force_resume API's and pass appropriately (Doug).
      
      Changes in v5:
       - With v4 patch, test cycle has uncovered issues in device resume.
      
         On bubs: cmd tx failures were seen as SW is sending panel off
         commands when the dsi resources are turned off.
      
         Upon suspend, DRM driver will issue a NULL composition to the
         dpu, followed by turning off all the HW blocks.
      
         v5 changes will serialize the NULL commit and resource unwinding
         by handling them under PM prepare and PM complete phases there by
         ensuring that clks are on when panel off commands are being
         processed.
      
      Changes in v6:
      - Use drm_mode_config_helper_suspend/resume() instead of legacy API
        drm_atomic_helper_suspend/resume() (Doug).
      
        Trigger runtime callbacks from the suspend/resume call to turn
        off the resources.
      
      Changes in v7:
      - Add "__maybe_unused" to the functions to avoid compilation
        failures. Cleanup unnecessary configs (Doug).
      Signed-off-by: NKalyan Thota <kalyan_t@codeaurora.org>
      Reviewed-by: NDouglas Anderson <dianders@chromium.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      ca8199f1
  3. 23 6月, 2020 1 次提交
  4. 02 6月, 2020 1 次提交
  5. 24 5月, 2020 2 次提交
  6. 19 5月, 2020 1 次提交
  7. 20 3月, 2020 2 次提交
    • T
      drm/msm/dpu: Remove some set but not used variables · acc978d7
      tongtiangen 提交于
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function _dpu_debugfs_show_regset32:
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:142:26: warning: variable priv set but not used [-Wunused-but-set-variable]
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function dpu_kms_prepare_commit:
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:271:21: warning: variable dev set but not used [-Wunused-but-set-variable]
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function _dpu_kms_hw_destroy:
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:555:21: warning: variable dev set but not used [-Wunused-but-set-variable]
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function dpu_kms_hw_init:
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:763:26: warning: variable priv set but not used [-Wunused-but-set-variable]
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function dpu_runtime_suspend:
      drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:1021:21: warning: variable ddev set but not used [-Wunused-but-set-variable]
      Reported-by: NHulk Robot <hulkci@huawei.com>
      Signed-off-by: Ntongtiangen <tongtiangen@huawei.com>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      acc978d7
    • D
      drm/msm/dpu: Track resources in global state · de3916c7
      Drew Davenport 提交于
      Move mapping of resources to encoder ids from the resource manager to a
      new dpu_global_state struct. Store this struct in global atomic state.
      
      Before this patch, atomic test would be performed by modifying global
      state (resource manager), and backing out any changes if the test fails.
      By using drm atomic global state, this is not necessary as any changes
      to the global state will be discarded if the test fails.
      Signed-off-by: NDrew Davenport <ddavenport@chromium.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      de3916c7
  8. 03 1月, 2020 1 次提交
  9. 11 10月, 2019 1 次提交
  10. 08 10月, 2019 1 次提交
  11. 07 10月, 2019 4 次提交
  12. 04 9月, 2019 9 次提交
    • R
      drm/msm/dpu: async commit support · cd6d9231
      Rob Clark 提交于
      In addition, moving to kms->flush_commit() lets us drop the only user
      of kms->commit().
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      cd6d9231
    • R
      drm/msm: split power control from prepare/complete_commit · e35a29d5
      Rob Clark 提交于
      With atomic commit, ->prepare_commit() and ->complete_commit() may not
      be evenly balanced (although ->complete_commit() will complete each
      crtc that had been previously prepared).  So these will no longer be
      a good place to enable/disable clocks needed for hw access.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      e35a29d5
    • R
      drm/msm: add kms->flush_commit() · 9f6b6564
      Rob Clark 提交于
      Add ->flush_commit(crtc_mask).  Currently a no-op, but kms backends
      should migrate writing flush registers to this hook, so we can decouple
      pushing updates to hardware, and flushing the updates.
      
      Once we add async commit support, the hw updates will be pushed down to
      the hw synchronously, but flushing the updates will be deferred until as
      close to vblank as possible, so that multiple updates can be combined in
      a single frame.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      9f6b6564
    • R
      drm/msm: convert kms->complete_commit() to crtc_mask · 80b4b4a7
      Rob Clark 提交于
      Prep work for async commits, in which case this will be called after we
      no longer have the atomic state object.
      
      This drops some wait_for_vblanks(), but those should be unnecessary, as
      we call this after waiting for flush to complete.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      80b4b4a7
    • R
      drm/msm: add kms->wait_flush() · d4d2c604
      Rob Clark 提交于
      First step in re-working the atomic related internal API to prepare for
      async updates pending.. ->wait_flush() is intended to block until there
      is no in-progress flush.
      
      A crtc_mask is used, rather than an atomic state object, as this will
      later be used for async flush after the atomic state is destroyed.
      
      This replaces ->wait_for_crtc_commit_done()
      
      v2: update for review comments
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      d4d2c604
    • R
      drm/msm/dpu: unwind async commit handling · b4bb9f15
      Rob Clark 提交于
      It attempted to avoid fps drops in the presence of cursor updates.  But
      it is racing, and can result in hw updates after flush before vblank,
      which leads to underruns.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      b4bb9f15
    • R
      drm/msm/dpu: remove some impossible error checking · 33e42bf6
      Rob Clark 提交于
      I'm sure there is plenty more to remove.. this is just some of the ones
      I noticed.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      33e42bf6
    • R
      drm/msm/dpu: fix "frame done" timeouts · 241b507c
      Rob Clark 提交于
      Previously, dpu_crtc_frame_event_work() would try to aquire all the
      modeset locks in order to check whether it can release bandwidth.  (If
      we only have cmd-mode display, bandwidth can be released at frame-done
      time.)
      
      The problem with this is that it is also responsible for signalling
      frame_done_comp, which dpu_crtc_commit_kickoff() waits on if there is
      already a frame pending.  This is called in the msm_atomic_commit_tail()
      path.. which means that for non-nonblock commits, at least some of the
      modeset locks are already held.
      
      Re-work this scheme to use a reference count to track our need to have
      clocks enabled.  It is incremented for each atomic commit, and
      decremented in the corresponding frame-done.  Additionally, any crtc
      used in video mode hold an extra reference while they are enabled.  The
      net effect is that we can determine in frame-done whether it is safe to
      drop bandwidth without needing to aquire any modeset locks.
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@chromium.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      241b507c
    • S
      drm/msm: drop use of drmP.h · feea39a8
      Sam Ravnborg 提交于
      Drop the deprecated drmP.h header file, and trim msm_drv.h
      to the relevant include files.
      
      This resulted in a suprisingly many edits as many files relied
      on headers included via msm_drv.h.
      But msm_drv.h is not supposed to carry include files it do not need, so
      the individual files have to include what extra they needs.
      
      v2:
      - Rebased on top of https://gitlab.freedesktop.org/drm/msm.git msm-next
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Jordan Crouse <jcrouse@codeaurora.org>
      Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
      Cc: Bruce Wang <bzwang@chromium.org>
      Cc: Shayenne Moura <shayenneluzmoura@gmail.com>
      Cc: Mamta Shukla <mamtashukla555@gmail.com>
      Cc: Jonathan Marek <jonathan@marek.ca>
      Cc: Carsten Behling <carsten.behling@googlemail.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <maxime.ripard@bootlin.com>
      Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
      Cc: Sibi Sankar <sibis@codeaurora.org>
      Cc: Todor Tomov <todor.tomov@linaro.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190804065551.GA5211@ravnborg.org
      feea39a8
  13. 21 6月, 2019 1 次提交
  14. 19 6月, 2019 6 次提交
  15. 01 2月, 2019 4 次提交
  16. 12 12月, 2018 1 次提交