Message ID | 20230728-solid-fill-v5-0-053dbefa909c@quicinc.com |
---|---|
Headers | show |
Series | Support for Solid Fill Planes | expand |
On 28/07/2023 20:02, Jessica Zhang wrote: > Add pixel source to the atomic plane state dump > > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> > --- > drivers/gpu/drm/drm_atomic.c | 1 + > drivers/gpu/drm/drm_crtc_internal.h | 2 ++ > drivers/gpu/drm/drm_plane.c | 12 ++++++++++++ > 3 files changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > index b4c6ffc438da..c38014abc590 100644 > --- a/drivers/gpu/drm/drm_atomic.c > +++ b/drivers/gpu/drm/drm_atomic.c > @@ -713,6 +713,7 @@ static void drm_atomic_plane_print_state(struct drm_printer *p, > > drm_printf(p, "plane[%u]: %s\n", plane->base.id, plane->name); > drm_printf(p, "\tcrtc=%s\n", state->crtc ? state->crtc->name : "(null)"); > + drm_printf(p, "\tpixel-source=%s\n", drm_plane_get_pixel_source_name(state->pixel_source)); > drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0); > if (state->fb) > drm_framebuffer_print_info(p, 2, state->fb); > diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h > index 501a10edd0e1..75b59ec9f1be 100644 > --- a/drivers/gpu/drm/drm_crtc_internal.h > +++ b/drivers/gpu/drm/drm_crtc_internal.h > @@ -38,6 +38,7 @@ enum drm_color_encoding; > enum drm_color_range; > enum drm_connector_force; > enum drm_mode_status; > +enum drm_plane_pixel_source; > > struct drm_atomic_state; > struct drm_bridge; > @@ -267,6 +268,7 @@ int drm_plane_check_pixel_format(struct drm_plane *plane, > u32 format, u64 modifier); > struct drm_mode_rect * > __drm_plane_get_damage_clips(const struct drm_plane_state *state); > +const char *drm_plane_get_pixel_source_name(enum drm_plane_pixel_source pixel_source); > > /* drm_bridge.c */ > void drm_bridge_detach(struct drm_bridge *bridge); > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c > index f342cf15412b..4188b3491625 100644 > --- a/drivers/gpu/drm/drm_plane.c > +++ b/drivers/gpu/drm/drm_plane.c > @@ -1487,6 +1487,18 @@ __drm_plane_get_damage_clips(const struct drm_plane_state *state) > state->fb_damage_clips->data : NULL); > } > > +const char *drm_plane_get_pixel_source_name(enum drm_plane_pixel_source pixel_source) > +{ > + switch(pixel_source) { > + case DRM_PLANE_PIXEL_SOURCE_NONE: > + return "NONE"; > + case DRM_PLANE_PIXEL_SOURCE_FB: > + return "fb"; > + default: > + return ""; > + } > +} Please use DRM_ENUM_NAME_FN instead. > + > /** > * drm_plane_get_damage_clips - Returns damage clips. > * @state: Plane state. >
On 28/07/2023 20:02, Jessica Zhang wrote: > Add "SOLID_FILL" as a valid pixel source. If the pixel_source property is > set to "SOLID_FILL", it will display data from the drm_plane "solid_fill" > blob property. > > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> > --- > drivers/gpu/drm/drm_blend.c | 10 +++++++++- > include/drm/drm_plane.h | 1 + > 2 files changed, 10 insertions(+), 1 deletion(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c > index c632dfcd8a9b..34b1fd3e2310 100644 > --- a/drivers/gpu/drm/drm_blend.c > +++ b/drivers/gpu/drm/drm_blend.c > @@ -200,6 +200,9 @@ > * "FB": > * Framebuffer source set by the "FB_ID" property. > * > + * "SOLID_FILL": > + * Solid fill color source set by the "solid_fill" property. > + * > * solid_fill: > * solid_fill is set up with drm_plane_create_solid_fill_property(). It > * contains pixel data that drivers can use to fill a plane. > @@ -657,6 +660,9 @@ EXPORT_SYMBOL(drm_plane_create_blend_mode_property); > * "FB": > * Framebuffer pixel source > * > + * "SOLID_FILL": > + * Solid fill color pixel source > + * > * Returns: > * Zero on success, negative errno on failure. > */ > @@ -668,8 +674,10 @@ int drm_plane_create_pixel_source_property(struct drm_plane *plane, > static const struct drm_prop_enum_list enum_list[] = { > { DRM_PLANE_PIXEL_SOURCE_NONE, "NONE" }, > { DRM_PLANE_PIXEL_SOURCE_FB, "FB" }, > + { DRM_PLANE_PIXEL_SOURCE_SOLID_FILL, "SOLID_FILL" }, > }; > - static const unsigned int valid_source_mask = BIT(DRM_PLANE_PIXEL_SOURCE_FB); > + static const unsigned int valid_source_mask = BIT(DRM_PLANE_PIXEL_SOURCE_FB) | > + BIT(DRM_PLANE_PIXEL_SOURCE_SOLID_FILL); > int i; > > /* FB is supported by default */ > diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h > index abf1458fa099..234fee3d5a95 100644 > --- a/include/drm/drm_plane.h > +++ b/include/drm/drm_plane.h > @@ -43,6 +43,7 @@ enum drm_scaling_filter { > enum drm_plane_pixel_source { > DRM_PLANE_PIXEL_SOURCE_NONE, > DRM_PLANE_PIXEL_SOURCE_FB, > + DRM_PLANE_PIXEL_SOURCE_SOLID_FILL, > DRM_PLANE_PIXEL_SOURCE_MAX > }; > >
On 7/28/2023 5:04 PM, Dmitry Baryshkov wrote: > On 28/07/2023 20:02, Jessica Zhang wrote: >> Add pixel source to the atomic plane state dump >> >> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> >> --- >> drivers/gpu/drm/drm_atomic.c | 1 + >> drivers/gpu/drm/drm_crtc_internal.h | 2 ++ >> drivers/gpu/drm/drm_plane.c | 12 ++++++++++++ >> 3 files changed, 15 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c >> index b4c6ffc438da..c38014abc590 100644 >> --- a/drivers/gpu/drm/drm_atomic.c >> +++ b/drivers/gpu/drm/drm_atomic.c >> @@ -713,6 +713,7 @@ static void drm_atomic_plane_print_state(struct >> drm_printer *p, >> drm_printf(p, "plane[%u]: %s\n", plane->base.id, plane->name); >> drm_printf(p, "\tcrtc=%s\n", state->crtc ? state->crtc->name : >> "(null)"); >> + drm_printf(p, "\tpixel-source=%s\n", >> drm_plane_get_pixel_source_name(state->pixel_source)); >> drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0); >> if (state->fb) >> drm_framebuffer_print_info(p, 2, state->fb); >> diff --git a/drivers/gpu/drm/drm_crtc_internal.h >> b/drivers/gpu/drm/drm_crtc_internal.h >> index 501a10edd0e1..75b59ec9f1be 100644 >> --- a/drivers/gpu/drm/drm_crtc_internal.h >> +++ b/drivers/gpu/drm/drm_crtc_internal.h >> @@ -38,6 +38,7 @@ enum drm_color_encoding; >> enum drm_color_range; >> enum drm_connector_force; >> enum drm_mode_status; >> +enum drm_plane_pixel_source; >> struct drm_atomic_state; >> struct drm_bridge; >> @@ -267,6 +268,7 @@ int drm_plane_check_pixel_format(struct drm_plane >> *plane, >> u32 format, u64 modifier); >> struct drm_mode_rect * >> __drm_plane_get_damage_clips(const struct drm_plane_state *state); >> +const char *drm_plane_get_pixel_source_name(enum >> drm_plane_pixel_source pixel_source); >> /* drm_bridge.c */ >> void drm_bridge_detach(struct drm_bridge *bridge); >> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c >> index f342cf15412b..4188b3491625 100644 >> --- a/drivers/gpu/drm/drm_plane.c >> +++ b/drivers/gpu/drm/drm_plane.c >> @@ -1487,6 +1487,18 @@ __drm_plane_get_damage_clips(const struct >> drm_plane_state *state) >> state->fb_damage_clips->data : NULL); >> } >> +const char *drm_plane_get_pixel_source_name(enum >> drm_plane_pixel_source pixel_source) >> +{ >> + switch(pixel_source) { >> + case DRM_PLANE_PIXEL_SOURCE_NONE: >> + return "NONE"; >> + case DRM_PLANE_PIXEL_SOURCE_FB: >> + return "fb"; >> + default: >> + return ""; >> + } >> +} > > Please use DRM_ENUM_NAME_FN instead. Hi Dmitry, Acked. Thanks, Jessica Zhang > >> + >> /** >> * drm_plane_get_damage_clips - Returns damage clips. >> * @state: Plane state. >> > > -- > With best wishes > Dmitry >