From: Ville Syrjälä <[email protected]>

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 <[email protected]>
Cc: Sinclair Yeh <[email protected]>
Cc: VMware Graphics <[email protected]>
Cc: Daniel Vetter <[email protected]>
Signed-off-by: Ville Syrjälä <[email protected]>
---
 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];
 
                                requested_bb_mem += crtc->mode.hdisplay * cpp *
                                                    crtc->mode.vdisplay;
-- 
2.16.1

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to