On Fri, Oct 21, 2016 at 10:22:45PM +0300, ville.syrjala@linux.intel.com wrote:
From: Ville Syrjälä ville.syrjala@linux.intel.com
Now that all drivers have been converted over to the per-plane rotation property, we can just nuke the global rotation property.
v2: Rebase due to BIT(),__builtin_ffs() & co. Deal with superfluous code shuffling
Signed-off-by: Ville Syrjälä ville.syrjala@linux.intel.com Reviewed-by: Joonas Lahtinen joonas.lahtinen@linux.intel.com
Merged up to this patch. I think it's better to land the follow-up i915 patches through drm-intel. I'll do backmerges next week anyway, you won't need to wait long.
Thanks, Daniel
drivers/gpu/drm/drm_atomic.c | 6 ++---- drivers/gpu/drm/drm_blend.c | 32 ++++---------------------------- drivers/gpu/drm/drm_fb_helper.c | 7 +------ include/drm/drm_blend.h | 2 -- include/drm/drm_crtc.h | 5 ----- 5 files changed, 7 insertions(+), 45 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index f81706387889..1b5a32df9a9a 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -705,8 +705,7 @@ int drm_atomic_plane_set_property(struct drm_plane *plane, state->src_w = val; } else if (property == config->prop_src_h) { state->src_h = val;
- } else if (property == config->rotation_property ||
property == plane->rotation_property) {
- } else if (property == plane->rotation_property) { if (!is_power_of_2(val & DRM_ROTATE_MASK)) return -EINVAL; state->rotation = val;
@@ -766,8 +765,7 @@ drm_atomic_plane_get_property(struct drm_plane *plane, *val = state->src_w; } else if (property == config->prop_src_h) { *val = state->src_h;
- } else if (property == config->rotation_property ||
property == plane->rotation_property) {
- } else if (property == plane->rotation_property) { *val = state->rotation; } else if (property == plane->zpos_property) { *val = state->zpos;
diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c index e52aece30900..1f2412c7ccfd 100644 --- a/drivers/gpu/drm/drm_blend.c +++ b/drivers/gpu/drm/drm_blend.c @@ -89,7 +89,7 @@
- On top of this basic transformation additional properties can be exposed by
- the driver:
- Rotation is set up with drm_mode_create_rotation_property(). It adds a
- Rotation is set up with drm_plane_create_rotation_property(). It adds a
- rotation and reflection step between the source and destination rectangles.
- Without this property the rectangle is only scaled, but not rotated or
- reflected.
@@ -105,18 +105,12 @@ */
/**
- drm_mode_create_rotation_property - create a new rotation property
- @dev: DRM device
- drm_plane_create_rotation_property - create a new rotation property
- @plane: drm plane
- @rotation: initial value of the rotation property
- @supported_rotations: bitmask of supported rotations and reflections
- This creates a new property with the selected support for transformations.
- The resulting property should be stored in @rotation_property in
- &drm_mode_config. It then must be attached to each plane which supports
- rotations using drm_object_attach_property().
- FIXME: Probably better if the rotation property is created on each plane,
- like the zpos property. Otherwise it's not possible to allow different
- rotation modes on different planes.
- Since a rotation by 180° degress is the same as reflecting both along the x
- and the y axis the rotation property is somewhat redundant. Drivers can use
@@ -144,24 +138,6 @@
- rotation. After reflection, the rotation is applied to the image sampled from
- the source rectangle, before scaling it to fit the destination rectangle.
*/ -struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
unsigned int supported_rotations)
-{
- static const struct drm_prop_enum_list props[] = {
{ __builtin_ffs(DRM_ROTATE_0) - 1, "rotate-0" },
{ __builtin_ffs(DRM_ROTATE_90) - 1, "rotate-90" },
{ __builtin_ffs(DRM_ROTATE_180) - 1, "rotate-180" },
{ __builtin_ffs(DRM_ROTATE_270) - 1, "rotate-270" },
{ __builtin_ffs(DRM_REFLECT_X) - 1, "reflect-x" },
{ __builtin_ffs(DRM_REFLECT_Y) - 1, "reflect-y" },
- };
- return drm_property_create_bitmask(dev, 0, "rotation",
props, ARRAY_SIZE(props),
supported_rotations);
-} -EXPORT_SYMBOL(drm_mode_create_rotation_property);
int drm_plane_create_rotation_property(struct drm_plane *plane, unsigned int rotation, unsigned int supported_rotations) diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index e0d428f9d1cb..83dbae0fabcf 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -392,15 +392,10 @@ static int restore_fbdev_mode(struct drm_fb_helper *fb_helper) if (plane->type != DRM_PLANE_TYPE_PRIMARY) drm_plane_force_disable(plane);
if (plane->rotation_property) {
if (plane->rotation_property) drm_mode_plane_set_obj_prop(plane, plane->rotation_property, DRM_ROTATE_0);
} else if (dev->mode_config.rotation_property) {
drm_mode_plane_set_obj_prop(plane,
dev->mode_config.rotation_property,
DRM_ROTATE_0);
}
}
for (i = 0; i < fb_helper->crtc_count; i++) {
diff --git a/include/drm/drm_blend.h b/include/drm/drm_blend.h index fd351924e1c5..13221cf9b3eb 100644 --- a/include/drm/drm_blend.h +++ b/include/drm/drm_blend.h @@ -52,8 +52,6 @@ static inline bool drm_rotation_90_or_270(unsigned int rotation) return rotation & (DRM_ROTATE_90 | DRM_ROTATE_270); }
-struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev,
unsigned int supported_rotations);
int drm_plane_create_rotation_property(struct drm_plane *plane, unsigned int rotation, unsigned int supported_rotations); diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 284c1b3aec10..bc860cfc67ca 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -1156,11 +1156,6 @@ struct drm_mode_config { */ struct drm_property *plane_type_property; /**
* @rotation_property: Optional property for planes or CRTCs to specifiy
* rotation.
*/
- struct drm_property *rotation_property;
- /**
*/
- @prop_src_x: Default atomic plane property for the plane source
- position in the connected &drm_framebuffer.
-- 2.7.4