mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-17 19:34:12 +08:00
drm/vmwgfx: Don't clear mode::type anymore
With kernel commit "drm/modes: Kill off the oddball DRM_MODE_TYPE_CRTC_C vs. DRM_MODE_TYPE_BUILTIN handling", no need to clear mode::type for user-space bug. Signed-off-by: Deepak Rawat <drawat@vmware.com> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
This commit is contained in:
parent
2f5544ff03
commit
b4fa61ba05
@ -2812,28 +2812,6 @@ vmw_kms_create_implicit_placement_property(struct vmw_private *dev_priv,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* vmw_kms_set_config - Wrapper around drm_atomic_helper_set_config
|
|
||||||
*
|
|
||||||
* @set: The configuration to set.
|
|
||||||
*
|
|
||||||
* The vmwgfx Xorg driver doesn't assign the mode::type member, which
|
|
||||||
* when drm_mode_set_crtcinfo is called as part of the configuration setting
|
|
||||||
* causes it to return incorrect crtc dimensions causing severe problems in
|
|
||||||
* the vmwgfx modesetting. So explicitly clear that member before calling
|
|
||||||
* into drm_atomic_helper_set_config.
|
|
||||||
*/
|
|
||||||
int vmw_kms_set_config(struct drm_mode_set *set,
|
|
||||||
struct drm_modeset_acquire_ctx *ctx)
|
|
||||||
{
|
|
||||||
if (set && set->mode)
|
|
||||||
set->mode->type = 0;
|
|
||||||
|
|
||||||
return drm_atomic_helper_set_config(set, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vmw_kms_suspend - Save modesetting state and turn modesetting off.
|
* vmw_kms_suspend - Save modesetting state and turn modesetting off.
|
||||||
*
|
*
|
||||||
|
@ -572,9 +572,6 @@ int vmw_kms_stdu_dma(struct vmw_private *dev_priv,
|
|||||||
bool interruptible,
|
bool interruptible,
|
||||||
struct drm_crtc *crtc);
|
struct drm_crtc *crtc);
|
||||||
|
|
||||||
int vmw_kms_set_config(struct drm_mode_set *set,
|
|
||||||
struct drm_modeset_acquire_ctx *ctx);
|
|
||||||
|
|
||||||
int vmw_du_helper_plane_update(struct vmw_du_update_plane *update);
|
int vmw_du_helper_plane_update(struct vmw_du_update_plane *update);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -233,7 +233,7 @@ static const struct drm_crtc_funcs vmw_legacy_crtc_funcs = {
|
|||||||
.reset = vmw_du_crtc_reset,
|
.reset = vmw_du_crtc_reset,
|
||||||
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
||||||
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
||||||
.set_config = vmw_kms_set_config,
|
.set_config = drm_atomic_helper_set_config,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ static const struct drm_crtc_funcs vmw_screen_object_crtc_funcs = {
|
|||||||
.reset = vmw_du_crtc_reset,
|
.reset = vmw_du_crtc_reset,
|
||||||
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
||||||
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
||||||
.set_config = vmw_kms_set_config,
|
.set_config = drm_atomic_helper_set_config,
|
||||||
.page_flip = vmw_sou_crtc_page_flip,
|
.page_flip = vmw_sou_crtc_page_flip,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -990,7 +990,7 @@ static const struct drm_crtc_funcs vmw_stdu_crtc_funcs = {
|
|||||||
.reset = vmw_du_crtc_reset,
|
.reset = vmw_du_crtc_reset,
|
||||||
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
.atomic_duplicate_state = vmw_du_crtc_duplicate_state,
|
||||||
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
.atomic_destroy_state = vmw_du_crtc_destroy_state,
|
||||||
.set_config = vmw_kms_set_config,
|
.set_config = drm_atomic_helper_set_config,
|
||||||
.page_flip = vmw_stdu_crtc_page_flip,
|
.page_flip = vmw_stdu_crtc_page_flip,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user