[PATCH 00/11] drm/i915: adding state checker for gamma lut values

Swati Sharma
2019-05-04T17:15:51Z

Thanks to Jani N, Matt and Ville for the review comments.

In this patch series, added state checker to validate gamma and degamma lut values.
This reads hardware state, and compares the originally requested state to the state read
from hardware.

v1: -Implementation done for legacy platforms (removed all the placeholders) (Jani)
-Added inverse function of drm_color_lut_extract to convert hardware
read values back to user values (code written by Jani)
-Renamed get_config() to color_config() (Jani)
-Placed all platform specific shifts and masks in i915_reg.h (Jani)
-Renamed i9xx_get_config to i9xx_color_config and all related
functions (Jani)
-Removed debug logs from compare function (Jani)
-Renamed intel_compare_blob to intel_compare_lut and added platform specific
bit precision of the readout into the function (Jani)
-Renamed macro PIPE_CONF_CHECK_BLOB to PIPE_CONF_CHECK_COLOR_LUT (Jani)
-Added check if blobs can be NULL (Jani)
-Added function in intel_color.c that returns the bit precision (Jani),
didn't add in device info since its gonna die soon (Ville)

v2: -Moved intel_compare_lut() from intel_display.c to intel_color.c (Jani)
-Changed color_config() func names to get_color_config() and same
for gamma func too (Jani)
-Removed blank line in i915_reg.h and aligned MASK with their
register name (Jani)
-Mask definition code indented and defined using REG_GENMASK() and
used using REG_FIELD_GET() (Jani)
-Made bit_precision func inline (Jani/Matt)
-Assigned bit_precision according to GAMMA_MODE (Matt/Ville)
-Changed IS_ERR(blob) condition to (!blob) (Jani)
-Rearranged blob check and lut_size conditions (Jani)
-Used inline function for the comparison (Jani)
-Separated the get config part from the state checker part to
another patch (Jani)
-Retained "internal" i9xx_internal_gamma_config for consistency
(Matt)
-Removed crtc_state_is_legacy_gamma check and replaced with
GAMMA_MODE (Matt)
-Created whole platform specific patch series as submitted by Ville for
clean up intel_color_check()
-Rebased on top of Ville's changes

v3: -Rebase

v4: -Renamed intel_get_color_config to intel_color_get_config (Jani)
-Wrapped get_color_config() (Jani)
-Added the user early on such that support for get_color_config()
can be added platform by platform incrementally (Jani)
-Few changes in get_config_func (Jani)
-Renamed intel_compare_color_lut() to intel_color_lut_equal() (Jani)
-Corrected smatch warn "variable dereferenced before check" (Dan Carpenter)

v5: -Added degamma validation (Ville)
-Few other changes as suggested by Ville and Jani

Swati Sharma (11):
drm/i915: Introduce vfunc read_luts() to create hw lut
drm/i915: Enable intel_color_read_luts()
drm/i915: Extract i9xx_read_luts()
drm/i915: Extract chv_read_luts()
drm/i915: Extract i965_read_luts()
drm/i915: Extract icl_read_luts()
drm/i915: Extract glk_read_luts()
drm/i915: Extract bdw_read_luts()
drm/i915: Extract ivb_read_luts()
drm/i915: Extract ilk_read_luts()
drm/i915: Add intel_color_lut_equal() to compare hw and sw
gamma/degamma lut values

drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/i915_reg.h | 19 ++
drivers/gpu/drm/i915/intel_color.c | 460 ++++++++++++++++++++++++++++++++++-
drivers/gpu/drm/i915/intel_color.h | 7 +
drivers/gpu/drm/i915/intel_display.c | 16 ++
5 files changed, 498 insertions(+), 5 deletions(-)