linux/include/uapi/drm
Lionel Landwerlin 5488dc16fd drm: introduce pipe color correction properties
Patch based on a previous series by Shashank Sharma.

This introduces optional properties to enable color correction at the
pipe level. It relies on 3 transformations applied to every pixels
displayed. First a lookup into a degamma table, then a multiplication
of the rgb components by a 3x3 matrix and finally another lookup into
a gamma table.

The following properties can be added to a pipe :
  - DEGAMMA_LUT : blob containing degamma LUT
  - DEGAMMA_LUT_SIZE : number of elements in DEGAMMA_LUT
  - CTM : transformation matrix applied after the degamma LUT
  - GAMMA_LUT : blob containing gamma LUT
  - GAMMA_LUT_SIZE : number of elements in GAMMA_LUT

DEGAMMA_LUT_SIZE and GAMMA_LUT_SIZE are read only properties, set by
the driver to tell userspace applications what sizes should be the
lookup tables in DEGAMMA_LUT and GAMMA_LUT.

A helper is also provided so legacy gamma correction is redirected
through these new properties.

v2: Register LUT size properties as range

v3: Fix round in drm_color_lut_get_value() helper
    More docs on how degamma/gamma properties are used

v4: Update contributors

v5: Rename CTM_MATRIX property to CTM (Doh!)
    Add legacy gamma_set atomic helper
    Describe CTM/LUT acronyms in the kernel doc

v6: Fix missing blob unref in drm_atomic_helper_crtc_reset

Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Signed-off-by: Kumar, Kiran S <kiran.s.kumar@intel.com>
Signed-off-by: Kausal Malladi <kausalmalladi@gmail.com>
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Acked-by: Rob Bradford <robert.bradford@intel.com>
[danvet: CrOS maintainers are also happy with the userspacde side:
https://codereview.chromium.org/1182063002/ ]
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1456506302-640-4-git-send-email-lionel.g.landwerlin@intel.com
2016-03-08 13:57:32 +01:00
..
amdgpu_drm.h include/uapi/drm/amdgpu_drm.h: use __u32 and __u64 from <linux/types.h> 2015-12-10 12:33:23 +01:00
armada_drm.h drm: include drm.h in armada_drm.h 2015-12-10 12:33:23 +01:00
drm_fourcc.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-01-17 13:40:25 -08:00
drm_mode.h drm: introduce pipe color correction properties 2016-03-08 13:57:32 +01:00
drm_sarea.h drm: fix inclusion of drm.h in drm_sarea.h 2015-12-10 12:33:23 +01:00
drm.h drm: prime: Honour O_RDWR during prime-handle-to-fd 2016-02-09 09:25:12 +01:00
etnaviv_drm.h drm/etnaviv: add further minor features and varyings count 2016-01-26 18:53:58 +01:00
exynos_drm.h drm: fix inclusion of drm.h in exynos_sarea.h 2015-12-10 12:33:23 +01:00
i810_drm.h drm: fix inclusion of drm.h in i810_drm.h 2015-12-10 12:33:23 +01:00
i915_drm.h drm/i915: Seal busy-ioctl uABI and prevent leaking of internal ids 2016-01-21 11:00:35 +00:00
Kbuild Merge tag 'drm-vc4-next-2015-12-11' of http://github.com/anholt/linux into drm-next 2015-12-15 10:43:27 +10:00
mga_drm.h drm: fix inclusion of drm.h in mga_drm.h 2015-12-10 12:33:23 +01:00
msm_drm.h drm/msm: add max-freq gpu param to uapi 2016-02-11 06:25:54 +10:00
nouveau_drm.h nouveau_drm.h: use __u32 and __u64 from linux/types.h 2015-12-10 12:33:23 +01:00
omap_drm.h drm/omap: remove unused plugin defines 2015-12-31 11:25:47 +02:00
qxl_drm.h drm: fix inclusion of drm.h in qxl_drm.h 2015-12-10 12:33:23 +01:00
r128_drm.h drm: fix inclusion of drm.h in r128_drm.h 2015-12-10 12:33:23 +01:00
radeon_drm.h radeon_drm.h: use __u32 and __u64 from linux/types.h 2015-12-10 12:33:23 +01:00
savage_drm.h drm: fix inclusion of drm.h in savage_drm.h 2015-12-10 12:33:23 +01:00
sis_drm.h include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h 2015-10-16 11:27:46 +10:00
tegra_drm.h drm: fix inclusion of drm.h in tegra_drm.h 2015-12-10 12:33:23 +01:00
vc4_drm.h drm/vc4: Add an interface for capturing the GPU state after a hang. 2015-12-07 20:49:49 -08:00
via_drm.h drm: fix inclusion of drm.h in via_drm.h 2015-12-10 12:33:23 +01:00
virtgpu_drm.h drm: fix inclusion of drm.h in virtgpu_drm.h 2015-12-10 12:33:23 +01:00
vmwgfx_drm.h drm: fix inclusion of drm.h in vmwgfx_drm.h 2015-12-10 12:33:23 +01:00