[PATCH 0/8] acquire ctx for everyone!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

This is the final bits of my cleanup work to get rid of the implicit acquire
context for atomic drivers. This handles the property stuff by essentially just
ripping it all out, after 20+ drivers I don't see any need for a driver to
overwrite anything here. Except omapdrm, and that is handled within the existing
framework already.

Besides removing a pile of code another upshot of this work is that a
set_property call for atomic driver now only takes the locks it needs, the same
way like the atomic ioctl.

Leftover bits (I should probably put them into a todo.rst entry):
- Convert vmwgfx over to the fbdev helpers since their current hand-rolled ones
  get this all wrong.

- Add an explicit acquire_ctx to drm_modeset_(un)lock_all and nuke the
  GFP_ATOMIC allocation.

- Also clean up the get_property paths a bit more, would be nice if we wouldn't
  need to have to take all the locks for atomic drivers.

But already with this we're guaranteed that all core and helper paths pass
around the acquire_ctx correctly, which means drivers can now start to use their
own internal drm_modeset_locks for private data structures.

Cheers, Daniel

Daniel Vetter (8):
  drm/omap: Simplify the rotation-on-crtc hack
  drm: Don't update property values for atomic drivers
  drm: Handle properties in the core for atomic drivers
  drm: Nuke drm_atomic_helper_crtc_set_property
  drm: Nuke drm_atomic_helper_plane_set_property
  drm: Nuke drm_atomic_helper_connector_set_property
  drm: Nuke drm_atomic_helper_connector_dpms
  drm: Nuke drm_atomic_legacy_backoff

 drivers/gpu/drm/arm/malidp_planes.c                |   1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c     |   1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c    |   1 -
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |   1 -
 drivers/gpu/drm/bridge/analogix-anx78xx.c          |   1 -
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |   1 -
 drivers/gpu/drm/bridge/dumb-vga-dac.c              |   1 -
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |   1 -
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |   1 -
 drivers/gpu/drm/bridge/panel.c                     |   1 -
 drivers/gpu/drm/bridge/parade-ps8622.c             |   1 -
 drivers/gpu/drm/bridge/sii902x.c                   |   1 -
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |   1 -
 drivers/gpu/drm/bridge/tc358767.c                  |   1 -
 drivers/gpu/drm/bridge/ti-tfp410.c                 |   1 -
 drivers/gpu/drm/drm_atomic.c                       |  98 ++++----
 drivers/gpu/drm/drm_atomic_helper.c                | 248 ---------------------
 drivers/gpu/drm/drm_connector.c                    |   9 +-
 drivers/gpu/drm/drm_crtc.c                         |   2 +-
 drivers/gpu/drm/drm_crtc_helper.c                  |   3 +-
 drivers/gpu/drm/drm_crtc_internal.h                |   7 +
 drivers/gpu/drm/drm_mode_object.c                  | 159 +++++++++----
 drivers/gpu/drm/drm_plane.c                        |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |   1 -
 drivers/gpu/drm/exynos/exynos_drm_dsi.c            |   1 -
 drivers/gpu/drm/exynos/exynos_drm_plane.c          |   1 -
 drivers/gpu/drm/exynos/exynos_drm_vidi.c           |   1 -
 drivers/gpu/drm/exynos/exynos_hdmi.c               |   1 -
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |   1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c     |   1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |   1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c    |   2 -
 drivers/gpu/drm/i2c/tda998x_drv.c                  |  10 +-
 drivers/gpu/drm/i915/intel_crt.c                   |   2 -
 drivers/gpu/drm/i915/intel_display.c               |   3 -
 drivers/gpu/drm/i915/intel_dp.c                    |   2 -
 drivers/gpu/drm/i915/intel_dp_mst.c                |   2 -
 drivers/gpu/drm/i915/intel_dsi.c                   |   2 -
 drivers/gpu/drm/i915/intel_dvo.c                   |   2 -
 drivers/gpu/drm/i915/intel_hdmi.c                  |   2 -
 drivers/gpu/drm/i915/intel_lvds.c                  |   2 -
 drivers/gpu/drm/i915/intel_sdvo.c                  |   2 -
 drivers/gpu/drm/i915/intel_tv.c                    |   2 -
 drivers/gpu/drm/imx/imx-ldb.c                      |   1 -
 drivers/gpu/drm/imx/imx-tve.c                      |   1 -
 drivers/gpu/drm/imx/parallel-display.c             |   1 -
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |   1 -
 drivers/gpu/drm/mediatek/mtk_hdmi.c                |   1 -
 drivers/gpu/drm/meson/meson_venc_cvbs.c            |   1 -
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |   1 -
 drivers/gpu/drm/msm/edp/edp_connector.c            |   1 -
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c          |   1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c           |   1 -
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c |   1 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c           |   2 -
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c          |   2 -
 drivers/gpu/drm/mxsfb/mxsfb_out.c                  |   1 -
 drivers/gpu/drm/nouveau/nouveau_connector.c        |  15 +-
 drivers/gpu/drm/nouveau/nv50_display.c             |   4 -
 drivers/gpu/drm/omapdrm/omap_connector.c           |   1 -
 drivers/gpu/drm/omapdrm/omap_crtc.c                |  65 +++---
 drivers/gpu/drm/omapdrm/omap_plane.c               |   1 -
 drivers/gpu/drm/pl111/pl111_connector.c            |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c          |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_plane.c            |   1 -
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c              |   1 -
 drivers/gpu/drm/rockchip/cdn-dp-core.c             |   1 -
 drivers/gpu/drm/rockchip/dw-mipi-dsi.c             |   1 -
 drivers/gpu/drm/rockchip/inno_hdmi.c               |   1 -
 drivers/gpu/drm/sti/sti_cursor.c                   |   1 -
 drivers/gpu/drm/sti/sti_dvo.c                      |   1 -
 drivers/gpu/drm/sti/sti_gdp.c                      |   1 -
 drivers/gpu/drm/sti/sti_hda.c                      |   1 -
 drivers/gpu/drm/sti/sti_hdmi.c                     |   2 -
 drivers/gpu/drm/sti/sti_hqvdp.c                    |   1 -
 drivers/gpu/drm/stm/ltdc.c                         |   1 -
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |   1 -
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |   1 -
 drivers/gpu/drm/sun4i/sun4i_tv.c                   |   1 -
 drivers/gpu/drm/tegra/dsi.c                        |   1 -
 drivers/gpu/drm/tegra/hdmi.c                       |   1 -
 drivers/gpu/drm/tegra/rgb.c                        |   1 -
 drivers/gpu/drm/tegra/sor.c                        |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_panel.c              |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_plane.c              |   1 -
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c             |   1 -
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c        |   1 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                     |   1 -
 drivers/gpu/drm/vc4/vc4_vec.c                      |   2 -
 drivers/gpu/drm/virtio/virtgpu_display.c           |   1 -
 drivers/gpu/drm/zte/zx_hdmi.c                      |   1 -
 drivers/gpu/drm/zte/zx_tvenc.c                     |   1 -
 drivers/gpu/drm/zte/zx_vga.c                       |   1 -
 include/drm/drm_atomic.h                           |   8 -
 include/drm/drm_atomic_helper.h                    |  11 -
 include/drm/drm_connector.h                        |  10 +-
 include/drm/drm_crtc.h                             |   6 +-
 include/drm/drm_plane.h                            |   6 +-
 98 files changed, 224 insertions(+), 536 deletions(-)

-- 
2.13.3

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux