All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/color: Document CTM eqations
@ 2017-01-31 10:48 ` Brian Starkey
  0 siblings, 0 replies; 32+ messages in thread
From: Brian Starkey @ 2017-01-31 10:48 UTC (permalink / raw)
  To: dri-devel
  Cc: linux-kernel, Jani Nikula, Sean Paul, Ville Syrjälä,
	Lionel Landwerlin, Daniel Vetter

Explicitly state the expected CTM equations in the kerneldoc for the CTM
property, and the form of the matrix on struct drm_color_ctm.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Brian Starkey <brian.starkey@arm.com>
---
 drivers/gpu/drm/drm_color_mgmt.c |   13 +++++++++++++
 include/uapi/drm/drm_mode.h      |    8 +++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_color_mgmt.c b/drivers/gpu/drm/drm_color_mgmt.c
index 789b4c65cd69..7573ca4b6ea6 100644
--- a/drivers/gpu/drm/drm_color_mgmt.c
+++ b/drivers/gpu/drm/drm_color_mgmt.c
@@ -62,6 +62,19 @@
  *	unit/pass-thru matrix should be used. This is generally the driver
  *	boot-up state too.
  *
+ *	The output vector is related to the input vector as below:
+ *
+ *	| ``out[0] = matrix[0] * in[0] + matrix[1] * in[1] + matrix[2] * in[2];``
+ *	| ``out[1] = matrix[3] * in[0] + matrix[4] * in[1] + matrix[5] * in[2];``
+ *	| ``out[2] = matrix[6] * in[0] + matrix[7] * in[1] + matrix[8] * in[2];``
+ *
+ *	The component order in the input/output vectors is assumed to be
+ *	{ R, G, B }.
+ *
+ *	The color-space of the input vector must not be confused with the
+ *	color-space implied by a framebuffer pixel format, which may be the same
+ *	or different.
+ *
  * “GAMMA_LUT”:
  *	Blob property to set the gamma lookup table (LUT) mapping pixel data
  *	after the transformation matrix to data sent to the connector. The
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index ce7efe2e8a5e..3401637caf8e 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -525,7 +525,13 @@ struct drm_mode_crtc_lut {
 };
 
 struct drm_color_ctm {
-	/* Conversion matrix in S31.32 format. */
+	/*
+	 * Conversion matrix in S31.32 format, in row-major form:
+	 *
+	 * | matrix[0] matrix[1] matrix[2] |
+	 * | matrix[3] matrix[4] matrix[5] |
+	 * | matrix[6] matrix[7] matrix[8] |
+	 */
 	__s64 matrix[9];
 };
 
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2017-02-26 19:53 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-31 10:48 [PATCH v2] drm/color: Document CTM eqations Brian Starkey
2017-01-31 10:48 ` Brian Starkey
2017-01-31 11:30 ` Jani Nikula
2017-01-31 11:30   ` Jani Nikula
2017-01-31 12:02   ` Brian Starkey
2017-01-31 12:02     ` Brian Starkey
2017-01-31 12:37     ` Jani Nikula
2017-01-31 12:37       ` Jani Nikula
2017-01-31 15:18 ` Ville Syrjälä
2017-01-31 15:18   ` Ville Syrjälä
2017-01-31 15:39   ` Brian Starkey
2017-01-31 15:39     ` Brian Starkey
2017-01-31 17:22     ` Ville Syrjälä
2017-01-31 17:22       ` Ville Syrjälä
2017-01-31 17:46       ` Daniel Vetter
2017-01-31 17:46         ` Daniel Vetter
2017-02-15 11:39         ` Ville Syrjälä
2017-02-15 11:39           ` Ville Syrjälä
2017-02-15 11:56           ` Daniel Stone
2017-02-15 11:56             ` Daniel Stone
2017-02-17 13:54             ` Brian Starkey
2017-02-17 13:54               ` Brian Starkey
2017-02-17 14:42               ` Lionel Landwerlin
2017-02-17 14:42                 ` Lionel Landwerlin
2017-02-17 14:56                 ` Ville Syrjälä
2017-02-17 15:05                   ` Lionel Landwerlin
2017-02-17 15:05                     ` Lionel Landwerlin
2017-02-17 15:16                     ` Ville Syrjälä
2017-02-17 15:16                       ` Ville Syrjälä
2017-02-17 15:15                   ` Daniel Stone
2017-02-17 15:15                     ` Daniel Stone
2017-02-26 19:45               ` Daniel Vetter

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.