All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Tomi Valkeinen <tomi.valkeinen@gmail.com>
Cc: intel-gfx@lists.freedesktop.org,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 07/15] drm/omap: Use per-plane rotation property
Date: Fri, 12 Aug 2016 19:04:04 +0300	[thread overview]
Message-ID: <20160812160404.GD4329@intel.com> (raw)
In-Reply-To: <20160811133332.GL4329@intel.com>

On Thu, Aug 11, 2016 at 04:33:32PM +0300, Ville Syrjälä wrote:
> On Thu, Aug 11, 2016 at 02:32:44PM +0300, Tomi Valkeinen wrote:
> > Hi,
> > 
> > On 22/07/16 16:43, ville.syrjala@linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > The global mode_config.rotation_property is going away, switch over to
> > > per-plane rotation_property.
> > > 
> > > Not sure I got the annoying crtc rotation_property handling right.
> > > Might work, or migth not.
> > 
> > I think something is funny with this patch or the series. I fetched your
> > branch, and with your series, it looks like the primary planes lose all
> > their props. modetest says:
> > 
> > could not get plane 26 properties: Invalid argument
> > could not get plane 30 properties: Invalid argument
> 
> Hmm. Weird. Is it really the get props ioctl that fails?
> 
> The first EINVAL I can spot there is
>         if (!obj->properties) {
>               ret = -EINVAL;
>               goto out_unref;
> 	}
> which definitely makes no sense since this is assigned
> as plane->base.properties = &plane->properties. So can't be that unless
> we manage to clear the pointer somehow after the init.
> 
> The only other direct EINVAL I see there is if
>  drm_object_property_get_value(obj->properties->properties[i])
> fails to find the passed prop in the properties array. Which clearly
> can't happen since we got it from the array in the first place. Also,
> clearly that code is rather inefficient, perhaps someone should rewrite
> it a bit.
> 
> Can't quite see how this could fail for the plane in other ways. But I
> might be blind.

I tried to think on this a bit more, and the only think I came up with was
that we end up doing the drm_plane_create_rotation_property() twice for the
primary planes. I tried that on i915 but it'd didn't result in anything bad
AFAICS. Would leak a bit, but so what :P

Dunno, I guess you could try something like:

--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -211,11 +211,12 @@ void omap_plane_install_properties(struct drm_plane *plane,
        struct omap_drm_private *priv = dev->dev_private;
 
        if (priv->has_dmm) {
-               drm_plane_create_rotation_property(plane,
-                                                  BIT(DRM_ROTATE_0),
-                                                  BIT(DRM_ROTATE_0) | BIT(DRM_ROTATE_90) |
-                                                  BIT(DRM_ROTATE_180) | BIT(DRM_ROTATE_270) |
-                                                  BIT(DRM_REFLECT_X) | BIT(DRM_REFLECT_Y));
+               if (!plane->rotation_property)
+                       drm_plane_create_rotation_property(plane,
+                                                          BIT(DRM_ROTATE_0),
+                                                          BIT(DRM_ROTATE_0) | BIT(DRM_ROTATE_90) |
+                                                          BIT(DRM_ROTATE_180) | BIT(DRM_ROTATE_270) |
+                                                          BIT(DRM_REFLECT_X) | BIT(DRM_REFLECT_Y));


> 
> > 
> > and
> > 
> > Planes:
> > id      crtc    fb      CRTC x,y        x,y     gamma size      possible
> > crtcs
> > 26      28      55      0,0             0,0     0               0x00000001
> >   formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
> >   no properties found
> > 30      0       0       0,0             0,0     0               0x00000002
> >   formats: RG16 RX12 XR12 RA12 AR12 XR15 AR15 RG24 RX24 XR24 RA24 AR24
> > NV12 YUYV UYVY
> >   no properties found
> > 
> > I didn't look closer yet.
> > 
> >  Tomi
> > 
> 
> 
> 
> 
> -- 
> Ville Syrjälä
> Intel OTC
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-08-12 16:04 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-22 13:43 [PATCH 00/15] drm: Per-plane rotation etc ville.syrjala
2016-07-22 13:43 ` [PATCH 01/15] drm: Add drm_rotation_90_or_270() ville.syrjala
2016-07-22 13:43 ` [PATCH 02/15] drm/atomic: Reject attempts to use multiple rotation angles at once ville.syrjala
2016-07-22 13:43 ` [PATCH v2 03/15] drm: Add support for optional per-plane rotation property ville.syrjala
2016-07-25  7:08   ` Joonas Lahtinen
2016-07-22 13:43 ` [PATCH 04/15] drm/arm: Use " ville.syrjala
2016-07-22 14:37   ` Brian Starkey
2016-07-22 13:43 ` [PATCH 05/15] drm/atmel-hlcdc: " ville.syrjala
2016-07-22 13:58   ` Boris Brezillon
2016-07-22 15:47   ` [PATCH v2 " ville.syrjala
2016-08-10  8:35     ` Boris Brezillon
2016-08-10  9:09       ` Ville Syrjälä
2016-08-10  9:25         ` Boris Brezillon
2016-08-10 11:41           ` Ville Syrjälä
2016-08-10 11:52             ` Boris Brezillon
2016-08-10 12:04               ` Boris Brezillon
2016-08-10 14:04               ` Daniel Vetter
2016-08-10 16:38                 ` Boris Brezillon
2016-08-11  8:50                   ` Daniel Vetter
2016-07-22 13:43 ` [PATCH 06/15] drm/omap: Set rotation property initial value to BIT(DRM_ROTATE_0) insted of 0 ville.syrjala
2016-07-22 13:43 ` [PATCH 07/15] drm/omap: Use per-plane rotation property ville.syrjala
2016-08-11 11:32   ` Tomi Valkeinen
2016-08-11 13:33     ` Ville Syrjälä
2016-08-12 16:04       ` Ville Syrjälä [this message]
2016-09-23 11:33         ` [Intel-gfx] " Tomi Valkeinen
2016-07-22 13:43 ` [PATCH 08/15] drm/msm/mdp5: Set rotation property initial value to BIT(DRM_ROTATE_0) insted of 0 ville.syrjala
2016-07-22 13:43 ` [PATCH 09/15] drm/msm/mdp5: Use per-plane rotation property ville.syrjala
2016-07-22 13:43 ` [PATCH 10/15] drm/msm/mdp5: Advertize 180 degree rotation ville.syrjala
2016-07-22 13:43 ` [PATCH v2 11/15] drm/i915: Use the per-plane rotation property ville.syrjala
2016-07-25  6:19   ` Joonas Lahtinen
2016-07-22 13:43 ` [PATCH 12/15] drm: RIP mode_config->rotation_property ville.syrjala
2016-07-25  6:08   ` Joonas Lahtinen
2016-10-17 22:38   ` Laurent Pinchart
2016-10-18  7:36     ` Daniel Vetter
2016-10-18  8:13       ` Laurent Pinchart
2016-10-18  9:16         ` [Intel-gfx] " Ville Syrjälä
2016-07-22 13:43 ` [PATCH 13/15] drm/i915: Use & instead if == to check for rotations ville.syrjala
2016-07-22 13:43 ` [PATCH 14/15] drm/i915: Clean up rotation DSPCNTR/DVSCNTR/etc. setup ville.syrjala
2016-07-22 13:43 ` [PATCH 15/15] drm/i915: Add horizontal mirroring support for CHV pipe B planes ville.syrjala
2016-07-22 14:24 ` ✗ Ro.CI.BAT: failure for drm: Per-plane rotation etc Patchwork
2016-07-22 16:31 ` ✗ Ro.CI.BAT: failure for drm: Per-plane rotation etc. (rev2) Patchwork

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=20160812160404.GD4329@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=tomi.valkeinen@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    /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.