All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	DRI Development <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH] drm/omap: move rotation property to drm core mode_config
Date: Tue, 30 Sep 2014 15:15:07 +0300	[thread overview]
Message-ID: <542A9ECB.5080506@ti.com> (raw)
In-Reply-To: <20140930115205.GM24667@phenom.ffwll.local>


[-- Attachment #1.1: Type: text/plain, Size: 6005 bytes --]

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@ti.com>
>>>> Cc: Rob Clark <robdclark@gmail.com>
>>>> Signed-off-by: Daniel Vetter <daniel.vetter@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@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@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@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@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




[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-09-30 12:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-06  8:40 [PATCH] drm/omap: move rotation property to drm core mode_config Daniel Vetter
2014-09-30 11:42 ` Tomi Valkeinen
2014-09-30 11:49   ` Daniel Vetter
2014-09-30 11:52     ` Daniel Vetter
2014-09-30 12:15       ` Tomi Valkeinen [this message]
2014-09-30 13:11         ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=542A9ECB.5080506@ti.com \
    --to=tomi.valkeinen@ti.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.