drm/i915: Use atomic state when changing cursor visibility.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
11c22da619
commit
9b4101be5b
|
@ -9916,8 +9916,9 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc,
|
||||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||||
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
||||||
int pipe = intel_crtc->pipe;
|
int pipe = intel_crtc->pipe;
|
||||||
int x = crtc->cursor_x;
|
struct drm_plane_state *cursor_state = crtc->cursor->state;
|
||||||
int y = crtc->cursor_y;
|
int x = cursor_state->crtc_x;
|
||||||
|
int y = cursor_state->crtc_y;
|
||||||
u32 base = 0, pos = 0;
|
u32 base = 0, pos = 0;
|
||||||
|
|
||||||
if (on)
|
if (on)
|
||||||
|
@ -9930,7 +9931,7 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc,
|
||||||
base = 0;
|
base = 0;
|
||||||
|
|
||||||
if (x < 0) {
|
if (x < 0) {
|
||||||
if (x + intel_crtc->base.cursor->state->crtc_w <= 0)
|
if (x + cursor_state->crtc_w <= 0)
|
||||||
base = 0;
|
base = 0;
|
||||||
|
|
||||||
pos |= CURSOR_POS_SIGN << CURSOR_X_SHIFT;
|
pos |= CURSOR_POS_SIGN << CURSOR_X_SHIFT;
|
||||||
|
@ -9939,7 +9940,7 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc,
|
||||||
pos |= x << CURSOR_X_SHIFT;
|
pos |= x << CURSOR_X_SHIFT;
|
||||||
|
|
||||||
if (y < 0) {
|
if (y < 0) {
|
||||||
if (y + intel_crtc->base.cursor->state->crtc_h <= 0)
|
if (y + cursor_state->crtc_h <= 0)
|
||||||
base = 0;
|
base = 0;
|
||||||
|
|
||||||
pos |= CURSOR_POS_SIGN << CURSOR_Y_SHIFT;
|
pos |= CURSOR_POS_SIGN << CURSOR_Y_SHIFT;
|
||||||
|
@ -9955,8 +9956,8 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc,
|
||||||
/* ILK+ do this automagically */
|
/* ILK+ do this automagically */
|
||||||
if (HAS_GMCH_DISPLAY(dev) &&
|
if (HAS_GMCH_DISPLAY(dev) &&
|
||||||
crtc->cursor->state->rotation == BIT(DRM_ROTATE_180)) {
|
crtc->cursor->state->rotation == BIT(DRM_ROTATE_180)) {
|
||||||
base += (intel_crtc->base.cursor->state->crtc_h *
|
base += (cursor_state->crtc_h *
|
||||||
intel_crtc->base.cursor->state->crtc_w - 1) * 4;
|
cursor_state->crtc_w - 1) * 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IS_845G(dev) || IS_I865G(dev))
|
if (IS_845G(dev) || IS_I865G(dev))
|
||||||
|
|
Loading…
Reference in New Issue