[PATCH v5 3/5] drm: simplify initialization of rotation property
On Wed, Jan 27, 2016 at 03:44:41PM +0100, Marek Szyprowski wrote: > This patch simplifies initialization of generic rotation property and > aligns the code to match recently introduced function for intializing > generic zpos property. It also adds missing documentation. > > Signed-off-by: Marek Szyprowski > --- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 10 - > drivers/gpu/drm/drm_crtc.c | 29 > - > drivers/gpu/drm/i915/intel_display.c| 6 ++--- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 3 +-- > drivers/gpu/drm/omapdrm/omap_drv.c | 3 +-- > include/drm/drm_crtc.h | 4 ++-- > 6 files changed, 33 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > index 1ffe9c329c46..4f9606cdf0f2 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > @@ -967,12 +967,10 @@ atmel_hlcdc_plane_create_properties(struct drm_device > *dev) > if (!props->alpha) > return ERR_PTR(-ENOMEM); > > - dev->mode_config.rotation_property = > - drm_mode_create_rotation_property(dev, > - BIT(DRM_ROTATE_0) | > - BIT(DRM_ROTATE_90) | > - BIT(DRM_ROTATE_180) | > - BIT(DRM_ROTATE_270)); > + drm_mode_create_rotation_property(dev, BIT(DRM_ROTATE_0) | > +BIT(DRM_ROTATE_90) | > +BIT(DRM_ROTATE_180) | > +BIT(DRM_ROTATE_270)); > if (!dev->mode_config.rotation_property) > return ERR_PTR(-ENOMEM); > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index d40bab29747e..822ad6928144 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -5875,10 +5875,23 @@ void drm_mode_config_cleanup(struct drm_device *dev) > } > EXPORT_SYMBOL(drm_mode_config_cleanup); > > -struct drm_property *drm_mode_create_rotation_property(struct drm_device > *dev, > -unsigned int > supported_rotations) > +/** > + * drm_mode_create_rotation_property - create generic rotation property > + * @dev: DRM device > + * @supported_rotations: bitmask of supported rotation modes > + * > + * This function initializes generic rotation property and enables support > + * for it in drm core. Drivers can then attach this property to planes to > enable > + * support for different rotation modes. > + * > + * Returns: > + * Zero on success, negative errno on failure. > + */ > +int drm_mode_create_rotation_property(struct drm_device *dev, > + unsigned int supported_rotations) > { > - static const struct drm_prop_enum_list props[] = { > + struct drm_property *prop; > + static const struct drm_prop_enum_list values[] = { > { DRM_ROTATE_0, "rotate-0" }, > { DRM_ROTATE_90, "rotate-90" }, > { DRM_ROTATE_180, "rotate-180" }, > @@ -5887,9 +5900,13 @@ struct drm_property > *drm_mode_create_rotation_property(struct drm_device *dev, > { DRM_REFLECT_Y, "reflect-y" }, > }; > > - return drm_property_create_bitmask(dev, 0, "rotation", > -props, ARRAY_SIZE(props), > -supported_rotations); > + prop = drm_property_create_bitmask(dev, 0, "rotation", values, > + ARRAY_SIZE(values), supported_rotations); > + if (!prop) > + return -ENOMEM; > + > + dev->mode_config.rotation_property = prop; Again, per-plane rotation properties are going to be needed, so this isn't good. -- Ville Syrjälä Intel OTC
[PATCH v5 3/5] drm: simplify initialization of rotation property
On Mon, Feb 29, 2016 at 04:09:31PM +0100, Daniel Vetter wrote: > On Mon, Feb 29, 2016 at 04:06:40PM +0100, Daniel Vetter wrote: > > On Wed, Jan 27, 2016 at 03:44:41PM +0100, Marek Szyprowski wrote: > > > This patch simplifies initialization of generic rotation property and > > > aligns the code to match recently introduced function for intializing > > > generic zpos property. It also adds missing documentation. > > > > > > Signed-off-by: Marek Szyprowski > > > > I merged patches 3-5 to drm-misc, thanks. For the blending mode I'd like > > to gather a few more acks from people who have been proposing ideas in the > > past (would speed up if you cc them next time around). > > Blergh, I meant patches 1-3 are merged ofc ;-) Ok, didn't even get around to push it out before I dropped it again on Ville's request. Please always Cc: everyone who discussed previous versions of a patch series to get their attention. And please include all such Cc: lines in the commit messages, so I know whom to ping on irc in case of doubt first. And a minor bikeshed: I prefer if there's a per-patch changelog somewhere, not just in the cover letter. Although I guess doesn't apply here since most patches are new/completely different. Thanks, Daniel > > > > Thanks, Daniel > > > --- > > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 10 - > > > drivers/gpu/drm/drm_crtc.c | 29 > > > - > > > drivers/gpu/drm/i915/intel_display.c| 6 ++--- > > > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 3 +-- > > > drivers/gpu/drm/omapdrm/omap_drv.c | 3 +-- > > > include/drm/drm_crtc.h | 4 ++-- > > > 6 files changed, 33 insertions(+), 22 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > > b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > > index 1ffe9c329c46..4f9606cdf0f2 100644 > > > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > > @@ -967,12 +967,10 @@ atmel_hlcdc_plane_create_properties(struct > > > drm_device *dev) > > > if (!props->alpha) > > > return ERR_PTR(-ENOMEM); > > > > > > - dev->mode_config.rotation_property = > > > - drm_mode_create_rotation_property(dev, > > > - BIT(DRM_ROTATE_0) | > > > - BIT(DRM_ROTATE_90) | > > > - BIT(DRM_ROTATE_180) | > > > - BIT(DRM_ROTATE_270)); > > > + drm_mode_create_rotation_property(dev, BIT(DRM_ROTATE_0) | > > > +BIT(DRM_ROTATE_90) | > > > +BIT(DRM_ROTATE_180) | > > > +BIT(DRM_ROTATE_270)); > > > if (!dev->mode_config.rotation_property) > > > return ERR_PTR(-ENOMEM); > > > > > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > > > index d40bab29747e..822ad6928144 100644 > > > --- a/drivers/gpu/drm/drm_crtc.c > > > +++ b/drivers/gpu/drm/drm_crtc.c > > > @@ -5875,10 +5875,23 @@ void drm_mode_config_cleanup(struct drm_device > > > *dev) > > > } > > > EXPORT_SYMBOL(drm_mode_config_cleanup); > > > > > > -struct drm_property *drm_mode_create_rotation_property(struct drm_device > > > *dev, > > > -unsigned int > > > supported_rotations) > > > +/** > > > + * drm_mode_create_rotation_property - create generic rotation property > > > + * @dev: DRM device > > > + * @supported_rotations: bitmask of supported rotation modes > > > + * > > > + * This function initializes generic rotation property and enables > > > support > > > + * for it in drm core. Drivers can then attach this property to planes > > > to enable > > > + * support for different rotation modes. > > > + * > > > + * Returns: > > > + * Zero on success, negative errno on failure. > > > + */ > > > +int drm_mode_create_rotation_property(struct drm_device *dev, > > > + unsigned int supported_rotations) > > > { > > > - static const struct drm_prop_enum_list props[] = { > > > + struct drm_property *prop; > > > + static const struct drm_prop_enum_list values[] = { > > > { DRM_ROTATE_0, "rotate-0" }, > > > { DRM_ROTATE_90, "rotate-90" }, > > > { DRM_ROTATE_180, "rotate-180" }, > > > @@ -5887,9 +5900,13 @@ struct drm_property > > > *drm_mode_create_rotation_property(struct drm_device *dev, > > > { DRM_REFLECT_Y, "reflect-y" }, > > > }; > > > > > > - return drm_property_create_bitmask(dev, 0, "rotation", > > > -props, ARRAY_SIZE(props), > > > -supported_rotations); > > > + prop = drm_property_create_bitmask(dev, 0, "rotation", values, > > > +
[PATCH v5 3/5] drm: simplify initialization of rotation property
On Mon, Feb 29, 2016 at 04:06:40PM +0100, Daniel Vetter wrote: > On Wed, Jan 27, 2016 at 03:44:41PM +0100, Marek Szyprowski wrote: > > This patch simplifies initialization of generic rotation property and > > aligns the code to match recently introduced function for intializing > > generic zpos property. It also adds missing documentation. > > > > Signed-off-by: Marek Szyprowski > > I merged patches 3-5 to drm-misc, thanks. For the blending mode I'd like > to gather a few more acks from people who have been proposing ideas in the > past (would speed up if you cc them next time around). Blergh, I meant patches 1-3 are merged ofc ;-) > > Thanks, Daniel > > --- > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 10 - > > drivers/gpu/drm/drm_crtc.c | 29 > > - > > drivers/gpu/drm/i915/intel_display.c| 6 ++--- > > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 3 +-- > > drivers/gpu/drm/omapdrm/omap_drv.c | 3 +-- > > include/drm/drm_crtc.h | 4 ++-- > > 6 files changed, 33 insertions(+), 22 deletions(-) > > > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > index 1ffe9c329c46..4f9606cdf0f2 100644 > > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > @@ -967,12 +967,10 @@ atmel_hlcdc_plane_create_properties(struct drm_device > > *dev) > > if (!props->alpha) > > return ERR_PTR(-ENOMEM); > > > > - dev->mode_config.rotation_property = > > - drm_mode_create_rotation_property(dev, > > - BIT(DRM_ROTATE_0) | > > - BIT(DRM_ROTATE_90) | > > - BIT(DRM_ROTATE_180) | > > - BIT(DRM_ROTATE_270)); > > + drm_mode_create_rotation_property(dev, BIT(DRM_ROTATE_0) | > > + BIT(DRM_ROTATE_90) | > > + BIT(DRM_ROTATE_180) | > > + BIT(DRM_ROTATE_270)); > > if (!dev->mode_config.rotation_property) > > return ERR_PTR(-ENOMEM); > > > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > > index d40bab29747e..822ad6928144 100644 > > --- a/drivers/gpu/drm/drm_crtc.c > > +++ b/drivers/gpu/drm/drm_crtc.c > > @@ -5875,10 +5875,23 @@ void drm_mode_config_cleanup(struct drm_device *dev) > > } > > EXPORT_SYMBOL(drm_mode_config_cleanup); > > > > -struct drm_property *drm_mode_create_rotation_property(struct drm_device > > *dev, > > - unsigned int > > supported_rotations) > > +/** > > + * drm_mode_create_rotation_property - create generic rotation property > > + * @dev: DRM device > > + * @supported_rotations: bitmask of supported rotation modes > > + * > > + * This function initializes generic rotation property and enables support > > + * for it in drm core. Drivers can then attach this property to planes to > > enable > > + * support for different rotation modes. > > + * > > + * Returns: > > + * Zero on success, negative errno on failure. > > + */ > > +int drm_mode_create_rotation_property(struct drm_device *dev, > > + unsigned int supported_rotations) > > { > > - static const struct drm_prop_enum_list props[] = { > > + struct drm_property *prop; > > + static const struct drm_prop_enum_list values[] = { > > { DRM_ROTATE_0, "rotate-0" }, > > { DRM_ROTATE_90, "rotate-90" }, > > { DRM_ROTATE_180, "rotate-180" }, > > @@ -5887,9 +5900,13 @@ struct drm_property > > *drm_mode_create_rotation_property(struct drm_device *dev, > > { DRM_REFLECT_Y, "reflect-y" }, > > }; > > > > - return drm_property_create_bitmask(dev, 0, "rotation", > > - props, ARRAY_SIZE(props), > > - supported_rotations); > > + prop = drm_property_create_bitmask(dev, 0, "rotation", values, > > + ARRAY_SIZE(values), supported_rotations); > > + if (!prop) > > + return -ENOMEM; > > + > > + dev->mode_config.rotation_property = prop; > > + return 0; > > } > > EXPORT_SYMBOL(drm_mode_create_rotation_property); > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c > > b/drivers/gpu/drm/i915/intel_display.c > > index 2f00828ccc6e..1bce8750c308 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -14046,8 +14046,7 @@ void intel_create_rotation_property(struct > > drm_device *dev, struct intel_plane * > > if (INTEL_INFO(dev)->gen >= 9) > > flags |= BIT(DRM_ROTATE_90) |
[PATCH v5 3/5] drm: simplify initialization of rotation property
On Wed, Jan 27, 2016 at 03:44:41PM +0100, Marek Szyprowski wrote: > This patch simplifies initialization of generic rotation property and > aligns the code to match recently introduced function for intializing > generic zpos property. It also adds missing documentation. > > Signed-off-by: Marek Szyprowski I merged patches 3-5 to drm-misc, thanks. For the blending mode I'd like to gather a few more acks from people who have been proposing ideas in the past (would speed up if you cc them next time around). Thanks, Daniel > --- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 10 - > drivers/gpu/drm/drm_crtc.c | 29 > - > drivers/gpu/drm/i915/intel_display.c| 6 ++--- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 3 +-- > drivers/gpu/drm/omapdrm/omap_drv.c | 3 +-- > include/drm/drm_crtc.h | 4 ++-- > 6 files changed, 33 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > index 1ffe9c329c46..4f9606cdf0f2 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > @@ -967,12 +967,10 @@ atmel_hlcdc_plane_create_properties(struct drm_device > *dev) > if (!props->alpha) > return ERR_PTR(-ENOMEM); > > - dev->mode_config.rotation_property = > - drm_mode_create_rotation_property(dev, > - BIT(DRM_ROTATE_0) | > - BIT(DRM_ROTATE_90) | > - BIT(DRM_ROTATE_180) | > - BIT(DRM_ROTATE_270)); > + drm_mode_create_rotation_property(dev, BIT(DRM_ROTATE_0) | > +BIT(DRM_ROTATE_90) | > +BIT(DRM_ROTATE_180) | > +BIT(DRM_ROTATE_270)); > if (!dev->mode_config.rotation_property) > return ERR_PTR(-ENOMEM); > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index d40bab29747e..822ad6928144 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -5875,10 +5875,23 @@ void drm_mode_config_cleanup(struct drm_device *dev) > } > EXPORT_SYMBOL(drm_mode_config_cleanup); > > -struct drm_property *drm_mode_create_rotation_property(struct drm_device > *dev, > -unsigned int > supported_rotations) > +/** > + * drm_mode_create_rotation_property - create generic rotation property > + * @dev: DRM device > + * @supported_rotations: bitmask of supported rotation modes > + * > + * This function initializes generic rotation property and enables support > + * for it in drm core. Drivers can then attach this property to planes to > enable > + * support for different rotation modes. > + * > + * Returns: > + * Zero on success, negative errno on failure. > + */ > +int drm_mode_create_rotation_property(struct drm_device *dev, > + unsigned int supported_rotations) > { > - static const struct drm_prop_enum_list props[] = { > + struct drm_property *prop; > + static const struct drm_prop_enum_list values[] = { > { DRM_ROTATE_0, "rotate-0" }, > { DRM_ROTATE_90, "rotate-90" }, > { DRM_ROTATE_180, "rotate-180" }, > @@ -5887,9 +5900,13 @@ struct drm_property > *drm_mode_create_rotation_property(struct drm_device *dev, > { DRM_REFLECT_Y, "reflect-y" }, > }; > > - return drm_property_create_bitmask(dev, 0, "rotation", > -props, ARRAY_SIZE(props), > -supported_rotations); > + prop = drm_property_create_bitmask(dev, 0, "rotation", values, > + ARRAY_SIZE(values), supported_rotations); > + if (!prop) > + return -ENOMEM; > + > + dev->mode_config.rotation_property = prop; > + return 0; > } > EXPORT_SYMBOL(drm_mode_create_rotation_property); > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index 2f00828ccc6e..1bce8750c308 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -14046,8 +14046,7 @@ void intel_create_rotation_property(struct drm_device > *dev, struct intel_plane * > if (INTEL_INFO(dev)->gen >= 9) > flags |= BIT(DRM_ROTATE_90) | BIT(DRM_ROTATE_270); > > - dev->mode_config.rotation_property = > - drm_mode_create_rotation_property(dev, flags); > + drm_mode_create_rotation_property(dev, flags); > } > if
[PATCH v5 3/5] drm: simplify initialization of rotation property
This patch simplifies initialization of generic rotation property and aligns the code to match recently introduced function for intializing generic zpos property. It also adds missing documentation. Signed-off-by: Marek Szyprowski --- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 10 - drivers/gpu/drm/drm_crtc.c | 29 - drivers/gpu/drm/i915/intel_display.c| 6 ++--- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 3 +-- drivers/gpu/drm/omapdrm/omap_drv.c | 3 +-- include/drm/drm_crtc.h | 4 ++-- 6 files changed, 33 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c index 1ffe9c329c46..4f9606cdf0f2 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c @@ -967,12 +967,10 @@ atmel_hlcdc_plane_create_properties(struct drm_device *dev) if (!props->alpha) return ERR_PTR(-ENOMEM); - dev->mode_config.rotation_property = - drm_mode_create_rotation_property(dev, - BIT(DRM_ROTATE_0) | - BIT(DRM_ROTATE_90) | - BIT(DRM_ROTATE_180) | - BIT(DRM_ROTATE_270)); + drm_mode_create_rotation_property(dev, BIT(DRM_ROTATE_0) | + BIT(DRM_ROTATE_90) | + BIT(DRM_ROTATE_180) | + BIT(DRM_ROTATE_270)); if (!dev->mode_config.rotation_property) return ERR_PTR(-ENOMEM); diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index d40bab29747e..822ad6928144 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -5875,10 +5875,23 @@ void drm_mode_config_cleanup(struct drm_device *dev) } EXPORT_SYMBOL(drm_mode_config_cleanup); -struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev, - unsigned int supported_rotations) +/** + * drm_mode_create_rotation_property - create generic rotation property + * @dev: DRM device + * @supported_rotations: bitmask of supported rotation modes + * + * This function initializes generic rotation property and enables support + * for it in drm core. Drivers can then attach this property to planes to enable + * support for different rotation modes. + * + * Returns: + * Zero on success, negative errno on failure. + */ +int drm_mode_create_rotation_property(struct drm_device *dev, + unsigned int supported_rotations) { - static const struct drm_prop_enum_list props[] = { + struct drm_property *prop; + static const struct drm_prop_enum_list values[] = { { DRM_ROTATE_0, "rotate-0" }, { DRM_ROTATE_90, "rotate-90" }, { DRM_ROTATE_180, "rotate-180" }, @@ -5887,9 +5900,13 @@ struct drm_property *drm_mode_create_rotation_property(struct drm_device *dev, { DRM_REFLECT_Y, "reflect-y" }, }; - return drm_property_create_bitmask(dev, 0, "rotation", - props, ARRAY_SIZE(props), - supported_rotations); + prop = drm_property_create_bitmask(dev, 0, "rotation", values, + ARRAY_SIZE(values), supported_rotations); + if (!prop) + return -ENOMEM; + + dev->mode_config.rotation_property = prop; + return 0; } EXPORT_SYMBOL(drm_mode_create_rotation_property); diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 2f00828ccc6e..1bce8750c308 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -14046,8 +14046,7 @@ void intel_create_rotation_property(struct drm_device *dev, struct intel_plane * if (INTEL_INFO(dev)->gen >= 9) flags |= BIT(DRM_ROTATE_90) | BIT(DRM_ROTATE_270); - dev->mode_config.rotation_property = - drm_mode_create_rotation_property(dev, flags); + drm_mode_create_rotation_property(dev, flags); } if (dev->mode_config.rotation_property) drm_object_attach_property(>base.base, @@ -14183,8 +14182,7 @@ static struct drm_plane *intel_cursor_plane_create(struct drm_device *dev, if (INTEL_INFO(dev)->gen >= 4) { if (!dev->mode_config.rotation_property) - dev->mode_config.rotation_property = - drm_mode_create_rotation_property(dev, +