drm/doc: Interlink color manager docs better
Motivated by a request from Eric. v2: Take in suggestions from Lionel Cc: Eric Anholt <eric@anholt.net> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170412152006.12233-1-daniel.vetter@ffwll.ch
This commit is contained in:
parent
ccb92b945e
commit
2e38178e23
|
@ -3517,7 +3517,8 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_destroy_state);
|
||||||
*
|
*
|
||||||
* Implements support for legacy gamma correction table for drivers
|
* Implements support for legacy gamma correction table for drivers
|
||||||
* that support color management through the DEGAMMA_LUT/GAMMA_LUT
|
* that support color management through the DEGAMMA_LUT/GAMMA_LUT
|
||||||
* properties.
|
* properties. See drm_crtc_enable_color_mgmt() and the containing chapter for
|
||||||
|
* how the atomic color management and gamma tables work.
|
||||||
*/
|
*/
|
||||||
int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
|
int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
|
||||||
u16 *red, u16 *green, u16 *blue,
|
u16 *red, u16 *green, u16 *blue,
|
||||||
|
|
|
@ -43,7 +43,8 @@
|
||||||
*
|
*
|
||||||
* Setting this to NULL (blob property value set to 0) means a
|
* Setting this to NULL (blob property value set to 0) means a
|
||||||
* linear/pass-thru gamma table should be used. This is generally the
|
* linear/pass-thru gamma table should be used. This is generally the
|
||||||
* driver boot-up state too.
|
* driver boot-up state too. Drivers can access this blob through
|
||||||
|
* &drm_crtc_state.degamma_lut.
|
||||||
*
|
*
|
||||||
* “DEGAMMA_LUT_SIZE”:
|
* “DEGAMMA_LUT_SIZE”:
|
||||||
* Unsinged range property to give the size of the lookup table to be set
|
* Unsinged range property to give the size of the lookup table to be set
|
||||||
|
@ -60,7 +61,8 @@
|
||||||
*
|
*
|
||||||
* Setting this to NULL (blob property value set to 0) means a
|
* Setting this to NULL (blob property value set to 0) means a
|
||||||
* unit/pass-thru matrix should be used. This is generally the driver
|
* unit/pass-thru matrix should be used. This is generally the driver
|
||||||
* boot-up state too.
|
* boot-up state too. Drivers can access the blob for the color conversion
|
||||||
|
* matrix through &drm_crtc_state.ctm.
|
||||||
*
|
*
|
||||||
* “GAMMA_LUT”:
|
* “GAMMA_LUT”:
|
||||||
* Blob property to set the gamma lookup table (LUT) mapping pixel data
|
* Blob property to set the gamma lookup table (LUT) mapping pixel data
|
||||||
|
@ -72,7 +74,8 @@
|
||||||
*
|
*
|
||||||
* Setting this to NULL (blob property value set to 0) means a
|
* Setting this to NULL (blob property value set to 0) means a
|
||||||
* linear/pass-thru gamma table should be used. This is generally the
|
* linear/pass-thru gamma table should be used. This is generally the
|
||||||
* driver boot-up state too.
|
* driver boot-up state too. Drivers can access this blob through
|
||||||
|
* &drm_crtc_state.gamma_lut.
|
||||||
*
|
*
|
||||||
* “GAMMA_LUT_SIZE”:
|
* “GAMMA_LUT_SIZE”:
|
||||||
* Unsigned range property to give the size of the lookup table to be set
|
* Unsigned range property to give the size of the lookup table to be set
|
||||||
|
|
|
@ -93,11 +93,6 @@ struct drm_plane_helper_funcs;
|
||||||
* @adjusted_mode: for use by helpers and drivers to compute adjusted mode timings
|
* @adjusted_mode: for use by helpers and drivers to compute adjusted mode timings
|
||||||
* @mode: current mode timings
|
* @mode: current mode timings
|
||||||
* @mode_blob: &drm_property_blob for @mode
|
* @mode_blob: &drm_property_blob for @mode
|
||||||
* @degamma_lut: Lookup table for converting framebuffer pixel data
|
|
||||||
* before apply the conversion matrix
|
|
||||||
* @ctm: Transformation matrix
|
|
||||||
* @gamma_lut: Lookup table for converting pixel data after the
|
|
||||||
* conversion matrix
|
|
||||||
* @state: backpointer to global drm_atomic_state
|
* @state: backpointer to global drm_atomic_state
|
||||||
*
|
*
|
||||||
* Note that the distinction between @enable and @active is rather subtile:
|
* Note that the distinction between @enable and @active is rather subtile:
|
||||||
|
@ -144,9 +139,30 @@ struct drm_crtc_state {
|
||||||
/* blob property to expose current mode to atomic userspace */
|
/* blob property to expose current mode to atomic userspace */
|
||||||
struct drm_property_blob *mode_blob;
|
struct drm_property_blob *mode_blob;
|
||||||
|
|
||||||
/* blob property to expose color management to userspace */
|
/**
|
||||||
|
* @degamma_lut:
|
||||||
|
*
|
||||||
|
* Lookup table for converting framebuffer pixel data before apply the
|
||||||
|
* color conversion matrix @ctm. See drm_crtc_enable_color_mgmt(). The
|
||||||
|
* blob (if not NULL) is an array of &struct drm_color_lut.
|
||||||
|
*/
|
||||||
struct drm_property_blob *degamma_lut;
|
struct drm_property_blob *degamma_lut;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ctm:
|
||||||
|
*
|
||||||
|
* Color transformation matrix. See drm_crtc_enable_color_mgmt(). The
|
||||||
|
* blob (if not NULL) is a &struct drm_color_ctm.
|
||||||
|
*/
|
||||||
struct drm_property_blob *ctm;
|
struct drm_property_blob *ctm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @gamma_lut:
|
||||||
|
*
|
||||||
|
* Lookup table for converting pixel data after the color conversion
|
||||||
|
* matrix @ctm. See drm_crtc_enable_color_mgmt(). The blob (if not
|
||||||
|
* NULL) is an array of &struct drm_color_lut.
|
||||||
|
*/
|
||||||
struct drm_property_blob *gamma_lut;
|
struct drm_property_blob *gamma_lut;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -313,6 +329,12 @@ struct drm_crtc_funcs {
|
||||||
*
|
*
|
||||||
* This callback is optional.
|
* This callback is optional.
|
||||||
*
|
*
|
||||||
|
* Atomic drivers who want to support gamma tables should implement the
|
||||||
|
* atomic color management support, enabled by calling
|
||||||
|
* drm_crtc_enable_color_mgmt(), which then supports the legacy gamma
|
||||||
|
* interface through the drm_atomic_helper_legacy_gamma_set()
|
||||||
|
* compatibility implementation.
|
||||||
|
*
|
||||||
* NOTE:
|
* NOTE:
|
||||||
*
|
*
|
||||||
* Drivers that support gamma tables and also fbdev emulation through
|
* Drivers that support gamma tables and also fbdev emulation through
|
||||||
|
|
Loading…
Reference in New Issue