[RFC,v5,05/10] drm/atomic: Add solid fill data to plane state dump
Commit Message
Add solid_fill property data to the atomic plane state dump.
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
---
drivers/gpu/drm/drm_atomic.c | 4 ++++
drivers/gpu/drm/drm_plane.c | 10 ++++++++++
include/drm/drm_plane.h | 3 +++
3 files changed, 17 insertions(+)
Comments
On 28/07/2023 20:02, Jessica Zhang wrote:
> Add solid_fill property data to the atomic plane state dump.
>
> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 ++++
> drivers/gpu/drm/drm_plane.c | 10 ++++++++++
> include/drm/drm_plane.h | 3 +++
> 3 files changed, 17 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index c38014abc590..1ee7d08041bc 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -717,6 +717,10 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
> drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0);
> if (state->fb)
> drm_framebuffer_print_info(p, 2, state->fb);
> + drm_printf(p, "\tsolid_fill=%u\n",
> + state->solid_fill_blob ? state->solid_fill_blob->base.id : 0);
> + if (state->solid_fill_blob)
> + drm_plane_solid_fill_print_info(p, 2, state);
> drm_printf(p, "\tcrtc-pos=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&dest));
> drm_printf(p, "\tsrc-pos=" DRM_RECT_FP_FMT "\n", DRM_RECT_FP_ARG(&src));
> drm_printf(p, "\trotation=%x\n", state->rotation);
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 4188b3491625..009d3ebd9b39 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -1494,11 +1494,21 @@ const char *drm_plane_get_pixel_source_name(enum drm_plane_pixel_source pixel_so
> return "NONE";
> case DRM_PLANE_PIXEL_SOURCE_FB:
> return "fb";
> + case DRM_PLANE_PIXEL_SOURCE_SOLID_FILL:
> + return "solid_fill";
> default:
> return "";
> }
> }
This chunk should be a part of the previous commit. Or dropped
completely once DRM_ENUM_NAME_FN is used.
The rest LGTM.
>
> +void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned int indent,
> + const struct drm_plane_state *state)
> +{
> + drm_printf_indent(p, indent, "r=0x%x\n", state->solid_fill.r);
> + drm_printf_indent(p, indent, "g=0x%x\n", state->solid_fill.g);
> + drm_printf_indent(p, indent, "b=0x%x\n", state->solid_fill.b);
> +}
> +
> /**
> * drm_plane_get_damage_clips - Returns damage clips.
> * @state: Plane state.
> diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
> index 234fee3d5a95..303f01f0588c 100644
> --- a/include/drm/drm_plane.h
> +++ b/include/drm/drm_plane.h
> @@ -1000,6 +1000,9 @@ drm_plane_get_damage_clips_count(const struct drm_plane_state *state);
> struct drm_mode_rect *
> drm_plane_get_damage_clips(const struct drm_plane_state *state);
>
> +void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned int indent,
> + const struct drm_plane_state *state);
> +
> int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
> unsigned int supported_filters);
>
>
On 7/28/2023 5:05 PM, Dmitry Baryshkov wrote:
> On 28/07/2023 20:02, Jessica Zhang wrote:
>> Add solid_fill property data to the atomic plane state dump.
>>
>> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
>> ---
>> drivers/gpu/drm/drm_atomic.c | 4 ++++
>> drivers/gpu/drm/drm_plane.c | 10 ++++++++++
>> include/drm/drm_plane.h | 3 +++
>> 3 files changed, 17 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
>> index c38014abc590..1ee7d08041bc 100644
>> --- a/drivers/gpu/drm/drm_atomic.c
>> +++ b/drivers/gpu/drm/drm_atomic.c
>> @@ -717,6 +717,10 @@ static void drm_atomic_plane_print_state(struct
>> drm_printer *p,
>> drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0);
>> if (state->fb)
>> drm_framebuffer_print_info(p, 2, state->fb);
>> + drm_printf(p, "\tsolid_fill=%u\n",
>> + state->solid_fill_blob ? state->solid_fill_blob->base.id
>> : 0);
>> + if (state->solid_fill_blob)
>> + drm_plane_solid_fill_print_info(p, 2, state);
>> drm_printf(p, "\tcrtc-pos=" DRM_RECT_FMT "\n",
>> DRM_RECT_ARG(&dest));
>> drm_printf(p, "\tsrc-pos=" DRM_RECT_FP_FMT "\n",
>> DRM_RECT_FP_ARG(&src));
>> drm_printf(p, "\trotation=%x\n", state->rotation);
>> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
>> index 4188b3491625..009d3ebd9b39 100644
>> --- a/drivers/gpu/drm/drm_plane.c
>> +++ b/drivers/gpu/drm/drm_plane.c
>> @@ -1494,11 +1494,21 @@ const char
>> *drm_plane_get_pixel_source_name(enum drm_plane_pixel_source pixel_so
>> return "NONE";
>> case DRM_PLANE_PIXEL_SOURCE_FB:
>> return "fb";
>> + case DRM_PLANE_PIXEL_SOURCE_SOLID_FILL:
>> + return "solid_fill";
>> default:
>> return "";
>> }
>> }
>
> This chunk should be a part of the previous commit. Or dropped
> completely once DRM_ENUM_NAME_FN is used.
>
> The rest LGTM.
Hi Dmitry,
Sounds good -- will drop this.
Thanks,
Jessica Zhang
>
>> +void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned
>> int indent,
>> + const struct drm_plane_state *state)
>> +{
>> + drm_printf_indent(p, indent, "r=0x%x\n", state->solid_fill.r);
>> + drm_printf_indent(p, indent, "g=0x%x\n", state->solid_fill.g);
>> + drm_printf_indent(p, indent, "b=0x%x\n", state->solid_fill.b);
>> +}
>> +
>> /**
>> * drm_plane_get_damage_clips - Returns damage clips.
>> * @state: Plane state.
>> diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
>> index 234fee3d5a95..303f01f0588c 100644
>> --- a/include/drm/drm_plane.h
>> +++ b/include/drm/drm_plane.h
>> @@ -1000,6 +1000,9 @@ drm_plane_get_damage_clips_count(const struct
>> drm_plane_state *state);
>> struct drm_mode_rect *
>> drm_plane_get_damage_clips(const struct drm_plane_state *state);
>> +void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned
>> int indent,
>> + const struct drm_plane_state *state);
>> +
>> int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
>> unsigned int supported_filters);
>>
>
> --
> With best wishes
> Dmitry
>
@@ -717,6 +717,10 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0);
if (state->fb)
drm_framebuffer_print_info(p, 2, state->fb);
+ drm_printf(p, "\tsolid_fill=%u\n",
+ state->solid_fill_blob ? state->solid_fill_blob->base.id : 0);
+ if (state->solid_fill_blob)
+ drm_plane_solid_fill_print_info(p, 2, state);
drm_printf(p, "\tcrtc-pos=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&dest));
drm_printf(p, "\tsrc-pos=" DRM_RECT_FP_FMT "\n", DRM_RECT_FP_ARG(&src));
drm_printf(p, "\trotation=%x\n", state->rotation);
@@ -1494,11 +1494,21 @@ const char *drm_plane_get_pixel_source_name(enum drm_plane_pixel_source pixel_so
return "NONE";
case DRM_PLANE_PIXEL_SOURCE_FB:
return "fb";
+ case DRM_PLANE_PIXEL_SOURCE_SOLID_FILL:
+ return "solid_fill";
default:
return "";
}
}
+void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned int indent,
+ const struct drm_plane_state *state)
+{
+ drm_printf_indent(p, indent, "r=0x%x\n", state->solid_fill.r);
+ drm_printf_indent(p, indent, "g=0x%x\n", state->solid_fill.g);
+ drm_printf_indent(p, indent, "b=0x%x\n", state->solid_fill.b);
+}
+
/**
* drm_plane_get_damage_clips - Returns damage clips.
* @state: Plane state.
@@ -1000,6 +1000,9 @@ drm_plane_get_damage_clips_count(const struct drm_plane_state *state);
struct drm_mode_rect *
drm_plane_get_damage_clips(const struct drm_plane_state *state);
+void drm_plane_solid_fill_print_info(struct drm_printer *p, unsigned int indent,
+ const struct drm_plane_state *state);
+
int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
unsigned int supported_filters);