mirror of https://gitee.com/openkylin/linux.git
drm/vmwgfx: Stop using plane->fb in vmw_kms_helper_dirty()
Instead of plane->fb (which we're going to deprecate for atomic drivers) we need to look at plane->state->fb. The maze of code leading to vmw_kms_helper_dirty() wasn't particularly clear, but my analysis concluded that the calls originating from vmw_*_primary_plane_atomic_update() all pass in the crtc which means we'll never end up in this branch of the function. All other callers use drm_modeset_lock_all() somewhere higher up, which means accessing plane->state is safe. v2: Drop the comment and make the code do what it did before (Thomas) v3: Drop the bogus lockdep assert Cc: Deepak Rawat <drawat@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Cc: Sinclair Yeh <syeh@vmware.com> Cc: VMware Graphics <linux-graphics-maintainer@vmware.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180525185045.29689-3-ville.syrjala@linux.intel.com Reviewed-by: Sinclair Yeh <syeh@vmware.com>
This commit is contained in:
parent
0616844873
commit
464ce098e6
|
@ -2326,9 +2326,10 @@ int vmw_kms_helper_dirty(struct vmw_private *dev_priv,
|
|||
} else {
|
||||
list_for_each_entry(crtc, &dev_priv->dev->mode_config.crtc_list,
|
||||
head) {
|
||||
if (crtc->primary->fb != &framebuffer->base)
|
||||
continue;
|
||||
units[num_units++] = vmw_crtc_to_du(crtc);
|
||||
struct drm_plane *plane = crtc->primary;
|
||||
|
||||
if (plane->state->fb == &framebuffer->base)
|
||||
units[num_units++] = vmw_crtc_to_du(crtc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue