Re: [PATCH v2 00/20] drm/atomic: Provide default ->best_encoder() behavior
From: Daniel Vetter
Date: Fri Jun 10 2016 - 11:26:15 EST
On Tue, Jun 07, 2016 at 01:47:55PM +0200, Boris Brezillon wrote:
> Hello,
>
> This patch series aims at replacing all dummy ->best_encoder()
> implementations where we have a 1:1 relationship between encoders
> and connectors.
> The core already provides the drm_atomic_helper_best_encoder()
> function which is taking the first encoder attached to the
> connector (after making sure only one encoder was attached to the
> connector), but it's not automatically used, and drivers wanting
> to rely on this default behavior have to explicitly assign their
> ->best_encoder() hook to drm_atomic_helper_best_encoder().
>
> The first patch fixes remaining places where
> drm_atomic_helper_best_encoder() should be called when ->best_encoder()
> is NULL, so that drivers using the atomic helpers can get rid of the
> explicit ->best_encoder assignment if they need to rely on the default
> drm_atomic_helper_best_encoder() implementation.
>
> The following patches are killing all open coded ->best_encoder()
> implementations that could be replaced by
> drm_atomic_helper_best_encoder().
>
> All modifications have been compile tested except for the changed on
> the intel driver.
> I've also tested on an atmel board, but I recommend waiting for DRM
> driver maintainers feedback before applying the associated changes.
>
> Note that once patch 1 is applied, the other patches can be applied
> independently.
One comment on the i915 patch, all others should now be in drm-misc.
Thanks a lot for doing this.
-Daniel
>
> Best Regards,
>
> Boris
>
> Changes since v1:
> - remove useless ->encoder backpointers in some implementations
> - documented the default behavior in the vtable doc
> - added R-b/A-b tags
>
> Boris Brezillon (20):
> drm/atomic: Fix remaining places where !funcs->best_encoder is valid
> drm: arc: Rely on the default ->best_encoder() behavior
> drm: atmel-hlcdc: Rely on the default ->best_encoder() behavior
> drm: exynos: Rely on the default ->best_encoder() behavior
> drm: fsl-dcu: Rely on the default ->best_encoder() behavior
> drm: i915: Rely on the default ->best_encoder() behavior where
> appropriate
> drm: mediatek: Rely on the default ->best_encoder() behavior
> drm: msm: Rely on the default ->best_encoder() behavior where
> appropriate
> drm: rcar-du: Rely on the default ->best_encoder() behavior
> drm: rockchip: Rely on the default ->best_encoder() behavior
> drm: sti: Rely on the default ->best_encoder() behavior
> drm: sun4i: Rely on the default ->best_encoder() behavior
> drm: tegra: Rely on the default ->best_encoder() behavior
> drm: vc4: Rely on the default ->best_encoder() behavior
> drm: virtgpu: Rely on the default ->best_encoder() behavior
> drm: omap: Rely on the default ->best_encoder() behavior
> drm/bridge: anx78xx: Rely on the default ->best_encoder() behavior
> drm/bridge: ptn3460: Rely on the default ->best_encoder() behavior
> drm/bridge: ps8622: Rely on the default ->best_encoder() behavior
> drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder()
>
> drivers/gpu/drm/arc/arcpgu_hdmi.c | 18 ------------------
> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 12 ------------
> drivers/gpu/drm/bridge/analogix-anx78xx.c | 8 --------
> drivers/gpu/drm/bridge/dw-hdmi.c | 11 +----------
> drivers/gpu/drm/bridge/nxp-ptn3460.c | 8 --------
> drivers/gpu/drm/bridge/parade-ps8622.c | 10 ----------
> drivers/gpu/drm/drm_atomic_helper.c | 4 +++-
> drivers/gpu/drm/drm_fb_helper.c | 13 ++++++++++++-
> drivers/gpu/drm/exynos/exynos_drm_dpi.c | 9 ---------
> drivers/gpu/drm/exynos/exynos_drm_dsi.c | 9 ---------
> drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 --------
> drivers/gpu/drm/exynos/exynos_hdmi.c | 8 --------
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 9 ---------
> drivers/gpu/drm/i915/intel_crt.c | 1 -
> drivers/gpu/drm/i915/intel_display.c | 8 --------
> drivers/gpu/drm/i915/intel_dp.c | 1 -
> drivers/gpu/drm/i915/intel_drv.h | 1 -
> drivers/gpu/drm/i915/intel_dsi.c | 1 -
> drivers/gpu/drm/i915/intel_dvo.c | 1 -
> drivers/gpu/drm/i915/intel_hdmi.c | 1 -
> drivers/gpu/drm/i915/intel_lvds.c | 1 -
> drivers/gpu/drm/i915/intel_sdvo.c | 1 -
> drivers/gpu/drm/i915/intel_tv.c | 1 -
> drivers/gpu/drm/mediatek/mtk_dsi.c | 9 ---------
> drivers/gpu/drm/msm/edp/edp_connector.c | 10 ----------
> drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 8 --------
> drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c | 9 ---------
> drivers/gpu/drm/omapdrm/omap_connector.c | 10 ----------
> drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 12 ------------
> drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 3 ---
> drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c | 1 -
> drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 1 -
> drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 3 ---
> drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 9 ---------
> drivers/gpu/drm/rockchip/inno_hdmi.c | 9 ---------
> drivers/gpu/drm/sti/sti_dvo.c | 10 ----------
> drivers/gpu/drm/sti/sti_hda.c | 10 ----------
> drivers/gpu/drm/sti/sti_hdmi.c | 10 ----------
> drivers/gpu/drm/sun4i/sun4i_rgb.c | 10 ----------
> drivers/gpu/drm/sun4i/sun4i_tv.c | 9 ---------
> drivers/gpu/drm/tegra/drm.h | 2 --
> drivers/gpu/drm/tegra/dsi.c | 1 -
> drivers/gpu/drm/tegra/hdmi.c | 1 -
> drivers/gpu/drm/tegra/output.c | 8 --------
> drivers/gpu/drm/tegra/rgb.c | 1 -
> drivers/gpu/drm/tegra/sor.c | 1 -
> drivers/gpu/drm/vc4/vc4_dpi.c | 9 ---------
> drivers/gpu/drm/vc4/vc4_hdmi.c | 9 ---------
> drivers/gpu/drm/virtio/virtgpu_display.c | 10 ----------
> include/drm/drm_modeset_helper_vtables.h | 10 ++++++++--
> 50 files changed, 24 insertions(+), 305 deletions(-)
>
> --
> 2.7.4
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch