[RFC 00/33] Add Support for Plane Color Pipeline

2023-08-29 Thread Uma Shankar
far. Let's work together to improve the current proposal and get this thing implemented in upstream linux. All the feedback and suggestions to enhance the design are welcome. Regards, Uma Shankar Chaitanya Kumar Borah Cc: Ville Syrjala Cc: Pekka Paalanen Cc: Simon Ser Cc: Harry Wentland Cc

[RFC 01/33] drm/doc/rfc: Add RFC document for proposed Plane Color Pipeline

2023-08-29 Thread Uma Shankar
Add the documentation for the new proposed Plane Color Pipeline. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- .../gpu/rfc/plane_color_pipeline.rst | 394 ++ 1 file changed, 394 insertions(+) create mode

[RFC 02/33] drm: Add color operation structure

2023-08-29 Thread Uma Shankar
re-arranged, substracted or added to create distinct color pipelines to accurately describe the Hardware blocks present in the display engine. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- include/uapi/drm/drm_mode.h | 72

[RFC 03/33] drm: Add plane get color pipeline property

2023-08-29 Thread Uma Shankar
and attach the property to a plane. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_color_mgmt.c | 46 include/drm/drm_plane.h | 10 +++ 2 files changed, 56 insertions(+) diff --git a/

[RFC 04/33] drm: Add helper to add color pipeline

2023-08-29 Thread Uma Shankar
pipelines to accurately describe the Hardware blocks present in the display engine. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_color_mgmt.c | 42 include/drm/drm_plane.h | 3 +++ 2

[RFC 05/33] drm: Add structures for setting color pipeline

2023-08-29 Thread Uma Shankar
program the respective color hardware blocks of the pipeline. It also contains the pipeline number to be set. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- include/uapi/drm/drm_mode.h | 30 ++ 1 file changed, 30

[RFC 06/33] drm: Add set colorpipeline property

2023-08-29 Thread Uma Shankar
eline. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/drm_atomic_uapi.c | 12 + drivers/gpu/drm/drm_color_mgmt.c | 42 +++ include/drm/drm_plane.h | 22 3 fil

[RFC 07/33] drm: Add Enhanced Gamma LUT precision structure

2023-08-29 Thread Uma Shankar
Signed-off-by: Uma Shankar --- include/uapi/drm/drm_mode.h | 17 + 1 file changed, 17 insertions(+) diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index a21825ee93e2..1cd656b0e994 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h

[RFC 08/33] drm: Add color lut range structure

2023-08-29 Thread Uma Shankar
Add color lut range structure which is to be used to advertize the capabilities of pre-csc/post-csc color operation blocks. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- include/uapi/drm/drm_mode.h | 77

[RFC 09/33] drm: Add color information to plane state

2023-08-29 Thread Uma Shankar
-off-by: Uma Shankar --- include/drm/drm_plane.h | 41 + 1 file changed, 41 insertions(+) diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index fcd589cb38f2..601b01e47a93 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h

[RFC 10/33] drm: Manage color blob states

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah This patch manages the references for color blobs. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_atomic_state_helper.c | 18 ++ 1 file changed, 18 insertions(+) diff --git a

[RFC 12/33] drm: Reset pipeline when user sends NULL blob

2023-08-29 Thread Uma Shankar
id's as NULL. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_atomic_uapi.c | 50 +++ 1 file changed, 50 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gp

[RFC 13/33] drm: Reset plane color state on pipeline switch request

2023-08-29 Thread Uma Shankar
n the new switch request, the blob id's will remain NULL eventually resulting in disabling of that hardware block. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_atomic_uapi.c | 52 --- 1 file c

[RFC 11/33] drm: Replace individual color blobs

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah Replace the color operation blobs depending on the values sent by userspace. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_atomic_uapi.c | 97 +++ 1 file changed

[RFC 14/33] drm/i915/color: Add lut range for SDR planes

2023-08-29 Thread Uma Shankar
: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 55 ++ 1 file changed, 55 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c index 5918e2e9bcdd..3900e3748a0e 100644 --- a/drivers/gpu/drm/i915/display

[RFC 15/33] drm/i915/color: Add lut range for HDR planes

2023-08-29 Thread Uma Shankar
: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 108 + 1 file changed, 108 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c index 3900e3748a0e..58b6d70043ca 100644 --- a/drivers/gpu/drm/i915

[RFC 16/33] drm/i915/color: Add color pipeline for HDR planes

2023-08-29 Thread Uma Shankar
-linearize frame buffer data to match the sink. Another use case of it could be to perform Tone mapping for HDR use-cases. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c

[RFC 17/33] drm/i915/color: Add color pipeline for SDR planes

2023-08-29 Thread Uma Shankar
SDR planes provides programmable color hardware blocks for Pre-CSC and Post-CSC operations. Add a color pipeline to expose these capabilities. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c

[RFC 18/33] drm/i915/color: Add HDR plane LUT range data to color pipeline

2023-08-29 Thread Uma Shankar
: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/i915/display/intel_color.c | 47 ++ 1 file changed, 47 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c index

[RFC 19/33] drm/i915/color: Add SDR plane LUT range data to color pipeline

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah Add LUT ranges for color blocks in SDR planes. Userspace can parse through this information to generate proper LUT data for respective hardware blocks. It will be exposed to the user space by the color pipeline. Co-developed-by: Uma Shankar Signed-off-by: Uma

[RFC 20/33] drm/i915/color: Add color pipelines to plane

2023-08-29 Thread Uma Shankar
plane enum property "GET_COLOR_PIPELINE" to expose these pipelines to userspace. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/i915/display/intel_color.c | 31 +- drivers/gpu/drm/i915/display/intel_color

[RFC 21/33] drm/i915/color: Create and attach set color pipeline property

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah Create and attach "SET_COLOR_PIPELINE" property to planes. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/i915/display/intel_color.c | 3 +++ 1 file changed, 3 insertions(+) diff --git

[RFC 23/33] drm/i915/color: Load plane color luts from atomic flip

2023-08-29 Thread Uma Shankar
Load plane color luts as part of atomic plane updates. This will be done only if the plane color luts are changed. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 8

[RFC 25/33] drm/i915/xelpd: Add register definitions for Plane Degamma

2023-08-29 Thread Uma Shankar
Add macros to define Plane Degamma registers Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/i915_reg.h | 49 + 1 file changed, 49 insertions(+) diff --git a/drivers/gpu/drm/i915

[RFC 29/33] drm/i915/xelpd: Program Plane Post CSC Registers

2023-08-29 Thread Uma Shankar
Extract the LUT and program plane post csc registers. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 95 +- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git

[RFC 22/33] drm/i915/color: Add plane color callbacks

2023-08-29 Thread Uma Shankar
Add callbacks for color plane operations. load_plane_luts: used to load pre/post csc luts load_plane_csc_matrix: used to load csc matrix Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 6

[RFC 24/33] drm/i915/xelpd: Add plane color check to glk_plane_color_ctl

2023-08-29 Thread Uma Shankar
Extended glk_plane_color_ctl to have plane color checks. This helps enabling the csc, degamma or gamma block based on user inputs. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/skl_universal_plane.c | 13

[RFC 26/33] drm/i915/color: Add color functions for ADL

2023-08-29 Thread Uma Shankar
Register color callbacks for ADL and beyond. While we have to register new callbacks for pre-blending color operations, re-use callbacks for post-blend operations. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915

[RFC 27/33] drm/i915/color: Program Plane Pre-CSC Registers

2023-08-29 Thread Uma Shankar
Extract the LUT and program plane pre-csc registers. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c | 120 + drivers/gpu/drm/i915/i915_reg.h| 1 + 2 files

[RFC 28/33] drm/i915/xelpd: Add register definitions for Plane Post CSC

2023-08-29 Thread Uma Shankar
Add macros to define Plane Post CSC registers Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/i915_reg.h | 73 + 1 file changed, 73 insertions(+) diff --git a/drivers/gpu/drm/i915

[RFC 33/33] drm/i915/color: Add example implementation for vendor specific color operation

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah This is an example of how vendor specific color operation could be supported by the uapi Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/i915/display/intel_color.c| 42

[RFC 30/33] drm/i915/color: Enable Plane CSC

2023-08-29 Thread Uma Shankar
Implement plane CSC for Xe_LPD. Co-developed-by: Chaitanya Kumar Borah Signed-off-by: Chaitanya Kumar Borah Signed-off-by: Uma Shankar --- drivers/gpu/drm/i915/display/intel_color.c| 86 +++ drivers/gpu/drm/i915/display/intel_color.h| 1 + .../drm/i915/display

[RFC 32/33] drm/i915/color: Add a dummy pipeline with 3D LUT

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah This patch is to demonstrate how a pipeline can be added. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/drm_atomic_state_helper.c | 3 ++ drivers/gpu/drm/drm_atomic_uapi.c | 15

[RFC 31/33] drm/i915/color: Enable plane color features

2023-08-29 Thread Uma Shankar
From: Chaitanya Kumar Borah Initialize and expose all plane color features. Co-developed-by: Uma Shankar Signed-off-by: Uma Shankar Signed-off-by: Chaitanya Kumar Borah --- drivers/gpu/drm/i915/display/intel_color.c | 1 - drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 + 2