drm/uapi: The ctm matrix uses sign-magnitude representation
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 22 Feb 2018 21:42:29 +0000 (23:42 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 28 Feb 2018 11:27:37 +0000 (13:27 +0200)
The documentation for the ctm matrix suggests a two's complement
format, but at least the i915 implementation is using sign-magnitude
instead. And looks like malidp is doing the same. Change the docs
to match the current implementation, and change the type from __s64
to __u64 to drive the point home.

Cc: dri-devel@lists.freedesktop.org
Cc: Mihail Atanassov <mihail.atanassov@arm.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Mali DP Maintainers <malidp@foss.arm.com>
Cc: Johnson Lin <johnson.lin@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Shashank Sharma <shashank.sharma@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180222214232.6064-1-ville.syrjala@linux.intel.com
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
include/uapi/drm/drm_mode.h

index 2c57579..b5d7d9e 100644 (file)
@@ -598,8 +598,11 @@ struct drm_mode_crtc_lut {
 };
 
 struct drm_color_ctm {
-       /* Conversion matrix in S31.32 format. */
-       __s64 matrix[9];
+       /*
+        * Conversion matrix in S31.32 sign-magnitude
+        * (not two's complement!) format.
+        */
+       __u64 matrix[9];
 };
 
 struct drm_color_lut {