Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From 658d495aedf4129256cb201cd9308f0f0cb5bc2d Mon Sep 17 00:00:00 2001
- From: Kausal Malladi <Kausal.Malladi@intel.com>
- Date: Wed, 1 Jul 2015 20:45:23 +0530
- Subject: [PATCH 00/12] Color Manager Implementation
- This patch set adds Color Manager implementation in DRM layer. Color Manager is
- an extension in DRM framework to support color correction/enhancement. Various
- Hardware platforms can support several color correction capabilities.
- Color Manager provides abstraction of these capabilities and allows a
- user space UI agent to correct/enhance the display using the DRM property interface.
- How is this going to work?
- ==========================
- 1. This patch series adds a few new properties in DRM framework. These properties are:
- a. color_capabilities property (type blob)
- b. Color Transformation Matrix property for corrections like CSC (called CTM, type blob)
- c. Palette correction properties for corrections like gamma fixup (called palette_correction, type blob)
- 2. Also, this patch series adds few structures to indicate specifications of a property like size, no_of_samples for correction etc.
- 3. These properties are present in mode_config.
- 4. When the platform's display driver loads, it fills up the values of color_capabilities property using the standard structures (added in step 2).
- For example, Intel's I915 driver adds following color correction capabilities:
- a. gamma correction capability as palette correction property, with 257 correction coefficients and a max/min value
- b. csc correction capability as CTM correction property, with 3x3 transformation matrix values and max/min values
- 5. Now when userspace comes up, it queries the platform's color capabilities by doing a get_property() on color_capabilities DRM property
- 6. Reading the blob, the userspace understands the color capabilities of the platform.
- For example, userspace will understand it can support:
- a. palette_correction with 257 coefficients
- b. CSC correction with 3x3 = 9 values
- 7. To set color correction values, userspace:
- a. creates a blob using the create_blob_ioctl in standard palette_correction structure format, with the correction values
- b. calls the set_property_ioctl with the blob_id as value for the property
- 8. Driver refers to the blob, gets the correction values and applies the correction in HW.
- 9. To get currently applied color correction values, userspace:
- a. calls a get_property_ioctl on that color property
- b. gets the blob_id for the currently applied correction from DRM infrastructure
- c. gets the blob using get_blob_ioctl and hence the currently applied values
- That's all! :)
- About the patch series:
- =======================
- The first patch adds fix for ensuring atomic commit for CRTC properties.
- The subsequent patches add code for the framework, which will be common across all the Hardware platforms.
- 1. Create Color Management DRM properties
- 2. Attach color properties to CRTC
- 3. Add structures at DRM level for color management
- The generic properties supported in this patch set are
- 1. Color Transformation Matrix (CTM) for generic usecases like color space conversion and Gamut Mapping
- 2. Palette correction before CTM for specific usecases like DeGamma color correction
- 3. Palette correction after CTM for specific usecases like Gamma color correction
- In the subsequent patches, we are adding support for Gamma, DeGamma and CSC color properties for one of the Intel platforms, CHV, as an example.
- Kausal Malladi (11):
- drm: Create Color Management DRM properties
- drm/i915: Attach color properties to CRTC
- drm: Add structures for querying color capabilities
- drm/i915: Load color capabilities for CHV CRTC
- drm/i915: Add atomic set property interface for CRTC
- drm: Add structures to set/get a palette color property
- drm: Export drm_property_replace_global_blob function
- drm/i915: Add pipe level Gamma correction for CHV/BSW
- drm/i915: Add DeGamma correction for CHV/BSW
- drm: Add structure for set/get a CTM color property
- drm/i915: Add CSC correction for CHV/BSW
- Matt Roper (1):
- drm/i915: Atomic commit path fix for CRTC properties
- drivers/gpu/drm/drm_crtc.c | 26 +-
- drivers/gpu/drm/i915/Makefile | 3 +-
- drivers/gpu/drm/i915/i915_reg.h | 18 +
- drivers/gpu/drm/i915/intel_atomic.c | 30 ++
- drivers/gpu/drm/i915/intel_color_manager.c | 530 +++++++++++++++++++++++++++++
- drivers/gpu/drm/i915/intel_color_manager.h | 74 ++++
- drivers/gpu/drm/i915/intel_display.c | 5 +
- drivers/gpu/drm/i915/intel_drv.h | 14 +
- include/drm/drm_crtc.h | 12 +
- include/uapi/drm/drm.h | 51 +++
- 10 files changed, 761 insertions(+), 2 deletions(-)
- create mode 100644 drivers/gpu/drm/i915/intel_color_manager.c
- create mode 100644 drivers/gpu/drm/i915/intel_color_manager.h
- --
- 2.4.5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement