5488dc16fd
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 |
||
---|---|---|
.. | ||
bridge | ||
i2c | ||
ttm | ||
ati_pcigart.h | ||
drm_agpsupport.h | ||
drm_atomic_helper.h | ||
drm_atomic.h | ||
drm_cache.h | ||
drm_core.h | ||
drm_crtc_helper.h | ||
drm_crtc.h | ||
drm_displayid.h | ||
drm_dp_aux_dev.h | ||
drm_dp_helper.h | ||
drm_dp_mst_helper.h | ||
drm_edid.h | ||
drm_encoder_slave.h | ||
drm_fb_cma_helper.h | ||
drm_fb_helper.h | ||
drm_fixed.h | ||
drm_flip_work.h | ||
drm_gem_cma_helper.h | ||
drm_gem.h | ||
drm_global.h | ||
drm_hashtab.h | ||
drm_legacy.h | ||
drm_mem_util.h | ||
drm_mipi_dsi.h | ||
drm_mm.h | ||
drm_modes.h | ||
drm_modeset_helper_vtables.h | ||
drm_modeset_lock.h | ||
drm_of.h | ||
drm_os_linux.h | ||
drm_panel.h | ||
drm_pciids.h | ||
drm_plane_helper.h | ||
drm_rect.h | ||
drm_sysfs.h | ||
drm_vma_manager.h | ||
drmP.h | ||
exynos_drm.h | ||
gma_drm.h | ||
i915_component.h | ||
i915_drm.h | ||
i915_pciids.h | ||
intel-gtt.h |