Skip to content

Commit

Permalink
drm/i915: Use & instead if == to check for rotations
Browse files Browse the repository at this point in the history
Using == to check for 180 degree rotation only works as long as the
reflection bits aren't set. That will change soon enough for CHV, so
let's stop doing things the wrong way.

v2: Drop the BIT()

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1479142440-25283-2-git-send-email-ville.syrjala@linux.intel.com
  • Loading branch information
Ville Syrjälä committed Nov 14, 2016
1 parent 5697d60 commit f22aa14
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
8 changes: 4 additions & 4 deletions drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -3084,7 +3084,7 @@ static void i9xx_update_primary_plane(struct drm_plane *primary,
intel_crtc->dspaddr_offset =
intel_compute_tile_offset(&x, &y, plane_state, 0);

if (rotation == DRM_ROTATE_180) {
if (rotation & DRM_ROTATE_180) {
dspcntr |= DISPPLANE_ROTATE_180;

x += (crtc_state->pipe_src_w - 1);
Expand Down Expand Up @@ -3188,7 +3188,7 @@ static void ironlake_update_primary_plane(struct drm_plane *primary,
intel_crtc->dspaddr_offset =
intel_compute_tile_offset(&x, &y, plane_state, 0);

if (rotation == DRM_ROTATE_180) {
if (rotation & DRM_ROTATE_180) {
dspcntr |= DISPPLANE_ROTATE_180;

if (!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv)) {
Expand Down Expand Up @@ -10881,7 +10881,7 @@ static void i9xx_update_cursor(struct drm_crtc *crtc, u32 base,
if (HAS_DDI(dev_priv))
cntl |= CURSOR_PIPE_CSC_ENABLE;

if (plane_state->base.rotation == DRM_ROTATE_180)
if (plane_state->base.rotation & DRM_ROTATE_180)
cntl |= CURSOR_ROTATE_180;
}

Expand Down Expand Up @@ -10927,7 +10927,7 @@ static void intel_crtc_update_cursor(struct drm_crtc *crtc,

/* ILK+ do this automagically */
if (HAS_GMCH_DISPLAY(dev_priv) &&
plane_state->base.rotation == DRM_ROTATE_180) {
plane_state->base.rotation & DRM_ROTATE_180) {
base += (plane_state->base.crtc_h *
plane_state->base.crtc_w - 1) * 4;
}
Expand Down
6 changes: 3 additions & 3 deletions drivers/gpu/drm/i915/intel_sprite.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ vlv_update_plane(struct drm_plane *dplane,
intel_add_fb_offsets(&x, &y, plane_state, 0);
sprsurf_offset = intel_compute_tile_offset(&x, &y, plane_state, 0);

if (rotation == DRM_ROTATE_180) {
if (rotation & DRM_ROTATE_180) {
sprctl |= SP_ROTATE_180;

x += src_w;
Expand Down Expand Up @@ -566,7 +566,7 @@ ivb_update_plane(struct drm_plane *plane,
intel_add_fb_offsets(&x, &y, plane_state, 0);
sprsurf_offset = intel_compute_tile_offset(&x, &y, plane_state, 0);

if (rotation == DRM_ROTATE_180) {
if (rotation & DRM_ROTATE_180) {
sprctl |= SPRITE_ROTATE_180;

/* HSW and BDW does this automagically in hardware */
Expand Down Expand Up @@ -700,7 +700,7 @@ ilk_update_plane(struct drm_plane *plane,
intel_add_fb_offsets(&x, &y, plane_state, 0);
dvssurf_offset = intel_compute_tile_offset(&x, &y, plane_state, 0);

if (rotation == DRM_ROTATE_180) {
if (rotation & DRM_ROTATE_180) {
dvscntr |= DVS_ROTATE_180;

x += src_w;
Expand Down

0 comments on commit f22aa14

Please sign in to comment.