@@ -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)));
}
@@ -560,8 +560,6 @@ static int dev_open(struct drm_device *dev, struct drm_file *file)
*/
static void dev_lastclose(struct drm_device *dev)
{
- int i;
-
/* we don't support vga-switcheroo.. so just make sure the fbdev
* mode is active
*/
@@ -570,24 +568,6 @@ static void dev_lastclose(struct drm_device *dev)
DBG("lastclose: dev=%p", dev);
- if (priv->rotation_prop) {
- /* 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);
- }
- }
-
ret = drm_fb_helper_restore_fbdev_mode_unlocked(priv->fbdev);
if (ret)
DBG("failed to restore crtc mode");
@@ -111,7 +111,6 @@ struct omap_drm_private {
bool has_dmm;
/* properties: */
- struct drm_property *rotation_prop;
struct drm_property *zorder_prop;
/* irq handling: */
@@ -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);
}
@@ -337,9 +337,10 @@ int omap_plane_set_property(struct drm_plane *plane,
{
struct omap_plane *omap_plane = to_omap_plane(plane);
struct omap_drm_private *priv = plane->dev->dev_private;
+ struct drm_device *dev = omap_plane->base.dev;
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);