[PATCH v6 1/4] drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt()

2016-06-07 Thread Daniel Vetter
On Tue, Jun 07, 2016 at 07:54:35PM +0300, Tomi Valkeinen wrote:
> On 07/06/16 15:09, Jyri Sarha wrote:
> > Add drm_crtc_enable_color_mgmt(), remove drm_helper_crtc_enable_color_mgmt()
> > and update drm/i915-driver (the only user of the old function).
> > 
> > The new function is more flexible. It allows driver to enable only the
> > features it has without forcing to enable all three color management
> > properties: degamma lut, csc matrix (ctm), and gamma lut.
> > 
> > Suggested-by: Daniel Vetter 
> > Signed-off-by: Jyri Sarha 
> > ---
> >  drivers/gpu/drm/drm_crtc.c | 45 
> > ++
> >  drivers/gpu/drm/drm_crtc_helper.c  | 33 
> >  drivers/gpu/drm/i915/intel_color.c |  3 ++-
> >  include/drm/drm_crtc.h |  5 -
> >  include/drm/drm_crtc_helper.h  |  3 ---
> >  5 files changed, 51 insertions(+), 38 deletions(-)
> 
> Looks good to me. I can queue this up with the omapdrm patches in this
> series, if no one complains.

btw would be good if you send a pull for omapdrm in 1-2 weeks latest once
this is merged, to avoid unecessary conflicts and other hilarity.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


[PATCH v6 1/4] drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt()

2016-06-07 Thread Tomi Valkeinen
On 07/06/16 15:09, Jyri Sarha wrote:
> Add drm_crtc_enable_color_mgmt(), remove drm_helper_crtc_enable_color_mgmt()
> and update drm/i915-driver (the only user of the old function).
> 
> The new function is more flexible. It allows driver to enable only the
> features it has without forcing to enable all three color management
> properties: degamma lut, csc matrix (ctm), and gamma lut.
> 
> Suggested-by: Daniel Vetter 
> Signed-off-by: Jyri Sarha 
> ---
>  drivers/gpu/drm/drm_crtc.c | 45 
> ++
>  drivers/gpu/drm/drm_crtc_helper.c  | 33 
>  drivers/gpu/drm/i915/intel_color.c |  3 ++-
>  include/drm/drm_crtc.h |  5 -
>  include/drm/drm_crtc_helper.h  |  3 ---
>  5 files changed, 51 insertions(+), 38 deletions(-)

Looks good to me. I can queue this up with the omapdrm patches in this
series, if no one complains.

 Tomi

-- next part --
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: 



[PATCH v6 1/4] drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt()

2016-06-07 Thread Jyri Sarha
Add drm_crtc_enable_color_mgmt(), remove drm_helper_crtc_enable_color_mgmt()
and update drm/i915-driver (the only user of the old function).

The new function is more flexible. It allows driver to enable only the
features it has without forcing to enable all three color management
properties: degamma lut, csc matrix (ctm), and gamma lut.

Suggested-by: Daniel Vetter 
Signed-off-by: Jyri Sarha 
---
 drivers/gpu/drm/drm_crtc.c | 45 ++
 drivers/gpu/drm/drm_crtc_helper.c  | 33 
 drivers/gpu/drm/i915/intel_color.c |  3 ++-
 include/drm/drm_crtc.h |  5 -
 include/drm/drm_crtc_helper.h  |  3 ---
 5 files changed, 51 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 0e3cc66..b25c759 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -6064,3 +6064,48 @@ struct drm_tile_group *drm_mode_create_tile_group(struct 
drm_device *dev,
return tg;
 }
 EXPORT_SYMBOL(drm_mode_create_tile_group);
+
+/**
+ * drm_crtc_enable_color_mgmt - enable color management properties
+ * @crtc: DRM CRTC
+ * @degamma_lut_size: the size of the degamma lut (before CSC)
+ * @has_ctm: whether to attach ctm_property for CSC matrix
+ * @gamma_lut_size: the size of the gamma lut (after CSC)
+ *
+ * This function lets the driver enable the color correction
+ * properties on a CRTC. This includes 3 degamma, csc and gamma
+ * properties that userspace can set and 2 size properties to inform
+ * the userspace of the lut sizes. Each of the properties are
+ * optional. The gamma and degamma properties are only attached if
+ * their size is not 0 and ctm_property is only attached if has_ctm is
+ * true.
+ */
+void drm_crtc_enable_color_mgmt(struct drm_crtc *crtc,
+   uint degamma_lut_size,
+   bool has_ctm,
+   uint gamma_lut_size)
+{
+   struct drm_device *dev = crtc->dev;
+   struct drm_mode_config *config = &dev->mode_config;
+
+   if (degamma_lut_size) {
+   drm_object_attach_property(&crtc->base,
+  config->degamma_lut_property, 0);
+   drm_object_attach_property(&crtc->base,
+  config->degamma_lut_size_property,
+  degamma_lut_size);
+   }
+
+   if (has_ctm)
+   drm_object_attach_property(&crtc->base,
+  config->ctm_property, 0);
+
+   if (gamma_lut_size) {
+   drm_object_attach_property(&crtc->base,
+  config->gamma_lut_property, 0);
+   drm_object_attach_property(&crtc->base,
+  config->gamma_lut_size_property,
+  gamma_lut_size);
+   }
+}
+EXPORT_SYMBOL(drm_crtc_enable_color_mgmt);
diff --git a/drivers/gpu/drm/drm_crtc_helper.c 
b/drivers/gpu/drm/drm_crtc_helper.c
index a6e4243..bf10d70 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -1121,36 +1121,3 @@ int drm_helper_crtc_mode_set_base(struct drm_crtc *crtc, 
int x, int y,
return drm_plane_helper_commit(plane, plane_state, old_fb);
 }
 EXPORT_SYMBOL(drm_helper_crtc_mode_set_base);
-
-/**
- * drm_helper_crtc_enable_color_mgmt - enable color management properties
- * @crtc: DRM CRTC
- * @degamma_lut_size: the size of the degamma lut (before CSC)
- * @gamma_lut_size: the size of the gamma lut (after CSC)
- *
- * This function lets the driver enable the color correction properties on a
- * CRTC. This includes 3 degamma, csc and gamma properties that userspace can
- * set and 2 size properties to inform the userspace of the lut sizes.
- */
-void drm_helper_crtc_enable_color_mgmt(struct drm_crtc *crtc,
-  int degamma_lut_size,
-  int gamma_lut_size)
-{
-   struct drm_device *dev = crtc->dev;
-   struct drm_mode_config *config = &dev->mode_config;
-
-   drm_object_attach_property(&crtc->base,
-  config->degamma_lut_property, 0);
-   drm_object_attach_property(&crtc->base,
-  config->ctm_property, 0);
-   drm_object_attach_property(&crtc->base,
-  config->gamma_lut_property, 0);
-
-   drm_object_attach_property(&crtc->base,
-  config->degamma_lut_size_property,
-  degamma_lut_size);
-   drm_object_attach_property(&crtc->base,
-  config->gamma_lut_size_property,
-  gamma_lut_size);
-}
-EXPORT_SYMBOL(drm_helper_crtc_enable_color_mgmt);
diff --git a/drivers/gpu/drm/i915/intel_color.c 
b/drivers/gpu/drm/i915/intel_color