[PATCH] drm/omap: move rotation property to drm core mode_config
Tomi Valkeinen
tomi.valkeinen at ti.com
Tue Sep 30 05:15:07 PDT 2014
On 30/09/14 14:52, Daniel Vetter wrote:
> On Tue, Sep 30, 2014 at 01:49:20PM +0200, Daniel Vetter wrote:
>> On Tue, Sep 30, 2014 at 02:42:01PM +0300, Tomi Valkeinen wrote:
>>> On 06/08/14 11:40, Daniel Vetter wrote:
>>>> 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.
>>>
>>> I could give this a try if you point me to a git tree with the patch.
>>
>> I should apply on top of drm-next nowadays, prerequisites that went in
>> through drm-intel are all merged now. I guess you'll take care of this one
>> now?
It didn't compile, but it was trivial to fix. And yes, I can pick it to my
omapdrm patches, which I guess will be delayed until 3.19.
> btw if this works you can drop the entire if (rotation_property) hunk from
> lastclose, since the fbdev helper now takes care of this itself:
>
> commit 3a5f87c286515c54ff5c52c3e64d0c522b7570c0
> Author: Thomas Wood <thomas.wood at intel.com>
> Date: Wed Aug 20 14:45:00 2014 +0100
>
> drm: fix plane rotation when restoring fbdev configuration
I updated the patch, with the compile fix and removal of the lastclose stuff.
Seems to work fine with a quick test: I exit X (after fiddling with xrandr
rotation in there), and I see the rotation property restored to the default
value.
Tomi
From afb37e165010fc5f3db82efdec9b883fb578deac Mon Sep 17 00:00:00 2001
From: Daniel Vetter <daniel.vetter at ffwll.ch>
Date: Wed, 6 Aug 2014 10:40:24 +0200
Subject: [PATCH] drm/omap: move rotation property to drm core mode_config
Move rotation property to drm core mode_config. This allows us to ditch
the driver-private lastclose logic.
Cc: Rob Clark <robdclark at gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
---
drivers/gpu/drm/omapdrm/omap_crtc.c | 4 ++--
drivers/gpu/drm/omapdrm/omap_drv.c | 20 --------------------
drivers/gpu/drm/omapdrm/omap_drv.h | 1 -
drivers/gpu/drm/omapdrm/omap_plane.c | 7 ++++---
4 files changed, 6 insertions(+), 26 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 862ba03c236c..282f5ec4f1a2 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -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");
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index 60e47b33c801..aa596504e662 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -111,7 +111,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..3b5fad2a359c 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);
}
@@ -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);
--
2.1.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140930/39410959/attachment-0001.sig>
More information about the dri-devel
mailing list