1. 13 9月, 2020 3 次提交
  2. 18 8月, 2020 1 次提交
  3. 31 7月, 2020 3 次提交
    • B
      drm/msm: use kthread_create_worker instead of kthread_run · 1041dee2
      Bernard 提交于
      Use kthread_create_worker to simplify the code and optimise
      the manager struct: msm_drm_thread. With this change, we
      could remove struct element (struct task_struct *thread &
      struct kthread_worker worker), instead, use one point (struct
      kthread_worker *worker).
      Signed-off-by: NBernard Zhao <bernard@vivo.com>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      1041dee2
    • 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
    • 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
  4. 15 6月, 2020 2 次提交
  5. 20 5月, 2020 2 次提交
  6. 19 5月, 2020 1 次提交
    • B
      drm/msm: Add syncobj support. · ab723b7a
      Bas Nieuwenhuizen 提交于
      This
      
      1) Enables core DRM syncobj support.
      2) Adds options to the submission ioctl to wait/signal syncobjs.
      
      Just like the wait fence fd, this does inline waits. Using the
      scheduler would be nice but I believe it is out of scope for
      this work.
      
      Support for timeline syncobjs is implemented and the interface
      is ready for it, but I'm not enabling it yet until there is
      some code for turnip to use it.
      
      The reset is mostly in there because in the presence of waiting
      and signalling the same semaphores, resetting them after
      signalling can become very annoying.
      
      v2:
        - Fixed style issues
        - Removed a cleanup issue in a failure case
        - Moved to a copy_from_user per syncobj
      
      v3:
       - Fixed a missing declaration introduced in v2
       - Reworked to use ERR_PTR/PTR_ERR
       - Simplified failure gotos.
      
      Used by: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2769Signed-off-by: NBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
      Reviewed-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      ab723b7a
  7. 20 3月, 2020 1 次提交
  8. 13 2月, 2020 1 次提交
  9. 22 1月, 2020 1 次提交
    • S
      drm/msm: Set dma maximum segment size for mdss · db735fc4
      Sean Paul 提交于
      Turning on CONFIG_DMA_API_DEBUG_SG results in the following error:
      
      [   12.078665] msm ae00000.mdss: DMA-API: mapping sg segment longer than device claims to support [len=3526656] [max=65536]
      [   12.089870] WARNING: CPU: 6 PID: 334 at /mnt/host/source/src/third_party/kernel/v4.19/kernel/dma/debug.c:1301 debug_dma_map_sg+0x1dc/0x318
      [   12.102655] Modules linked in: joydev
      [   12.106442] CPU: 6 PID: 334 Comm: frecon Not tainted 4.19.0 #2
      [   12.112450] Hardware name: Google Cheza (rev3+) (DT)
      [   12.117566] pstate: 60400009 (nZCv daif +PAN -UAO)
      [   12.122506] pc : debug_dma_map_sg+0x1dc/0x318
      [   12.126995] lr : debug_dma_map_sg+0x1dc/0x318
      [   12.131487] sp : ffffff800cc3ba80
      [   12.134913] x29: ffffff800cc3ba80 x28: 0000000000000000
      [   12.140395] x27: 0000000000000004 x26: 0000000000000004
      [   12.145868] x25: ffffff8008e55b18 x24: 0000000000000000
      [   12.151337] x23: 00000000ffffffff x22: ffffff800921c000
      [   12.156809] x21: ffffffc0fa75b080 x20: ffffffc0f7195090
      [   12.162280] x19: ffffffc0f1c53280 x18: 0000000000000000
      [   12.167749] x17: 0000000000000000 x16: 0000000000000000
      [   12.173218] x15: 0000000000000000 x14: 0720072007200720
      [   12.178689] x13: 0720072007200720 x12: 0720072007200720
      [   12.184161] x11: 0720072007200720 x10: 0720072007200720
      [   12.189641] x9 : ffffffc0f1fc6b60 x8 : 0000000000000000
      [   12.195110] x7 : ffffff8008132ce0 x6 : 0000000000000000
      [   12.200585] x5 : 0000000000000000 x4 : ffffff8008134734
      [   12.206058] x3 : ffffff800cc3b830 x2 : ffffffc0f1fc6240
      [   12.211532] x1 : 25045a74f48a7400 x0 : 25045a74f48a7400
      [   12.217006] Call trace:
      [   12.219535]  debug_dma_map_sg+0x1dc/0x318
      [   12.223671]  get_pages+0x19c/0x20c
      [   12.227177]  msm_gem_fault+0x64/0xfc
      [   12.230874]  __do_fault+0x3c/0x140
      [   12.234383]  __handle_mm_fault+0x70c/0xdb8
      [   12.238603]  handle_mm_fault+0xac/0xc4
      [   12.242473]  do_page_fault+0x1bc/0x3d4
      [   12.246342]  do_translation_fault+0x54/0x88
      [   12.250652]  do_mem_abort+0x60/0xf0
      [   12.254250]  el0_da+0x20/0x24
      [   12.257317] irq event stamp: 67260
      [   12.260828] hardirqs last  enabled at (67259): [<ffffff8008132d0c>] console_unlock+0x214/0x608
      [   12.269693] hardirqs last disabled at (67260): [<ffffff8008080e0c>] do_debug_exception+0x5c/0x178
      [   12.278820] softirqs last  enabled at (67256): [<ffffff8008081664>] __do_softirq+0x4d4/0x520
      [   12.287510] softirqs last disabled at (67249): [<ffffff80080be574>] irq_exit+0xa8/0x100
      [   12.295742] ---[ end trace e63cfc40c313ffab ]---
      
      The root of the problem is that the default segment size for sgt is
      (UINT_MAX & PAGE_MASK), and the default segment size for device dma is
      64K. As such, if you compare the 2, you would deduce that the sg segment
      will overflow the device's capacity. In reality, the hardware can
      accommodate the larger sg segments, it's just not initializing its max
      segment properly. This patch initializes the max segment size for the
      mdss device, which gets rid of that pesky warning.
      Reported-by: NStephen Boyd <swboyd@chromium.org>
      Tested-by: NStephen Boyd <swboyd@chromium.org>
      Tested-by: NSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Signed-off-by: NDouglas Anderson <dianders@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200121111813.REPOST.1.I92c66a35fb13f368095b05287bdabdbe88ca6922@changeid
      db735fc4
  10. 06 1月, 2020 1 次提交
  11. 03 1月, 2020 1 次提交
  12. 04 9月, 2019 3 次提交
    • R
      drm/msm: async commit support · 2d99ced7
      Rob Clark 提交于
      Now that flush/wait/complete is decoupled from the "synchronous" part of
      atomic commit_tail(), add support to defer flush to a timer that expires
      shortly before vblank for async commits.  In this way, multiple atomic
      commits (for example, cursor updates) can be coalesced into a single
      flush at the end of the frame.
      
      v2: don't hold lock over ->wait_flush(), to avoid locking interaction
          that was causing fps drop when combining page flips or non-async
          atomic commits and lots of legacy cursor updates
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      Reviewed-by: NSean Paul <sean@poorly.run>
      2d99ced7
    • J
      drm/msm: Use generic bulk clock function · 8e3e791d
      Jordan Crouse 提交于
      Remove the homebrewed bulk clock get function and replace it with
      devm_clk_bulk_get_all().
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Reviewed-by: NStephen Boyd <swboyd@chromium.org>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NRob Clark <robdclark@chromium.org>
      8e3e791d
    • 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. 07 8月, 2019 2 次提交
  14. 02 8月, 2019 1 次提交
  15. 23 7月, 2019 1 次提交
  16. 26 6月, 2019 1 次提交
  17. 22 6月, 2019 1 次提交
  18. 21 6月, 2019 3 次提交
  19. 19 6月, 2019 2 次提交
  20. 20 4月, 2019 2 次提交
  21. 20 2月, 2019 2 次提交
  22. 19 2月, 2019 1 次提交
  23. 01 2月, 2019 4 次提交