[PATCH] drm/omap: move rotation property to drm core mode_config
Daniel Vetter
daniel.vetter at ffwll.ch
Wed Aug 6 01:40:24 PDT 2014
This allows us to ditch the driver-private lastclose logic.
Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
Cc: Rob Clark <robdclark at gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
--
Untested and atm only applies on top of drm-intel-nightly.
---
drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ++--
drivers/gpu/drm/omapdrm/omap_drv.c | 9 ++-------
drivers/gpu/drm/omapdrm/omap_drv.h | 1 -
drivers/gpu/drm/omapdrm/omap_plane.c | 6 +++---
4 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 2d28dc337cfb..1240fa61b397 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -385,9 +385,9 @@ static int omap_crtc_set_property(struct drm_crtc *crtc,
struct drm_property *property, uint64_t val)
{
struct omap_crtc *omap_crtc = to_omap_crtc(crtc);
- struct omap_drm_private *priv = crtc->dev->dev_private;
+ struct drm_device *dev = crtc->dev;
- if (property == priv->rotation_prop) {
+ if (property == dev->mode_config.rotation_property) {
crtc->invert_dimensions =
!!(val & ((1LL << DRM_ROTATE_90) | (1LL << DRM_ROTATE_270)));
}
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index 002b9721e85a..abfacca2e995 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -570,21 +570,16 @@ static void dev_lastclose(struct drm_device *dev)
DBG("lastclose: dev=%p", dev);
- if (priv->rotation_prop) {
+ if (dev->mode_config.rotation_property) {
/* need to restore default rotation state.. not sure
* if there is a cleaner way to restore properties to
* default state? Maybe a flag that properties should
* automatically be restored to default state on
* lastclose?
*/
- for (i = 0; i < priv->num_crtcs; i++) {
- drm_object_property_set_value(&priv->crtcs[i]->base,
- priv->rotation_prop, 0);
- }
-
for (i = 0; i < priv->num_planes; i++) {
drm_object_property_set_value(&priv->planes[i]->base,
- priv->rotation_prop, 0);
+ dev->mode_config.rotation_property, 0);
}
}
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index b08a450d1b5d..0443190e7af3 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -110,7 +110,6 @@ struct omap_drm_private {
bool has_dmm;
/* properties: */
- struct drm_property *rotation_prop;
struct drm_property *zorder_prop;
/* irq handling: */
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c b/drivers/gpu/drm/omapdrm/omap_plane.c
index 891a4dc608af..c1bcf631d04d 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -306,7 +306,7 @@ void omap_plane_install_properties(struct drm_plane *plane,
struct drm_property *prop;
if (priv->has_dmm) {
- prop = priv->rotation_prop;
+ prop = dev->mode_config.rotation_property;
if (!prop) {
prop = drm_mode_create_rotation_property(dev,
BIT(DRM_ROTATE_0) |
@@ -317,7 +317,7 @@ void omap_plane_install_properties(struct drm_plane *plane,
BIT(DRM_REFLECT_Y));
if (prop == NULL)
return;
- priv->rotation_prop = prop;
+ dev->mode_config.rotation_property = prop;
}
drm_object_attach_property(obj, prop, 0);
}
@@ -339,7 +339,7 @@ int omap_plane_set_property(struct drm_plane *plane,
struct omap_drm_private *priv = plane->dev->dev_private;
int ret = -EINVAL;
- if (property == priv->rotation_prop) {
+ if (property == dev->mode_config.rotation_property) {
DBG("%s: rotation: %02x", omap_plane->name, (uint32_t)val);
omap_plane->win.rotation = val;
ret = apply(plane);
--
2.0.1
More information about the dri-devel
mailing list