Plane transitional helper prototypes mismatch their methods

Russell King - ARM Linux linux at armlinux.org.uk
Sun Jul 1 15:34:02 UTC 2018


Ping.

On Mon, Jun 25, 2018 at 04:52:16PM +0100, Russell King - ARM Linux wrote:
> Hi,
> 
> Currently, the transitional plane helpers have prototypes that
> do not have the drm_modeset_acquire_ctx argument:
> 
> int drm_plane_helper_update(struct drm_plane *plane, struct drm_crtc *crtc,
>                             struct drm_framebuffer *fb,
>                             int crtc_x, int crtc_y,
>                             unsigned int crtc_w, unsigned int crtc_h,
>                             uint32_t src_x, uint32_t src_y,
>                             uint32_t src_w, uint32_t src_h);
> int drm_plane_helper_disable(struct drm_plane *plane);
> 
> However, the helper methods have this as the last argument:
> 
>         int (*update_plane)(struct drm_plane *plane,
>                             struct drm_crtc *crtc, struct drm_framebuffer *fb,
>                             int crtc_x, int crtc_y,
>                             unsigned int crtc_w, unsigned int crtc_h,
>                             uint32_t src_x, uint32_t src_y,
>                             uint32_t src_w, uint32_t src_h,
>                             struct drm_modeset_acquire_ctx *ctx);
>         int (*disable_plane)(struct drm_plane *plane,
>                              struct drm_modeset_acquire_ctx *ctx);
> 
> Are these transitional helpers supposed to be plugged into these
> methods directly?  Looking back in the history, the following commit
> to i915 seems to suggest that they were designed to be plugged
> directly into these methods:
> 
> commit ea2c67bb4affa84080c616920f3899f123786e56
> Author: Matt Roper <matthew.d.roper at intel.com>
> Date:   Tue Dec 23 10:41:52 2014 -0800
> 
>     drm/i915: Move to atomic plane helpers (v9)
> 
> It seems easy to add this argument to drm_plane_helper_update() as
> it has no current users, but the drm_plane_helper_disable()
> transitional helper seems to be used extensively by what are
> otherwise fully atomic modeset drivers, despite being described as
> only a transitional helper.
> 
> drivers/gpu/drm/arm/hdlcd_crtc.c:   drm_plane_helper_disable(plane);
> drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c: drm_plane_helper_disable(plane);
> drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c: drm_plane_helper_disable(plane);
> drivers/gpu/drm/arc/arcpgu_crtc.c:  drm_plane_helper_disable(plane);
> drivers/gpu/drm/sti/sti_hqvdp.c:    drm_plane_helper_disable(drm_plane);
> drivers/gpu/drm/sti/sti_gdp.c:      drm_plane_helper_disable(drm_plane);
> drivers/gpu/drm/sti/sti_cursor.c:   drm_plane_helper_disable(drm_plane);
> drivers/gpu/drm/vc4/vc4_plane.c:    drm_plane_helper_disable(plane);
> drivers/gpu/drm/zte/zx_plane.c:     drm_plane_helper_disable(plane);
> 
> Are these drivers buggy using the transitional helper, which won't do
> anything but change the state of that single plane, leaving the CRTC,
> encoders, bridges, etc all active?
> 
> -- 
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
> According to speedtest.net: 8.21Mbps down 510kbps up

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up


More information about the dri-devel mailing list