drm/vmwgfx: Drop drm_vblank_cleanup
Again stopping the vblank before uninstalling the irq handler is kinda the wrong way round, but the fb_off stuff should take care of disabling the dsiplay at least in most cases. So drop the drm_vblank_cleanup code since it's not really doing anything, it looks all cargo-culted. v2: Appease gcc better. v3: Simplify code (Sean Paul) Cc: Sinclair Yeh <syeh@vmware.com> Cc: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170626161949.25629-1-daniel.vetter@ffwll.ch
This commit is contained in:
parent
5cbdaccb0d
commit
5f58e9742d
|
@ -1771,7 +1771,7 @@ int vmw_kms_init(struct vmw_private *dev_priv)
|
|||
|
||||
int vmw_kms_close(struct vmw_private *dev_priv)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
/*
|
||||
* Docs says we should take the lock before calling this function
|
||||
|
@ -1779,11 +1779,7 @@ int vmw_kms_close(struct vmw_private *dev_priv)
|
|||
* drm_encoder_cleanup which takes the lock we deadlock.
|
||||
*/
|
||||
drm_mode_config_cleanup(dev_priv->dev);
|
||||
if (dev_priv->active_display_unit == vmw_du_screen_object)
|
||||
ret = vmw_kms_sou_close_display(dev_priv);
|
||||
else if (dev_priv->active_display_unit == vmw_du_screen_target)
|
||||
ret = vmw_kms_stdu_close_display(dev_priv);
|
||||
else
|
||||
if (dev_priv->active_display_unit == vmw_du_legacy)
|
||||
ret = vmw_kms_ldu_close_display(dev_priv);
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -405,7 +405,6 @@ int vmw_kms_update_proxy(struct vmw_resource *res,
|
|||
* Screen Objects display functions - vmwgfx_scrn.c
|
||||
*/
|
||||
int vmw_kms_sou_init_display(struct vmw_private *dev_priv);
|
||||
int vmw_kms_sou_close_display(struct vmw_private *dev_priv);
|
||||
int vmw_kms_sou_do_surface_dirty(struct vmw_private *dev_priv,
|
||||
struct vmw_framebuffer *framebuffer,
|
||||
struct drm_clip_rect *clips,
|
||||
|
@ -433,7 +432,6 @@ int vmw_kms_sou_readback(struct vmw_private *dev_priv,
|
|||
* Screen Target Display Unit functions - vmwgfx_stdu.c
|
||||
*/
|
||||
int vmw_kms_stdu_init_display(struct vmw_private *dev_priv);
|
||||
int vmw_kms_stdu_close_display(struct vmw_private *dev_priv);
|
||||
int vmw_kms_stdu_surface_dirty(struct vmw_private *dev_priv,
|
||||
struct vmw_framebuffer *framebuffer,
|
||||
struct drm_clip_rect *clips,
|
||||
|
|
|
@ -582,13 +582,9 @@ err_free:
|
|||
|
||||
int vmw_kms_ldu_close_display(struct vmw_private *dev_priv)
|
||||
{
|
||||
struct drm_device *dev = dev_priv->dev;
|
||||
|
||||
if (!dev_priv->ldu_priv)
|
||||
return -ENOSYS;
|
||||
|
||||
drm_vblank_cleanup(dev);
|
||||
|
||||
BUG_ON(!list_empty(&dev_priv->ldu_priv->active));
|
||||
|
||||
kfree(dev_priv->ldu_priv);
|
||||
|
|
|
@ -746,15 +746,6 @@ int vmw_kms_sou_init_display(struct vmw_private *dev_priv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int vmw_kms_sou_close_display(struct vmw_private *dev_priv)
|
||||
{
|
||||
struct drm_device *dev = dev_priv->dev;
|
||||
|
||||
drm_vblank_cleanup(dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int do_dmabuf_define_gmrfb(struct vmw_private *dev_priv,
|
||||
struct vmw_framebuffer *framebuffer)
|
||||
{
|
||||
|
|
|
@ -1634,36 +1634,11 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
|
|||
|
||||
if (unlikely(ret != 0)) {
|
||||
DRM_ERROR("Failed to initialize STDU %d", i);
|
||||
goto err_vblank_cleanup;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
DRM_INFO("Screen Target Display device initialized\n");
|
||||
|
||||
return 0;
|
||||
|
||||
err_vblank_cleanup:
|
||||
drm_vblank_cleanup(dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* vmw_kms_stdu_close_display - Cleans up after vmw_kms_stdu_init_display
|
||||
*
|
||||
* @dev_priv: VMW DRM device
|
||||
*
|
||||
* Frees up any resources allocated by vmw_kms_stdu_init_display
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 on success
|
||||
*/
|
||||
int vmw_kms_stdu_close_display(struct vmw_private *dev_priv)
|
||||
{
|
||||
struct drm_device *dev = dev_priv->dev;
|
||||
|
||||
drm_vblank_cleanup(dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue