1. 23 4月, 2019 1 次提交
  2. 22 2月, 2019 1 次提交
    • L
      drm/imx: only send commit done event when all state has been applied · a0ea4fff
      Lucas Stach 提交于
      Currently there is a small race window where we could manage to arm the
      vblank event from atomic flush, but programming the hardware was too close
      to the frame end, so the hardware will only apply the current state on the
      next vblank. In this case we will send out the commit done event too early
      causing userspace to reuse framebuffes that are still in use.
      
      Instead of using the event arming mechnism, just remember the pending event
      and send it from the vblank IRQ handler, once we are sure that all state
      has been applied successfully.
      Signed-off-by: NLucas Stach <l.stach@pengutronix.de>
      [p.zabel@pengutronix.de: inverted logic: done -> pending, added back
       spinlock in atomic_flush, commit message typo fix]
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      a0ea4fff
  3. 24 1月, 2019 1 次提交
  4. 05 11月, 2018 1 次提交
  5. 16 7月, 2018 1 次提交
  6. 02 7月, 2018 1 次提交
  7. 16 3月, 2018 1 次提交
  8. 02 10月, 2017 1 次提交
  9. 30 6月, 2017 1 次提交
  10. 04 4月, 2017 1 次提交
  11. 16 3月, 2017 1 次提交
  12. 15 3月, 2017 1 次提交
    • P
      drm/imx: add deferred plane disabling · eb8c8880
      Philipp Zabel 提交于
      The DP (display processor) channel disable code tried to busy wait for
      the DP sync flow end interrupt status bit when disabling the partial
      plane without a full modeset. That never worked reliably, and it was
      disabled completely by the recent "gpu: ipu-v3: remove IRQ dance on DC
      channel disable" patch, causing ipu_wait_interrupt to always time out
      after 50 ms, which in turn would trigger a timeout in
      drm_atomic_helper_wait_for_vblanks.
      
      This patch changes ipu_plane_atomic_disable to only queue a DP channel
      register update at the next frame boundary and set a flag, which can be
      done without any waiting whatsoever. The imx_drm_atomic_commit_tail then
      calls a new ipu_plane_disable_deferred function that does the actual
      IDMAC teardown of the planes that are flagged for deferred disabling,
      after waiting for the vblank.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Reviewed-by: NLucas Stach <l.stach@pengutronix.de>
      eb8c8880
  13. 09 2月, 2017 1 次提交
  14. 09 11月, 2016 1 次提交
    • L
      drm/imx: disable planes before DC · 5ced937b
      Lucas Stach 提交于
      If the DC clock is disabled before the attached IDMACs are properly
      stopped the IDMACs may hang the IPU or even the whole system.
      
      Make sure the IDMACs are in safe state by disabling the planes before
      removal of the DC clock.
      
      Also set the atomic parameter to false to stop calling the atomic_begin
      hook, which does nothing useful as we immediately afterwards turn off
      vblank interrupts and possibly send the pending vblank event.
      
      Fixes: 33f14235 (drm/imx: atomic phase 1: Use transitional atomic
                           CRTC and plane helpers)
      Signed-off-by: NLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      5ced937b
  15. 30 8月, 2016 1 次提交
  16. 29 8月, 2016 3 次提交
  17. 12 8月, 2016 1 次提交
  18. 08 8月, 2016 1 次提交
  19. 13 7月, 2016 8 次提交
  20. 30 5月, 2016 1 次提交
  21. 23 5月, 2016 1 次提交
    • P
      drm/imx: Match imx-ipuv3-crtc components using device node in platform data · 310944d1
      Philipp Zabel 提交于
      The component master driver imx-drm-core matches component devices using
      their of_node. Since commit 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc
      module autoloading"), the imx-ipuv3-crtc dev->of_node is not set during
      probing. Before that, of_node was set and caused an of: modalias to be
      used instead of the platform: modalias, which broke module autoloading.
      
      On the other hand, if dev->of_node is not set yet when the imx-ipuv3-crtc
      probe function calls component_add, component matching in imx-drm-core
      fails. While dev->of_node will be set once the next component tries to
      bring up the component master, imx-drm-core component binding will never
      succeed if one of the crtc devices is probed last.
      
      Add of_node to the component platform data and match against the
      pdata->of_node instead of dev->of_node in imx-drm-core to work around
      this problem.
      
      Cc: <stable@vger.kernel.org> # 4.4.x
      Fixes: 950b410dd1ab ("gpu: ipu-v3: Fix imx-ipuv3-crtc module autoloading")
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Tested-by: NFabio Estevam <fabio.estevam@nxp.com>
      Tested-by: NLothar Waßmann <LW@KARO-electronics.de>
      Tested-by: NHeiko Schocher <hs@denx.de>
      Tested-by: NChris Ruehl <chris.ruehl@gtsys.com.hk>
      310944d1
  22. 01 3月, 2016 5 次提交
  23. 10 2月, 2016 1 次提交
  24. 08 2月, 2016 1 次提交
  25. 15 12月, 2015 1 次提交
  26. 25 11月, 2015 1 次提交
    • R
      drm: imx: convert to drm_crtc_send_vblank_event() · 69d21fc0
      Russell King 提交于
      ipu_crtc_handle_pageflip() was calling drm_send_vblank_event() with
      a pipe argument of -1.  Commit cc1ef118 ("drm/irq: Make pipe
      unsigned and name consistent") now makes this error obvious, as we
      now may get a warning from:
      
      	if (WARN_ON(pipe >= dev->num_crtcs))
      
      in drm_vblank_count_and_time().  Prior to this change, we would end
      up making out-of-bounds array accesses via:
      
      	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
      and
      	*vblanktime = vblanktimestamp(dev, pipe, cur_vblank);
      
      So, this has been broken for a very long time, and is not a result
      of the above commit.  Since we don't care about the staging versions,
      I've tagged this with the earliest mainline commit where we do care,
      even though this commit did not introduce the bug.
      
      Fixes: 6556f7f8 ("drm: imx: Move imx-drm driver out of staging")
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      69d21fc0
  27. 24 11月, 2015 1 次提交