|
@@ -9317,13 +9317,18 @@ static int intel_check_cursor(struct intel_crtc_state *crtc_state,
|
|
|
struct intel_plane_state *plane_state)
|
|
|
{
|
|
|
const struct drm_framebuffer *fb = plane_state->base.fb;
|
|
|
+ struct drm_rect clip = {};
|
|
|
int src_x, src_y;
|
|
|
u32 offset;
|
|
|
int ret;
|
|
|
|
|
|
+ if (crtc_state->base.enable)
|
|
|
+ drm_mode_get_hv_timing(&crtc_state->base.mode,
|
|
|
+ &clip.x2, &clip.y2);
|
|
|
+
|
|
|
ret = drm_atomic_helper_check_plane_state(&plane_state->base,
|
|
|
&crtc_state->base,
|
|
|
- &plane_state->clip,
|
|
|
+ &clip,
|
|
|
DRM_PLANE_HELPER_NO_SCALING,
|
|
|
DRM_PLANE_HELPER_NO_SCALING,
|
|
|
true, true);
|
|
@@ -12752,6 +12757,7 @@ intel_check_primary_plane(struct intel_plane *plane,
|
|
|
int min_scale = DRM_PLANE_HELPER_NO_SCALING;
|
|
|
int max_scale = DRM_PLANE_HELPER_NO_SCALING;
|
|
|
bool can_position = false;
|
|
|
+ struct drm_rect clip = {};
|
|
|
int ret;
|
|
|
|
|
|
if (INTEL_GEN(dev_priv) >= 9) {
|
|
@@ -12763,9 +12769,13 @@ intel_check_primary_plane(struct intel_plane *plane,
|
|
|
can_position = true;
|
|
|
}
|
|
|
|
|
|
+ if (crtc_state->base.enable)
|
|
|
+ drm_mode_get_hv_timing(&crtc_state->base.mode,
|
|
|
+ &clip.x2, &clip.y2);
|
|
|
+
|
|
|
ret = drm_atomic_helper_check_plane_state(&state->base,
|
|
|
&crtc_state->base,
|
|
|
- &state->clip,
|
|
|
+ &clip,
|
|
|
min_scale, max_scale,
|
|
|
can_position, true);
|
|
|
if (ret)
|