On Fri, 2018-06-01 at 21:39 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > There's not much point in following the primary vs. sprite split > for the SKL+ universal plane init code. The only difference is > of our own doing in the form of the .check_plane(). Let's make > a small exception for that little detail and otherwise share > the same code to initialize all the universal planes. > > Eventually we should eliminate the mess around .check_plane() > as well, but for now let's be happy with some code reduction. > > v2: Remember to set up plane->has_fbc > Make skl_plane_has_ccs() static > v3: Rebase due to NV12, rename some variables > v4: Don't leave the color_encoding/range props behind > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 220 +++-------------------- > ------------ > drivers/gpu/drm/i915/intel_drv.h | 12 +- > drivers/gpu/drm/i915/intel_sprite.c | 201 +++++++++++++++++++++++ > --------- > 3 files changed, 167 insertions(+), 266 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index 13de4e9e276a..2549fec31c79 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -73,55 +73,6 @@ static const uint64_t i9xx_format_modifiers[] = { > DRM_FORMAT_MOD_INVALID > }; > > -static const uint32_t skl_primary_formats[] = { > - DRM_FORMAT_C8, > - DRM_FORMAT_RGB565, > - DRM_FORMAT_XRGB8888, > - DRM_FORMAT_XBGR8888, > - DRM_FORMAT_ARGB8888, > - DRM_FORMAT_ABGR8888, > - DRM_FORMAT_XRGB2101010, > - DRM_FORMAT_XBGR2101010, > - DRM_FORMAT_YUYV, > - DRM_FORMAT_YVYU, > - DRM_FORMAT_UYVY, > - DRM_FORMAT_VYUY, > -}; > - > -static const uint32_t skl_pri_planar_formats[] = { > - DRM_FORMAT_C8, > - DRM_FORMAT_RGB565, > - DRM_FORMAT_XRGB8888, > - DRM_FORMAT_XBGR8888, > - DRM_FORMAT_ARGB8888, > - DRM_FORMAT_ABGR8888, > - DRM_FORMAT_XRGB2101010, > - DRM_FORMAT_XBGR2101010, > - DRM_FORMAT_YUYV, > - DRM_FORMAT_YVYU, > - DRM_FORMAT_UYVY, > - DRM_FORMAT_VYUY, > - DRM_FORMAT_NV12, > -}; > - > -static const uint64_t skl_format_modifiers_noccs[] = { > - I915_FORMAT_MOD_Yf_TILED, > - I915_FORMAT_MOD_Y_TILED, > - I915_FORMAT_MOD_X_TILED, > - DRM_FORMAT_MOD_LINEAR, > - DRM_FORMAT_MOD_INVALID > -}; > - > -static const uint64_t skl_format_modifiers_ccs[] = { > - I915_FORMAT_MOD_Yf_TILED_CCS, > - I915_FORMAT_MOD_Y_TILED_CCS, > - I915_FORMAT_MOD_Yf_TILED, > - I915_FORMAT_MOD_Y_TILED, > - I915_FORMAT_MOD_X_TILED, > - DRM_FORMAT_MOD_LINEAR, > - DRM_FORMAT_MOD_INVALID > -}; > - > /* Cursor formats */ > static const uint32_t intel_cursor_formats[] = { > DRM_FORMAT_ARGB8888, > @@ -13273,57 +13224,6 @@ static bool > i965_plane_format_mod_supported(struct drm_plane *_plane, > } > } > > -static bool skl_plane_format_mod_supported(struct drm_plane *_plane, > - u32 format, u64 modifier) > -{ > - struct intel_plane *plane = to_intel_plane(_plane); > - > - switch (modifier) { > - case DRM_FORMAT_MOD_LINEAR: > - case I915_FORMAT_MOD_X_TILED: > - case I915_FORMAT_MOD_Y_TILED: > - case I915_FORMAT_MOD_Yf_TILED: > - break; > - case I915_FORMAT_MOD_Y_TILED_CCS: > - case I915_FORMAT_MOD_Yf_TILED_CCS: > - if (!plane->has_ccs) > - return false; > - break; > - default: > - return false; > - } > - > - switch (format) { > - case DRM_FORMAT_XRGB8888: > - case DRM_FORMAT_XBGR8888: > - case DRM_FORMAT_ARGB8888: > - case DRM_FORMAT_ABGR8888: > - if (modifier == I915_FORMAT_MOD_Yf_TILED_CCS || > - modifier == I915_FORMAT_MOD_Y_TILED_CCS) > - return true; > - /* fall through */ > - case DRM_FORMAT_RGB565: > - case DRM_FORMAT_XRGB2101010: > - case DRM_FORMAT_XBGR2101010: > - case DRM_FORMAT_YUYV: > - case DRM_FORMAT_YVYU: > - case DRM_FORMAT_UYVY: > - case DRM_FORMAT_VYUY: > - case DRM_FORMAT_NV12: > - if (modifier == I915_FORMAT_MOD_Yf_TILED) > - return true; > - /* fall through */ > - case DRM_FORMAT_C8: > - if (modifier == DRM_FORMAT_MOD_LINEAR || > - modifier == I915_FORMAT_MOD_X_TILED || > - modifier == I915_FORMAT_MOD_Y_TILED) > - return true; > - /* fall through */ > - default: > - return false; > - } > -} > - > static bool intel_cursor_format_mod_supported(struct drm_plane > *_plane, > u32 format, u64 > modifier) > { > @@ -13331,17 +13231,6 @@ static bool > intel_cursor_format_mod_supported(struct drm_plane *_plane, > format == DRM_FORMAT_ARGB8888; > } > > -static const struct drm_plane_funcs skl_plane_funcs = { > - .update_plane = drm_atomic_helper_update_plane, > - .disable_plane = drm_atomic_helper_disable_plane, > - .destroy = intel_plane_destroy, > - .atomic_get_property = intel_plane_atomic_get_property, > - .atomic_set_property = intel_plane_atomic_set_property, > - .atomic_duplicate_state = intel_plane_duplicate_state, > - .atomic_destroy_state = intel_plane_destroy_state, > - .format_mod_supported = skl_plane_format_mod_supported, > -}; > - > static const struct drm_plane_funcs i965_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > @@ -13506,39 +13395,6 @@ static bool i9xx_plane_has_fbc(struct > drm_i915_private *dev_priv, > return i9xx_plane == PLANE_A; > } > > -static bool skl_plane_has_fbc(struct drm_i915_private *dev_priv, > - enum pipe pipe, enum plane_id > plane_id) > -{ > - if (!HAS_FBC(dev_priv)) > - return false; > - > - return pipe == PIPE_A && plane_id == PLANE_PRIMARY; > -} > - > -bool skl_plane_has_planar(struct drm_i915_private *dev_priv, > - enum pipe pipe, enum plane_id plane_id) > -{ > - if (plane_id == PLANE_PRIMARY) { > - if (IS_SKYLAKE(dev_priv) || IS_BROXTON(dev_priv)) > - return false; > - else if ((INTEL_GEN(dev_priv) == 9 && pipe == > PIPE_C) && > - !IS_GEMINILAKE(dev_priv)) > - return false; > - } else if (plane_id >= PLANE_SPRITE0) { > - if (plane_id == PLANE_CURSOR) > - return false; > - if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) > == 10) { > - if (plane_id != PLANE_SPRITE0) > - return false; > - } else { > - if (plane_id != PLANE_SPRITE0 || pipe == > PIPE_C || > - IS_SKYLAKE(dev_priv) || > IS_BROXTON(dev_priv)) > - return false; > - } > - } > - return true; > -} > - > static struct intel_plane * > intel_primary_plane_create(struct drm_i915_private *dev_priv, enum > pipe pipe) > { > @@ -13551,14 +13407,24 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > const uint64_t *modifiers; > int ret; > > + if (INTEL_GEN(dev_priv) >= 9) { > + primary = skl_universal_plane_create(dev_priv, pipe, > + PLANE_PRIMARY); > + if (IS_ERR(primary)) > + return primary; > + > + /* FIXME unify */ > + primary->check_plane = intel_check_primary_plane; > + > + return primary; > + } > + > primary = intel_plane_alloc(); > if (IS_ERR(primary)) > return primary; > > primary->can_scale = false; > primary->max_downscale = 1; > - if (INTEL_GEN(dev_priv) >= 9) > - primary->can_scale = true; > primary->pipe = pipe; > /* > * On gen2/3 only plane A can do FBC, but the panel fitter > and LVDS > @@ -13571,14 +13437,7 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > primary->id = PLANE_PRIMARY; > primary->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, primary- > >id); > > - if (INTEL_GEN(dev_priv) >= 9) > - primary->has_fbc = skl_plane_has_fbc(dev_priv, > - primary->pipe, > - primary->id); > - else > - primary->has_fbc = i9xx_plane_has_fbc(dev_priv, > - primary- > >i9xx_plane); > - > + primary->has_fbc = i9xx_plane_has_fbc(dev_priv, primary- > >i9xx_plane); > if (primary->has_fbc) { > struct intel_fbc *fbc = &dev_priv->fbc; > > @@ -13587,29 +13446,7 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > > primary->check_plane = intel_check_primary_plane; > > - if (INTEL_GEN(dev_priv) >= 9) { > - primary->has_ccs = skl_plane_has_ccs(dev_priv, pipe, > - PLANE_PRIMARY); > - > - if (skl_plane_has_planar(dev_priv, pipe, > PLANE_PRIMARY)) { > - intel_primary_formats = > skl_pri_planar_formats; > - num_formats = > ARRAY_SIZE(skl_pri_planar_formats); > - } else { > - intel_primary_formats = skl_primary_formats; > - num_formats = > ARRAY_SIZE(skl_primary_formats); > - } > - > - if (primary->has_ccs) > - modifiers = skl_format_modifiers_ccs; > - else > - modifiers = skl_format_modifiers_noccs; > - > - primary->update_plane = skl_update_plane; > - primary->disable_plane = skl_disable_plane; > - primary->get_hw_state = skl_plane_get_hw_state; > - > - plane_funcs = &skl_plane_funcs; > - } else if (INTEL_GEN(dev_priv) >= 4) { > + if (INTEL_GEN(dev_priv) >= 4) { > intel_primary_formats = i965_primary_formats; > num_formats = ARRAY_SIZE(i965_primary_formats); > modifiers = i9xx_format_modifiers; > @@ -13633,14 +13470,7 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > > possible_crtcs = BIT(pipe); > > - if (INTEL_GEN(dev_priv) >= 9) > - ret = drm_universal_plane_init(&dev_priv->drm, > &primary->base, > - possible_crtcs, > plane_funcs, > - intel_primary_formats > , num_formats, > - modifiers, > - DRM_PLANE_TYPE_PRIMAR > Y, > - "plane 1%c", > pipe_name(pipe)); > - else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv)) > + if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv)) > ret = drm_universal_plane_init(&dev_priv->drm, > &primary->base, > possible_crtcs, > plane_funcs, > intel_primary_formats > , num_formats, > @@ -13658,16 +13488,7 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > if (ret) > goto fail; > > - if (INTEL_GEN(dev_priv) >= 10) { > - supported_rotations = > - DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | > - DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 | > - DRM_MODE_REFLECT_X; > - } else if (INTEL_GEN(dev_priv) >= 9) { > - supported_rotations = > - DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | > - DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270; > - } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) { > + if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) { > supported_rotations = > DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 | > DRM_MODE_REFLECT_X; > @@ -13683,15 +13504,6 @@ intel_primary_plane_create(struct > drm_i915_private *dev_priv, enum pipe pipe) > DRM_MODE_ROTATE_0 > , > supported_rotatio > ns); > > - if (INTEL_GEN(dev_priv) >= 9) > - drm_plane_create_color_properties(&primary->base, > - BIT(DRM_COLOR_YCBC > R_BT601) | > - BIT(DRM_COLOR_YCBC > R_BT709), > - BIT(DRM_COLOR_YCBC > R_LIMITED_RANGE) | > - BIT(DRM_COLOR_YCBC > R_FULL_RANGE), > - DRM_COLOR_YCBCR_BT > 709, > - DRM_COLOR_YCBCR_LI > MITED_RANGE); > - > drm_plane_helper_add(&primary->base, > &intel_plane_helper_funcs); > > return primary; > diff --git a/drivers/gpu/drm/i915/intel_drv.h > b/drivers/gpu/drm/i915/intel_drv.h > index 88adf31ef1c2..3d5281a3cf1e 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -2081,18 +2081,12 @@ int intel_sprite_set_colorkey_ioctl(struct > drm_device *dev, void *data, > struct drm_file *file_priv); > void intel_pipe_update_start(const struct intel_crtc_state > *new_crtc_state); > void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state); > -void skl_update_plane(struct intel_plane *plane, > - const struct intel_crtc_state *crtc_state, > - const struct intel_plane_state *plane_state); > -void skl_disable_plane(struct intel_plane *plane, struct intel_crtc > *crtc); > -bool skl_plane_get_hw_state(struct intel_plane *plane, enum pipe > *pipe); > -bool skl_plane_has_ccs(struct drm_i915_private *dev_priv, > - enum pipe pipe, enum plane_id plane_id); > bool intel_format_is_yuv(uint32_t format); > -bool skl_plane_has_planar(struct drm_i915_private *dev_priv, > - enum pipe pipe, enum plane_id plane_id); > struct intel_plane *intel_plane_alloc(void); > void intel_plane_free(struct intel_plane *plane); > +struct intel_plane * > +skl_universal_plane_create(struct drm_i915_private *dev_priv, > + enum pipe pipe, enum plane_id plane_id); > > > /* intel_tv.c */ > diff --git a/drivers/gpu/drm/i915/intel_sprite.c > b/drivers/gpu/drm/i915/intel_sprite.c > index cc78d6b14bf0..21b6ff63d15d 100644 > --- a/drivers/gpu/drm/i915/intel_sprite.c > +++ b/drivers/gpu/drm/i915/intel_sprite.c > @@ -230,7 +230,7 @@ void intel_pipe_update_end(struct > intel_crtc_state *new_crtc_state) > #endif > } > > -void > +static void > skl_update_plane(struct intel_plane *plane, > const struct intel_crtc_state *crtc_state, > const struct intel_plane_state *plane_state) > @@ -330,7 +330,7 @@ skl_update_plane(struct intel_plane *plane, > spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); > } > > -void > +static void > skl_disable_plane(struct intel_plane *plane, struct intel_crtc > *crtc) > { > struct drm_i915_private *dev_priv = to_i915(plane- > >base.dev); > @@ -348,7 +348,7 @@ skl_disable_plane(struct intel_plane *plane, > struct intel_crtc *crtc) > spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); > } > > -bool > +static bool > skl_plane_get_hw_state(struct intel_plane *plane, > enum pipe *pipe) > { > @@ -1440,8 +1440,41 @@ static const struct drm_plane_funcs > skl_plane_funcs = { > .format_mod_supported = skl_plane_format_mod_supported, > }; > > -bool skl_plane_has_ccs(struct drm_i915_private *dev_priv, > - enum pipe pipe, enum plane_id plane_id) > +static bool skl_plane_has_fbc(struct drm_i915_private *dev_priv, > + enum pipe pipe, enum plane_id > plane_id) > +{ > + if (!HAS_FBC(dev_priv)) > + return false; > + > + return pipe == PIPE_A && plane_id == PLANE_PRIMARY; > +} > + > +static bool skl_plane_has_planar(struct drm_i915_private *dev_priv, > + enum pipe pipe, enum plane_id > plane_id) > +{ > + if (plane_id == PLANE_PRIMARY) { > + if (IS_SKYLAKE(dev_priv) || IS_BROXTON(dev_priv)) > + return false; > + else if ((INTEL_GEN(dev_priv) == 9 && pipe == > PIPE_C) && > + !IS_GEMINILAKE(dev_priv)) > + return false; > + } else if (plane_id >= PLANE_SPRITE0) { > + if (plane_id == PLANE_CURSOR) > + return false; > + if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) > == 10) { > + if (plane_id != PLANE_SPRITE0) > + return false; > + } else { > + if (plane_id != PLANE_SPRITE0 || pipe == > PIPE_C || > + IS_SKYLAKE(dev_priv) || > IS_BROXTON(dev_priv)) > + return false; > + } > + } > + return true; > +} > + > +static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv, > + enum pipe pipe, enum plane_id > plane_id) > { > if (plane_id == PLANE_CURSOR) > return false; > @@ -1486,6 +1519,98 @@ void intel_plane_free(struct intel_plane > *plane) > kfree(plane); > } > > +struct intel_plane * > +skl_universal_plane_create(struct drm_i915_private *dev_priv, > + enum pipe pipe, enum plane_id plane_id) > +{ > + struct intel_plane *plane; > + enum drm_plane_type plane_type; > + unsigned int supported_rotations; > + unsigned int possible_crtcs; > + const u64 *modifiers; > + const u32 *formats; > + int num_formats; > + int ret; > + > + plane = intel_plane_alloc(); > + if (IS_ERR(plane)) > + return plane; > + > + plane->pipe = pipe; > + plane->id = plane_id; > + plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane_id); > + > + plane->can_scale = true; > + > + plane->has_fbc = skl_plane_has_fbc(dev_priv, pipe, > plane_id); > + if (plane->has_fbc) { > + struct intel_fbc *fbc = &dev_priv->fbc; > + > + fbc->possible_framebuffer_bits |= plane- > >frontbuffer_bit; > + } > + > + plane->update_plane = skl_update_plane; > + plane->disable_plane = skl_disable_plane; > + plane->get_hw_state = skl_plane_get_hw_state; > + > + if (skl_plane_has_planar(dev_priv, pipe, plane_id)) { > + formats = skl_planar_formats; > + num_formats = ARRAY_SIZE(skl_planar_formats); > + } else { > + formats = skl_plane_formats; > + num_formats = ARRAY_SIZE(skl_plane_formats); > + } > + > + if (skl_plane_has_ccs(dev_priv, pipe, plane_id)) > + modifiers = skl_plane_format_modifiers_ccs; > + else > + modifiers = skl_plane_format_modifiers_noccs; > + > + if (plane_id == PLANE_PRIMARY) > + plane_type = DRM_PLANE_TYPE_PRIMARY; > + else > + plane_type = DRM_PLANE_TYPE_OVERLAY; > + > + possible_crtcs = BIT(pipe); > + > + ret = drm_universal_plane_init(&dev_priv->drm, &plane->base, > + possible_crtcs, > &skl_plane_funcs, > + formats, num_formats, > modifiers, > + plane_type, > + "plane %d%c", plane_id + 1, > + pipe_name(pipe)); > + if (ret) > + goto fail; > + > + supported_rotations = > + DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | > + DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270; > + > + if (INTEL_GEN(dev_priv) >= 10) > + supported_rotations |= DRM_MODE_REFLECT_X; > + > + drm_plane_create_rotation_property(&plane->base, > + DRM_MODE_ROTATE_0, > + supported_rotations); > + > + drm_plane_create_color_properties(&plane->base, > + BIT(DRM_COLOR_YCBCR_BT601) > | > + BIT(DRM_COLOR_YCBCR_BT709) > , > + BIT(DRM_COLOR_YCBCR_LIMITE > D_RANGE) | > + BIT(DRM_COLOR_YCBCR_FULL_R > ANGE), > + DRM_COLOR_YCBCR_BT709, > + DRM_COLOR_YCBCR_LIMITED_RA > NGE); > + > + drm_plane_helper_add(&plane->base, > &intel_plane_helper_funcs); > + > + return plane; > + > +fail: > + intel_plane_free(plane); > + > + return ERR_PTR(ret); > +} > + > struct intel_plane * > intel_sprite_plane_create(struct drm_i915_private *dev_priv, > enum pipe pipe, int plane) > @@ -1499,36 +1624,23 @@ intel_sprite_plane_create(struct > drm_i915_private *dev_priv, > int num_plane_formats; > int ret; > > - intel_plane = intel_plane_alloc(); > - if (IS_ERR(intel_plane)) > - return intel_plane; > - > if (INTEL_GEN(dev_priv) >= 9) { > - intel_plane->can_scale = true; > - > - intel_plane->has_ccs = skl_plane_has_ccs(dev_priv, > pipe, > + intel_plane = skl_universal_plane_create(dev_priv, > pipe, > PLANE_SPRIT > E0 + plane); > + if (IS_ERR(intel_plane)) > + return intel_plane; > > - intel_plane->update_plane = skl_update_plane; > - intel_plane->disable_plane = skl_disable_plane; > - intel_plane->get_hw_state = skl_plane_get_hw_state; > + /* FIXME unify */ > + intel_plane->check_plane = intel_check_sprite_plane; > > - if (skl_plane_has_planar(dev_priv, pipe, > - PLANE_SPRITE0 + plane)) { > - plane_formats = skl_planar_formats; > - num_plane_formats = > ARRAY_SIZE(skl_planar_formats); > - } else { > - plane_formats = skl_plane_formats; > - num_plane_formats = > ARRAY_SIZE(skl_plane_formats); > - } > + return intel_plane; > + } > > - if (intel_plane->has_ccs) > - modifiers = skl_plane_format_modifiers_ccs; > - else > - modifiers = > skl_plane_format_modifiers_noccs; > + intel_plane = intel_plane_alloc(); > + if (IS_ERR(intel_plane)) > + return intel_plane; > > - plane_funcs = &skl_plane_funcs; > - } else if (IS_VALLEYVIEW(dev_priv) || > IS_CHERRYVIEW(dev_priv)) { > + if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { > intel_plane->can_scale = false; > intel_plane->max_downscale = 1; > > @@ -1581,16 +1693,7 @@ intel_sprite_plane_create(struct > drm_i915_private *dev_priv, > } > } > > - if (INTEL_GEN(dev_priv) >= 10) { > - supported_rotations = > - DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | > - DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 | > - DRM_MODE_REFLECT_X; > - } else if (INTEL_GEN(dev_priv) >= 9) { > - supported_rotations = > - DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | > - DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270; > - } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) { > + if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) { > supported_rotations = > DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 | > DRM_MODE_REFLECT_X; > @@ -1606,20 +1709,12 @@ intel_sprite_plane_create(struct > drm_i915_private *dev_priv, > > possible_crtcs = BIT(pipe); > > - if (INTEL_GEN(dev_priv) >= 9) > - ret = drm_universal_plane_init(&dev_priv->drm, > &intel_plane->base, > - possible_crtcs, > plane_funcs, > - plane_formats, > num_plane_formats, > - modifiers, > - DRM_PLANE_TYPE_OVERLA > Y, > - "plane %d%c", plane + > 2, pipe_name(pipe)); > - else > - ret = drm_universal_plane_init(&dev_priv->drm, > &intel_plane->base, > - possible_crtcs, > plane_funcs, > - plane_formats, > num_plane_formats, > - modifiers, > - DRM_PLANE_TYPE_OVERLA > Y, > - "sprite %c", > sprite_name(pipe, plane)); > + ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane- > >base, > + possible_crtcs, plane_funcs, > + plane_formats, > num_plane_formats, > + modifiers, > + DRM_PLANE_TYPE_OVERLAY, > + "sprite %c", > sprite_name(pipe, plane)); > if (ret) > goto fail; > -- Best Regards, Lisovskiy Stanislav _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx