All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions
@ 2025-12-18 14:15 Jani Nikula
  2025-12-18 15:19 ` ✗ Fi.CI.BUILD: failure for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jani Nikula @ 2025-12-18 14:15 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-gfx, jani.nikula, Simon Ser, Alex Hung, Harry Wentland,
	Daniel Stone, Melissa Wen, Sebastian Wick

There is no real reason to include drm_colorop.h from drm_atomic.h, as
drm_atomic_get_{old,new}_colorop_state() have no real reason to be
static inline.

Convert the static inlines to proper functions, and drop the include to
reduce the include dependencies and improve data hiding.

Fixes: cfc27680ee20 ("drm/colorop: Introduce new drm_colorop mode object")
Cc: Simon Ser <contact@emersion.fr>
Cc: Alex Hung <alex.hung@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Melissa Wen <mwen@igalia.com>
Cc: Sebastian Wick <sebastian.wick@redhat.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

Including the massive Cc list because I don't want to keep doing this
afterwards. This stuff needs to be blocked and fixed during review. Just
stop including headers from headers. It's a PITA to clean up.
---
 .../amd/display/amdgpu_dm/amdgpu_dm_color.c   |  3 ++
 drivers/gpu/drm/drm_atomic.c                  | 32 +++++++++++++++
 drivers/gpu/drm/drm_atomic_helper.c           |  1 +
 .../drm/i915/display/intel_display_types.h    |  1 +
 include/drm/drm_atomic.h                      | 39 ++++---------------
 5 files changed, 45 insertions(+), 31 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
index 1dcc79b35225..20a76d81d532 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -23,6 +23,9 @@
  * Authors: AMD
  *
  */
+
+#include <drm/drm_colorop.h>
+
 #include "amdgpu.h"
 #include "amdgpu_mode.h"
 #include "amdgpu_dm.h"
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 6d3ea8056b60..52738b80ddbe 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -641,6 +641,38 @@ drm_atomic_get_colorop_state(struct drm_atomic_state *state,
 }
 EXPORT_SYMBOL(drm_atomic_get_colorop_state);
 
+/**
+ * drm_atomic_get_old_colorop_state - get colorop state, if it exists
+ * @state: global atomic state object
+ * @colorop: colorop to grab
+ *
+ * This function returns the old colorop state for the given colorop, or
+ * NULL if the colorop is not part of the global atomic state.
+ */
+struct drm_colorop_state *
+drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
+				 struct drm_colorop *colorop)
+{
+	return state->colorops[drm_colorop_index(colorop)].old_state;
+}
+EXPORT_SYMBOL(drm_atomic_get_old_colorop_state);
+
+/**
+ * drm_atomic_get_new_colorop_state - get colorop state, if it exists
+ * @state: global atomic state object
+ * @colorop: colorop to grab
+ *
+ * This function returns the new colorop state for the given colorop, or
+ * NULL if the colorop is not part of the global atomic state.
+ */
+struct drm_colorop_state *
+drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
+				 struct drm_colorop *colorop)
+{
+	return state->colorops[drm_colorop_index(colorop)].new_state;
+}
+EXPORT_SYMBOL(drm_atomic_get_new_colorop_state);
+
 static bool
 plane_switching_crtc(const struct drm_plane_state *old_plane_state,
 		     const struct drm_plane_state *new_plane_state)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 10adac9397cf..5840e9cc6f66 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -34,6 +34,7 @@
 #include <drm/drm_atomic_uapi.h>
 #include <drm/drm_blend.h>
 #include <drm/drm_bridge.h>
+#include <drm/drm_colorop.h>
 #include <drm/drm_damage_helper.h>
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 6ff53cd58052..eb2e3f1e83c9 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -34,6 +34,7 @@
 #include <drm/display/drm_dp_tunnel.h>
 #include <drm/display/drm_dsc.h>
 #include <drm/drm_atomic.h>
+#include <drm/drm_colorop.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_encoder.h>
 #include <drm/drm_framebuffer.h>
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 74ce26fa8838..178f8f62c80f 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -30,7 +30,6 @@
 
 #include <drm/drm_crtc.h>
 #include <drm/drm_util.h>
-#include <drm/drm_colorop.h>
 
 /**
  * struct drm_crtc_commit - track modeset commits on a CRTC
@@ -712,6 +711,14 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
 struct drm_colorop_state *
 drm_atomic_get_colorop_state(struct drm_atomic_state *state,
 			     struct drm_colorop *colorop);
+
+struct drm_colorop_state *
+drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
+				 struct drm_colorop *colorop);
+struct drm_colorop_state *
+drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
+				 struct drm_colorop *colorop);
+
 struct drm_connector_state * __must_check
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			       struct drm_connector *connector);
@@ -808,36 +815,6 @@ drm_atomic_get_new_plane_state(const struct drm_atomic_state *state,
 	return state->planes[drm_plane_index(plane)].new_state;
 }
 
-/**
- * drm_atomic_get_old_colorop_state - get colorop state, if it exists
- * @state: global atomic state object
- * @colorop: colorop to grab
- *
- * This function returns the old colorop state for the given colorop, or
- * NULL if the colorop is not part of the global atomic state.
- */
-static inline struct drm_colorop_state *
-drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
-				 struct drm_colorop *colorop)
-{
-	return state->colorops[drm_colorop_index(colorop)].old_state;
-}
-
-/**
- * drm_atomic_get_new_colorop_state - get colorop state, if it exists
- * @state: global atomic state object
- * @colorop: colorop to grab
- *
- * This function returns the new colorop state for the given colorop, or
- * NULL if the colorop is not part of the global atomic state.
- */
-static inline struct drm_colorop_state *
-drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
-				 struct drm_colorop *colorop)
-{
-	return state->colorops[drm_colorop_index(colorop)].new_state;
-}
-
 /**
  * drm_atomic_get_old_connector_state - get connector state, if it exists
  * @state: global atomic state object
-- 
2.47.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* ✗ Fi.CI.BUILD: failure for drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions
  2025-12-18 14:15 [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions Jani Nikula
@ 2025-12-18 15:19 ` Patchwork
  2025-12-18 19:33 ` [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() " Alex Hung
  2025-12-21 11:45 ` [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() " kernel test robot
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2025-12-18 15:19 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions
URL   : https://patchwork.freedesktop.org/series/159220/
State : failure

== Summary ==

Error: make failed
  CALL    scripts/checksyscalls.sh
  DESCEND objtool
  INSTALL libsubcmd_headers
  CC [M]  drivers/gpu/drm/vkms/vkms_drv.o
drivers/gpu/drm/vkms/vkms_drv.c: In function ‘vkms_destroy’:
drivers/gpu/drm/vkms/vkms_drv.c:261:9: error: implicit declaration of function ‘drm_colorop_pipeline_destroy’ [-Werror=implicit-function-declaration]
  261 |         drm_colorop_pipeline_destroy(&config->dev->drm);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[6]: *** [scripts/Makefile.build:287: drivers/gpu/drm/vkms/vkms_drv.o] Error 1
make[5]: *** [scripts/Makefile.build:556: drivers/gpu/drm/vkms] Error 2
make[4]: *** [scripts/Makefile.build:556: drivers/gpu/drm] Error 2
make[3]: *** [scripts/Makefile.build:556: drivers/gpu] Error 2
make[2]: *** [scripts/Makefile.build:556: drivers] Error 2
make[1]: *** [/home/kbuild/kernel/Makefile:2054: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2
Build failed, no error log produced



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() into proper functions
  2025-12-18 14:15 [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions Jani Nikula
  2025-12-18 15:19 ` ✗ Fi.CI.BUILD: failure for " Patchwork
@ 2025-12-18 19:33 ` Alex Hung
  2025-12-19 11:50   ` Jani Nikula
  2025-12-21 11:45 ` [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() " kernel test robot
  2 siblings, 1 reply; 5+ messages in thread
From: Alex Hung @ 2025-12-18 19:33 UTC (permalink / raw)
  To: Jani Nikula, dri-devel
  Cc: intel-gfx, Simon Ser, Harry Wentland, Daniel Stone, Melissa Wen,
	Sebastian Wick

Hi Jani,

Some compilation errors with this patch:

drivers/gpu/drm/vkms/vkms_drv.c: In function ‘vkms_destroy’:
drivers/gpu/drm/vkms/vkms_drv.c:261:9: error: implicit declaration of 
function ‘drm_colorop_pipeline_destroy’ 
[-Werror=implicit-function-declaration]
   261 |         drm_colorop_pipeline_destroy(&config->dev->drm);
       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[9]: *** [scripts/Makefile.build:287: 
drivers/gpu/drm/vkms/vkms_drv.o] Error 1
make[9]: *** Waiting for unfinished jobs....
drivers/gpu/drm/vkms/vkms_composer.c: In function ‘apply_colorop’:
drivers/gpu/drm/vkms/vkms_composer.c:164:58: error: invalid use of 
undefined type ‘struct drm_colorop’
   164 |         struct drm_colorop_state *colorop_state = colorop->state;
       |                                                          ^~
drivers/gpu/drm/vkms/vkms_composer.c:165:41: error: invalid use of 
undefined type ‘struct drm_colorop’
   165 |         struct drm_device *dev = colorop->dev;
       |                                         ^~
drivers/gpu/drm/vkms/vkms_composer.c:167:20: error: invalid use of 
undefined type ‘struct drm_colorop’
   167 |         if (colorop->type == DRM_COLOROP_1D_CURVE) {
       |                    ^~
drivers/gpu/drm/vkms/vkms_composer.c:168:38: error: invalid use of 
undefined type ‘struct drm_colorop_state’
   168 |                 switch (colorop_state->curve_1d_type) {
       |                                      ^~
drivers/gpu/drm/vkms/vkms_composer.c:169:22: error: 
‘DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF’ undeclared (first use in this function)
   169 |                 case DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF:
       |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/vkms/vkms_composer.c:169:22: note: each undeclared 
identifier is reported only once for each function it appears in
drivers/gpu/drm/vkms/vkms_composer.c:174:22: error: 
‘DRM_COLOROP_1D_CURVE_SRGB_EOTF’ undeclared (first use in this 
function); did you mean ‘DRM_COLOROP_1D_CURVE’?
   174 |                 case DRM_COLOROP_1D_CURVE_SRGB_EOTF:
...


Including the drm_colorop.h in vkms_composer.c and vkms_drv.c fixes them:

diff --git a/drivers/gpu/drm/vkms/vkms_composer.c 
b/drivers/gpu/drm/vkms/vkms_composer.c
index 3cf3f26e0d8e..cd85de4ffd03 100644
--- a/drivers/gpu/drm/vkms/vkms_composer.c
+++ b/drivers/gpu/drm/vkms/vkms_composer.c
@@ -5,6 +5,7 @@
  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_blend.h>
+#include <drm/drm_colorop.h>
  #include <drm/drm_fourcc.h>
  #include <drm/drm_fixed.h>
  #include <drm/drm_gem_framebuffer_helper.h>
diff --git a/drivers/gpu/drm/vkms/vkms_drv.c 
b/drivers/gpu/drm/vkms/vkms_drv.c
index dd1402f43773..434c295f44ba 100644
--- a/drivers/gpu/drm/vkms/vkms_drv.c
+++ b/drivers/gpu/drm/vkms/vkms_drv.c
@@ -17,6 +17,7 @@
  #include <drm/drm_gem.h>
  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
+#include <drm/drm_colorop.h>
  #include <drm/drm_drv.h>
  #include <drm/drm_fbdev_shmem.h>
  #include <drm/drm_file.h>


Alex

On 12/18/25 07:15, Jani Nikula wrote:
> There is no real reason to include drm_colorop.h from drm_atomic.h, as
> drm_atomic_get_{old,new}_colorop_state() have no real reason to be
> static inline.
> 
> Convert the static inlines to proper functions, and drop the include to
> reduce the include dependencies and improve data hiding.
> 
> Fixes: cfc27680ee20 ("drm/colorop: Introduce new drm_colorop mode object")
> Cc: Simon Ser <contact@emersion.fr>
> Cc: Alex Hung <alex.hung@amd.com>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Daniel Stone <daniels@collabora.com>
> Cc: Melissa Wen <mwen@igalia.com>
> Cc: Sebastian Wick <sebastian.wick@redhat.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> ---
> 
> Including the massive Cc list because I don't want to keep doing this
> afterwards. This stuff needs to be blocked and fixed during review. Just
> stop including headers from headers. It's a PITA to clean up.
> ---
>   .../amd/display/amdgpu_dm/amdgpu_dm_color.c   |  3 ++
>   drivers/gpu/drm/drm_atomic.c                  | 32 +++++++++++++++
>   drivers/gpu/drm/drm_atomic_helper.c           |  1 +
>   .../drm/i915/display/intel_display_types.h    |  1 +
>   include/drm/drm_atomic.h                      | 39 ++++---------------
>   5 files changed, 45 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> index 1dcc79b35225..20a76d81d532 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
> @@ -23,6 +23,9 @@
>    * Authors: AMD
>    *
>    */
> +
> +#include <drm/drm_colorop.h>
> +
>   #include "amdgpu.h"
>   #include "amdgpu_mode.h"
>   #include "amdgpu_dm.h"
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 6d3ea8056b60..52738b80ddbe 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -641,6 +641,38 @@ drm_atomic_get_colorop_state(struct drm_atomic_state *state,
>   }
>   EXPORT_SYMBOL(drm_atomic_get_colorop_state);
>   
> +/**
> + * drm_atomic_get_old_colorop_state - get colorop state, if it exists
> + * @state: global atomic state object
> + * @colorop: colorop to grab
> + *
> + * This function returns the old colorop state for the given colorop, or
> + * NULL if the colorop is not part of the global atomic state.
> + */
> +struct drm_colorop_state *
> +drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
> +				 struct drm_colorop *colorop)
> +{
> +	return state->colorops[drm_colorop_index(colorop)].old_state;
> +}
> +EXPORT_SYMBOL(drm_atomic_get_old_colorop_state);
> +
> +/**
> + * drm_atomic_get_new_colorop_state - get colorop state, if it exists
> + * @state: global atomic state object
> + * @colorop: colorop to grab
> + *
> + * This function returns the new colorop state for the given colorop, or
> + * NULL if the colorop is not part of the global atomic state.
> + */
> +struct drm_colorop_state *
> +drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
> +				 struct drm_colorop *colorop)
> +{
> +	return state->colorops[drm_colorop_index(colorop)].new_state;
> +}
> +EXPORT_SYMBOL(drm_atomic_get_new_colorop_state);
> +
>   static bool
>   plane_switching_crtc(const struct drm_plane_state *old_plane_state,
>   		     const struct drm_plane_state *new_plane_state)
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 10adac9397cf..5840e9cc6f66 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -34,6 +34,7 @@
>   #include <drm/drm_atomic_uapi.h>
>   #include <drm/drm_blend.h>
>   #include <drm/drm_bridge.h>
> +#include <drm/drm_colorop.h>
>   #include <drm/drm_damage_helper.h>
>   #include <drm/drm_device.h>
>   #include <drm/drm_drv.h>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 6ff53cd58052..eb2e3f1e83c9 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -34,6 +34,7 @@
>   #include <drm/display/drm_dp_tunnel.h>
>   #include <drm/display/drm_dsc.h>
>   #include <drm/drm_atomic.h>
> +#include <drm/drm_colorop.h>
>   #include <drm/drm_crtc.h>
>   #include <drm/drm_encoder.h>
>   #include <drm/drm_framebuffer.h>
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index 74ce26fa8838..178f8f62c80f 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -30,7 +30,6 @@
>   
>   #include <drm/drm_crtc.h>
>   #include <drm/drm_util.h>
> -#include <drm/drm_colorop.h>
>   
>   /**
>    * struct drm_crtc_commit - track modeset commits on a CRTC
> @@ -712,6 +711,14 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>   struct drm_colorop_state *
>   drm_atomic_get_colorop_state(struct drm_atomic_state *state,
>   			     struct drm_colorop *colorop);
> +
> +struct drm_colorop_state *
> +drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
> +				 struct drm_colorop *colorop);
> +struct drm_colorop_state *
> +drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
> +				 struct drm_colorop *colorop);
> +
>   struct drm_connector_state * __must_check
>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>   			       struct drm_connector *connector);
> @@ -808,36 +815,6 @@ drm_atomic_get_new_plane_state(const struct drm_atomic_state *state,
>   	return state->planes[drm_plane_index(plane)].new_state;
>   }
>   
> -/**
> - * drm_atomic_get_old_colorop_state - get colorop state, if it exists
> - * @state: global atomic state object
> - * @colorop: colorop to grab
> - *
> - * This function returns the old colorop state for the given colorop, or
> - * NULL if the colorop is not part of the global atomic state.
> - */
> -static inline struct drm_colorop_state *
> -drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
> -				 struct drm_colorop *colorop)
> -{
> -	return state->colorops[drm_colorop_index(colorop)].old_state;
> -}
> -
> -/**
> - * drm_atomic_get_new_colorop_state - get colorop state, if it exists
> - * @state: global atomic state object
> - * @colorop: colorop to grab
> - *
> - * This function returns the new colorop state for the given colorop, or
> - * NULL if the colorop is not part of the global atomic state.
> - */
> -static inline struct drm_colorop_state *
> -drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
> -				 struct drm_colorop *colorop)
> -{
> -	return state->colorops[drm_colorop_index(colorop)].new_state;
> -}
> -
>   /**
>    * drm_atomic_get_old_connector_state - get connector state, if it exists
>    * @state: global atomic state object


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() into proper functions
  2025-12-18 19:33 ` [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() " Alex Hung
@ 2025-12-19 11:50   ` Jani Nikula
  0 siblings, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2025-12-19 11:50 UTC (permalink / raw)
  To: Alex Hung, dri-devel
  Cc: intel-gfx, Simon Ser, Harry Wentland, Daniel Stone, Melissa Wen,
	Sebastian Wick

On Thu, 18 Dec 2025, Alex Hung <alex.hung@amd.com> wrote:
> Hi Jani,
>
> Some compilation errors with this patch:

Thanks a lot, sent v2.

BR,
Jani.


>
> drivers/gpu/drm/vkms/vkms_drv.c: In function ‘vkms_destroy’:
> drivers/gpu/drm/vkms/vkms_drv.c:261:9: error: implicit declaration of 
> function ‘drm_colorop_pipeline_destroy’ 
> [-Werror=implicit-function-declaration]
>    261 |         drm_colorop_pipeline_destroy(&config->dev->drm);
>        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: some warnings being treated as errors
> make[9]: *** [scripts/Makefile.build:287: 
> drivers/gpu/drm/vkms/vkms_drv.o] Error 1
> make[9]: *** Waiting for unfinished jobs....
> drivers/gpu/drm/vkms/vkms_composer.c: In function ‘apply_colorop’:
> drivers/gpu/drm/vkms/vkms_composer.c:164:58: error: invalid use of 
> undefined type ‘struct drm_colorop’
>    164 |         struct drm_colorop_state *colorop_state = colorop->state;
>        |                                                          ^~
> drivers/gpu/drm/vkms/vkms_composer.c:165:41: error: invalid use of 
> undefined type ‘struct drm_colorop’
>    165 |         struct drm_device *dev = colorop->dev;
>        |                                         ^~
> drivers/gpu/drm/vkms/vkms_composer.c:167:20: error: invalid use of 
> undefined type ‘struct drm_colorop’
>    167 |         if (colorop->type == DRM_COLOROP_1D_CURVE) {
>        |                    ^~
> drivers/gpu/drm/vkms/vkms_composer.c:168:38: error: invalid use of 
> undefined type ‘struct drm_colorop_state’
>    168 |                 switch (colorop_state->curve_1d_type) {
>        |                                      ^~
> drivers/gpu/drm/vkms/vkms_composer.c:169:22: error: 
> ‘DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF’ undeclared (first use in this function)
>    169 |                 case DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF:
>        |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/vkms/vkms_composer.c:169:22: note: each undeclared 
> identifier is reported only once for each function it appears in
> drivers/gpu/drm/vkms/vkms_composer.c:174:22: error: 
> ‘DRM_COLOROP_1D_CURVE_SRGB_EOTF’ undeclared (first use in this 
> function); did you mean ‘DRM_COLOROP_1D_CURVE’?
>    174 |                 case DRM_COLOROP_1D_CURVE_SRGB_EOTF:
> ...
>
>
> Including the drm_colorop.h in vkms_composer.c and vkms_drv.c fixes them:
>
> diff --git a/drivers/gpu/drm/vkms/vkms_composer.c 
> b/drivers/gpu/drm/vkms/vkms_composer.c
> index 3cf3f26e0d8e..cd85de4ffd03 100644
> --- a/drivers/gpu/drm/vkms/vkms_composer.c
> +++ b/drivers/gpu/drm/vkms/vkms_composer.c
> @@ -5,6 +5,7 @@
>   #include <drm/drm_atomic.h>
>   #include <drm/drm_atomic_helper.h>
>   #include <drm/drm_blend.h>
> +#include <drm/drm_colorop.h>
>   #include <drm/drm_fourcc.h>
>   #include <drm/drm_fixed.h>
>   #include <drm/drm_gem_framebuffer_helper.h>
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.c 
> b/drivers/gpu/drm/vkms/vkms_drv.c
> index dd1402f43773..434c295f44ba 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.c
> +++ b/drivers/gpu/drm/vkms/vkms_drv.c
> @@ -17,6 +17,7 @@
>   #include <drm/drm_gem.h>
>   #include <drm/drm_atomic.h>
>   #include <drm/drm_atomic_helper.h>
> +#include <drm/drm_colorop.h>
>   #include <drm/drm_drv.h>
>   #include <drm/drm_fbdev_shmem.h>
>   #include <drm/drm_file.h>
>
>
> Alex
>
> On 12/18/25 07:15, Jani Nikula wrote:
>> There is no real reason to include drm_colorop.h from drm_atomic.h, as
>> drm_atomic_get_{old,new}_colorop_state() have no real reason to be
>> static inline.
>> 
>> Convert the static inlines to proper functions, and drop the include to
>> reduce the include dependencies and improve data hiding.
>> 
>> Fixes: cfc27680ee20 ("drm/colorop: Introduce new drm_colorop mode object")
>> Cc: Simon Ser <contact@emersion.fr>
>> Cc: Alex Hung <alex.hung@amd.com>
>> Cc: Harry Wentland <harry.wentland@amd.com>
>> Cc: Daniel Stone <daniels@collabora.com>
>> Cc: Melissa Wen <mwen@igalia.com>
>> Cc: Sebastian Wick <sebastian.wick@redhat.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> ---
>> 
>> Including the massive Cc list because I don't want to keep doing this
>> afterwards. This stuff needs to be blocked and fixed during review. Just
>> stop including headers from headers. It's a PITA to clean up.
>> ---
>>   .../amd/display/amdgpu_dm/amdgpu_dm_color.c   |  3 ++
>>   drivers/gpu/drm/drm_atomic.c                  | 32 +++++++++++++++
>>   drivers/gpu/drm/drm_atomic_helper.c           |  1 +
>>   .../drm/i915/display/intel_display_types.h    |  1 +
>>   include/drm/drm_atomic.h                      | 39 ++++---------------
>>   5 files changed, 45 insertions(+), 31 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
>> index 1dcc79b35225..20a76d81d532 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
>> @@ -23,6 +23,9 @@
>>    * Authors: AMD
>>    *
>>    */
>> +
>> +#include <drm/drm_colorop.h>
>> +
>>   #include "amdgpu.h"
>>   #include "amdgpu_mode.h"
>>   #include "amdgpu_dm.h"
>> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
>> index 6d3ea8056b60..52738b80ddbe 100644
>> --- a/drivers/gpu/drm/drm_atomic.c
>> +++ b/drivers/gpu/drm/drm_atomic.c
>> @@ -641,6 +641,38 @@ drm_atomic_get_colorop_state(struct drm_atomic_state *state,
>>   }
>>   EXPORT_SYMBOL(drm_atomic_get_colorop_state);
>>   
>> +/**
>> + * drm_atomic_get_old_colorop_state - get colorop state, if it exists
>> + * @state: global atomic state object
>> + * @colorop: colorop to grab
>> + *
>> + * This function returns the old colorop state for the given colorop, or
>> + * NULL if the colorop is not part of the global atomic state.
>> + */
>> +struct drm_colorop_state *
>> +drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
>> +				 struct drm_colorop *colorop)
>> +{
>> +	return state->colorops[drm_colorop_index(colorop)].old_state;
>> +}
>> +EXPORT_SYMBOL(drm_atomic_get_old_colorop_state);
>> +
>> +/**
>> + * drm_atomic_get_new_colorop_state - get colorop state, if it exists
>> + * @state: global atomic state object
>> + * @colorop: colorop to grab
>> + *
>> + * This function returns the new colorop state for the given colorop, or
>> + * NULL if the colorop is not part of the global atomic state.
>> + */
>> +struct drm_colorop_state *
>> +drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
>> +				 struct drm_colorop *colorop)
>> +{
>> +	return state->colorops[drm_colorop_index(colorop)].new_state;
>> +}
>> +EXPORT_SYMBOL(drm_atomic_get_new_colorop_state);
>> +
>>   static bool
>>   plane_switching_crtc(const struct drm_plane_state *old_plane_state,
>>   		     const struct drm_plane_state *new_plane_state)
>> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
>> index 10adac9397cf..5840e9cc6f66 100644
>> --- a/drivers/gpu/drm/drm_atomic_helper.c
>> +++ b/drivers/gpu/drm/drm_atomic_helper.c
>> @@ -34,6 +34,7 @@
>>   #include <drm/drm_atomic_uapi.h>
>>   #include <drm/drm_blend.h>
>>   #include <drm/drm_bridge.h>
>> +#include <drm/drm_colorop.h>
>>   #include <drm/drm_damage_helper.h>
>>   #include <drm/drm_device.h>
>>   #include <drm/drm_drv.h>
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
>> index 6ff53cd58052..eb2e3f1e83c9 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
>> @@ -34,6 +34,7 @@
>>   #include <drm/display/drm_dp_tunnel.h>
>>   #include <drm/display/drm_dsc.h>
>>   #include <drm/drm_atomic.h>
>> +#include <drm/drm_colorop.h>
>>   #include <drm/drm_crtc.h>
>>   #include <drm/drm_encoder.h>
>>   #include <drm/drm_framebuffer.h>
>> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
>> index 74ce26fa8838..178f8f62c80f 100644
>> --- a/include/drm/drm_atomic.h
>> +++ b/include/drm/drm_atomic.h
>> @@ -30,7 +30,6 @@
>>   
>>   #include <drm/drm_crtc.h>
>>   #include <drm/drm_util.h>
>> -#include <drm/drm_colorop.h>
>>   
>>   /**
>>    * struct drm_crtc_commit - track modeset commits on a CRTC
>> @@ -712,6 +711,14 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>   struct drm_colorop_state *
>>   drm_atomic_get_colorop_state(struct drm_atomic_state *state,
>>   			     struct drm_colorop *colorop);
>> +
>> +struct drm_colorop_state *
>> +drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
>> +				 struct drm_colorop *colorop);
>> +struct drm_colorop_state *
>> +drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
>> +				 struct drm_colorop *colorop);
>> +
>>   struct drm_connector_state * __must_check
>>   drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>   			       struct drm_connector *connector);
>> @@ -808,36 +815,6 @@ drm_atomic_get_new_plane_state(const struct drm_atomic_state *state,
>>   	return state->planes[drm_plane_index(plane)].new_state;
>>   }
>>   
>> -/**
>> - * drm_atomic_get_old_colorop_state - get colorop state, if it exists
>> - * @state: global atomic state object
>> - * @colorop: colorop to grab
>> - *
>> - * This function returns the old colorop state for the given colorop, or
>> - * NULL if the colorop is not part of the global atomic state.
>> - */
>> -static inline struct drm_colorop_state *
>> -drm_atomic_get_old_colorop_state(struct drm_atomic_state *state,
>> -				 struct drm_colorop *colorop)
>> -{
>> -	return state->colorops[drm_colorop_index(colorop)].old_state;
>> -}
>> -
>> -/**
>> - * drm_atomic_get_new_colorop_state - get colorop state, if it exists
>> - * @state: global atomic state object
>> - * @colorop: colorop to grab
>> - *
>> - * This function returns the new colorop state for the given colorop, or
>> - * NULL if the colorop is not part of the global atomic state.
>> - */
>> -static inline struct drm_colorop_state *
>> -drm_atomic_get_new_colorop_state(struct drm_atomic_state *state,
>> -				 struct drm_colorop *colorop)
>> -{
>> -	return state->colorops[drm_colorop_index(colorop)].new_state;
>> -}
>> -
>>   /**
>>    * drm_atomic_get_old_connector_state - get connector state, if it exists
>>    * @state: global atomic state object
>

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions
  2025-12-18 14:15 [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions Jani Nikula
  2025-12-18 15:19 ` ✗ Fi.CI.BUILD: failure for " Patchwork
  2025-12-18 19:33 ` [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() " Alex Hung
@ 2025-12-21 11:45 ` kernel test robot
  2 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2025-12-21 11:45 UTC (permalink / raw)
  To: Jani Nikula, dri-devel
  Cc: oe-kbuild-all, intel-gfx, jani.nikula, Simon Ser, Alex Hung,
	Harry Wentland, Daniel Stone, Melissa Wen, Sebastian Wick

Hi Jani,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on drm-i915/for-linux-next drm-i915/for-linux-next-fixes drm-tip/drm-tip linus/master v6.19-rc1 next-20251219]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-atomic-convert-drm_atomic_get_-old-new-_colorop_state-into-proper-functions/20251218-221750
base:   https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link:    https://lore.kernel.org/r/20251218141527.405328-1-jani.nikula%40intel.com
patch subject: [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20251221/202512211205.IzU0HLpV-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512211205.IzU0HLpV-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512211205.IzU0HLpV-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/vkms/vkms_drv.c: In function 'vkms_destroy':
>> drivers/gpu/drm/vkms/vkms_drv.c:261:9: error: implicit declaration of function 'drm_colorop_pipeline_destroy' [-Wimplicit-function-declaration]
     261 |         drm_colorop_pipeline_destroy(&config->dev->drm);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
   drivers/gpu/drm/vkms/vkms_composer.c: In function 'apply_colorop':
>> drivers/gpu/drm/vkms/vkms_composer.c:164:58: error: invalid use of undefined type 'struct drm_colorop'
     164 |         struct drm_colorop_state *colorop_state = colorop->state;
         |                                                          ^~
   drivers/gpu/drm/vkms/vkms_composer.c:165:41: error: invalid use of undefined type 'struct drm_colorop'
     165 |         struct drm_device *dev = colorop->dev;
         |                                         ^~
   drivers/gpu/drm/vkms/vkms_composer.c:167:20: error: invalid use of undefined type 'struct drm_colorop'
     167 |         if (colorop->type == DRM_COLOROP_1D_CURVE) {
         |                    ^~
>> drivers/gpu/drm/vkms/vkms_composer.c:168:38: error: invalid use of undefined type 'struct drm_colorop_state'
     168 |                 switch (colorop_state->curve_1d_type) {
         |                                      ^~
>> drivers/gpu/drm/vkms/vkms_composer.c:169:22: error: 'DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF' undeclared (first use in this function)
     169 |                 case DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF:
         |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/vkms/vkms_composer.c:169:22: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/vkms/vkms_composer.c:174:22: error: 'DRM_COLOROP_1D_CURVE_SRGB_EOTF' undeclared (first use in this function); did you mean 'DRM_COLOROP_1D_CURVE'?
     174 |                 case DRM_COLOROP_1D_CURVE_SRGB_EOTF:
         |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                      DRM_COLOROP_1D_CURVE
   In file included from arch/x86/include/asm/alternative.h:9,
                    from arch/x86/include/asm/nospec-branch.h:10,
                    from arch/x86/include/asm/irqflags.h:9,
                    from include/linux/irqflags.h:18,
                    from include/linux/spinlock.h:59,
                    from include/drm/drm_crtc.h:28,
                    from include/drm/drm_atomic.h:31,
                    from drivers/gpu/drm/vkms/vkms_composer.c:5:
   drivers/gpu/drm/vkms/vkms_composer.c:182:52: error: invalid use of undefined type 'struct drm_colorop_state'
     182 |                                       colorop_state->curve_1d_type);
         |                                                    ^~
   arch/x86/include/asm/bug.h:175:74: note: in definition of macro '__WARN_print_arg'
     175 |         static_call_mod(WARN_trap)(__WARN_bug_entry(__flags, format), ## arg); \
         |                                                                          ^~~
   include/drm/drm_print.h:784:9: note: in expansion of macro 'WARN_ONCE'
     784 |         WARN_ONCE(condition, "%s %s: [drm] " format,                    \
         |         ^~~~~~~~~
   drivers/gpu/drm/vkms/vkms_composer.c:180:25: note: in expansion of macro 'drm_WARN_ONCE'
     180 |                         drm_WARN_ONCE(dev, true,
         |                         ^~~~~~~~~~~~~
   drivers/gpu/drm/vkms/vkms_composer.c:185:27: error: invalid use of undefined type 'struct drm_colorop'
     185 |         } else if (colorop->type == DRM_COLOROP_CTM_3X4) {
         |                           ^~
   drivers/gpu/drm/vkms/vkms_composer.c:186:34: error: invalid use of undefined type 'struct drm_colorop_state'
     186 |                 if (colorop_state->data)
         |                                  ^~
   drivers/gpu/drm/vkms/vkms_composer.c:188:83: error: invalid use of undefined type 'struct drm_colorop_state'
     188 |                                          (struct drm_color_ctm_3x4 *)colorop_state->data->data);
         |                                                                                   ^~
   drivers/gpu/drm/vkms/vkms_composer.c: In function 'pre_blend_color_transform':
   drivers/gpu/drm/vkms/vkms_composer.c:218:48: error: invalid use of undefined type 'struct drm_colorop'
     218 |                         colorop_state = colorop->state;
         |                                                ^~
   drivers/gpu/drm/vkms/vkms_composer.c:223:43: error: invalid use of undefined type 'struct drm_colorop_state'
     223 |                         if (!colorop_state->bypass)
         |                                           ^~
   drivers/gpu/drm/vkms/vkms_composer.c:226:42: error: invalid use of undefined type 'struct drm_colorop'
     226 |                         colorop = colorop->next;
         |                                          ^~


vim +164 drivers/gpu/drm/vkms/vkms_composer.c

ea3f6baf3196c3 Harry Wentland 2025-11-14  161  
bff4d3cd3c9fcd Harry Wentland 2025-11-14  162  static void apply_colorop(struct pixel_argb_s32 *pixel, struct drm_colorop *colorop)
c1e578bd08da79 Harry Wentland 2025-11-14  163  {
c1e578bd08da79 Harry Wentland 2025-11-14 @164  	struct drm_colorop_state *colorop_state = colorop->state;
c1e578bd08da79 Harry Wentland 2025-11-14  165  	struct drm_device *dev = colorop->dev;
c1e578bd08da79 Harry Wentland 2025-11-14  166  
c1e578bd08da79 Harry Wentland 2025-11-14  167  	if (colorop->type == DRM_COLOROP_1D_CURVE) {
c1e578bd08da79 Harry Wentland 2025-11-14 @168  		switch (colorop_state->curve_1d_type) {
c1e578bd08da79 Harry Wentland 2025-11-14 @169  		case DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF:
c1e578bd08da79 Harry Wentland 2025-11-14  170  			pixel->r = apply_lut_to_channel_value(&srgb_inv_eotf, pixel->r, LUT_RED);
c1e578bd08da79 Harry Wentland 2025-11-14  171  			pixel->g = apply_lut_to_channel_value(&srgb_inv_eotf, pixel->g, LUT_GREEN);
c1e578bd08da79 Harry Wentland 2025-11-14  172  			pixel->b = apply_lut_to_channel_value(&srgb_inv_eotf, pixel->b, LUT_BLUE);
c1e578bd08da79 Harry Wentland 2025-11-14  173  			break;
c1e578bd08da79 Harry Wentland 2025-11-14 @174  		case DRM_COLOROP_1D_CURVE_SRGB_EOTF:
c1e578bd08da79 Harry Wentland 2025-11-14  175  			pixel->r = apply_lut_to_channel_value(&srgb_eotf, pixel->r, LUT_RED);
c1e578bd08da79 Harry Wentland 2025-11-14  176  			pixel->g = apply_lut_to_channel_value(&srgb_eotf, pixel->g, LUT_GREEN);
c1e578bd08da79 Harry Wentland 2025-11-14  177  			pixel->b = apply_lut_to_channel_value(&srgb_eotf, pixel->b, LUT_BLUE);
c1e578bd08da79 Harry Wentland 2025-11-14  178  			break;
c1e578bd08da79 Harry Wentland 2025-11-14  179  		default:
c1e578bd08da79 Harry Wentland 2025-11-14  180  			drm_WARN_ONCE(dev, true,
c1e578bd08da79 Harry Wentland 2025-11-14  181  				      "unknown colorop 1D curve type %d\n",
c1e578bd08da79 Harry Wentland 2025-11-14  182  				      colorop_state->curve_1d_type);
c1e578bd08da79 Harry Wentland 2025-11-14  183  			break;
c1e578bd08da79 Harry Wentland 2025-11-14  184  		}
ea3f6baf3196c3 Harry Wentland 2025-11-14  185  	} else if (colorop->type == DRM_COLOROP_CTM_3X4) {
ea3f6baf3196c3 Harry Wentland 2025-11-14  186  		if (colorop_state->data)
ea3f6baf3196c3 Harry Wentland 2025-11-14  187  			apply_3x4_matrix(pixel,
ea3f6baf3196c3 Harry Wentland 2025-11-14  188  					 (struct drm_color_ctm_3x4 *)colorop_state->data->data);
c1e578bd08da79 Harry Wentland 2025-11-14  189  	}
c1e578bd08da79 Harry Wentland 2025-11-14  190  }
c1e578bd08da79 Harry Wentland 2025-11-14  191  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-12-21 11:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-18 14:15 [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() into proper functions Jani Nikula
2025-12-18 15:19 ` ✗ Fi.CI.BUILD: failure for " Patchwork
2025-12-18 19:33 ` [PATCH] drm/atomic: convert drm_atomic_get_{old,new}_colorop_state() " Alex Hung
2025-12-19 11:50   ` Jani Nikula
2025-12-21 11:45 ` [PATCH] drm/atomic: convert drm_atomic_get_{old, new}_colorop_state() " kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.