Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e3e733b authored by Thomas Hellstrom's avatar Thomas Hellstrom
Browse files

drm/vmwgfx: Get rid of the device-private suspended member



It was used to early block fbdev dirty processing. Replace it with an
unprotected check of the par->dirty.active field. While this might
race with the vmw_fb_off() function, we do a protected check later so
the race will at worst lead to grabbing and releasing a couple of locks.

Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: default avatarBrian Paul <brianp@vmware.com>
Reviewed-by: default avatarSinclair Yeh <syeh@vmware.com>
parent c3b9b165
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1449,7 +1449,6 @@ static int vmw_pm_freeze(struct device *kdev)
		DRM_ERROR("Failed to freeze modesetting.\n");
		return ret;
	}
	dev_priv->suspended = true;
	if (dev_priv->enable_fb)
		vmw_fb_off(dev_priv);

@@ -1471,7 +1470,6 @@ static int vmw_pm_freeze(struct device *kdev)
			vmw_kms_resume(dev);
		if (dev_priv->enable_fb)
			vmw_fb_on(dev_priv);
		dev_priv->suspended = false;
		vmw_fb_refresh(dev_priv);
		return -EBUSY;
	}
@@ -1512,7 +1510,6 @@ static int vmw_pm_restore(struct device *kdev)
	if (dev_priv->enable_fb)
		vmw_fb_on(dev_priv);

	dev_priv->suspended = false;
	vmw_fb_refresh(dev_priv);

	return 0;
+0 −1
Original line number Diff line number Diff line
@@ -497,7 +497,6 @@ struct vmw_private {
	struct vmw_master *active_master;
	struct vmw_master fbdev_master;
	struct notifier_block pm_nb;
	bool suspended;
	bool refuse_hibernation;
	bool suspend_locked;

+1 −1
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ static void vmw_fb_dirty_flush(struct work_struct *work)
	struct vmw_dma_buffer *vbo = par->vmw_bo;
	void *virtual;

	if (vmw_priv->suspended)
	if (!READ_ONCE(par->dirty.active))
		return;

	mutex_lock(&par->bo_mutex);