[PATCH 2/7] drm/vmwgfx: Stop using plane->fb in vmw_kms_atomic_check_modeset()

Deepak Singh Rawat drawat at vmware.com
Thu Apr 5 20:15:05 UTC 2018


> 
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Instead of looking at plane->fb let's look at the proper new
> plane state.
> 
> Not that the code makes a ton of sense. It's only going through the
> crtcs in the atomic state, so assuming not all of them are included
> we're not even calculating the total bandwidth here. Also we're
> not considering whether each crtc is actually enabled or not.
> 
> Cc: Thomas Hellstrom <thellstrom at vmware.com>
> Cc: Sinclair Yeh <syeh at vmware.com>
> Cc: VMware Graphics <linux-graphics-maintainer at vmware.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 6728c6247b4b..a2a796b4cc23 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -1536,9 +1536,13 @@ vmw_kms_atomic_check_modeset(struct
> drm_device *dev,
>  		unsigned long requested_bb_mem = 0;
> 
>  		if (dev_priv->active_display_unit ==
> vmw_du_screen_target) {
> -			if (crtc->primary->fb) {
> -				int cpp = crtc->primary->fb->pitches[0] /
> -					  crtc->primary->fb->width;
> +			struct drm_plane *plane = crtc->primary;
> +			struct drm_plane_state *plane_state;
> +
> +			plane_state =
> drm_atomic_get_new_plane_state(state, plane);
> +
> +			if (plane_state && plane_state->fb) {
> +				int cpp = plane_state->fb->format->cpp[0];

Hi Ville,

Thanks for the patch, recently I have done some refactoring of this code area
which is no yet sent to dri-devel. But the refactored code eliminated the need
to look the fb

https://cgit.freedesktop.org/mesa/vmwgfx/commit/?id=c54cdb6549b7d1c04ff61e639fc0e6de0dcc1ed6

There is still some future work to be done in this area. 

> 
>  				requested_bb_mem += crtc->mode.hdisplay
> * cpp *
>  						    crtc->mode.vdisplay;
> --
> 2.16.1


More information about the dri-devel mailing list