Message ID | 20230828-solid-fill-v6-3-a820efcce852@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support for Solid Fill Planes | expand |
On Mon, 28 Aug 2023 17:05:09 -0700 Jessica Zhang <quic_jesszhan@quicinc.com> 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. > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > 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(-) > > diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c > index 273021cc21c8..1016a206ca0c 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. > @@ -638,6 +641,7 @@ EXPORT_SYMBOL(drm_plane_create_blend_mode_property); > static const struct drm_prop_enum_list drm_pixel_source_enum_list[] = { > { DRM_PLANE_PIXEL_SOURCE_NONE, "NONE" }, > { DRM_PLANE_PIXEL_SOURCE_FB, "FB" }, > + { DRM_PLANE_PIXEL_SOURCE_SOLID_FILL, "SOLID_FILL" }, > }; > > /** > @@ -662,6 +666,9 @@ static const struct drm_prop_enum_list drm_pixel_source_enum_list[] = { > * "FB": > * Framebuffer pixel source > * > + * "SOLID_FILL": > + * Solid fill color pixel source > + * > * Returns: > * Zero on success, negative errno on failure. > */ > @@ -671,7 +678,8 @@ int drm_plane_create_pixel_source_property(struct drm_plane *plane, > struct drm_device *dev = plane->dev; > struct drm_property *prop; > static const unsigned int valid_source_mask = BIT(DRM_PLANE_PIXEL_SOURCE_FB) | > - BIT(DRM_PLANE_PIXEL_SOURCE_NONE); > + BIT(DRM_PLANE_PIXEL_SOURCE_NONE) | > + 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 a38e18bfb43e..49995c4be2ab 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 > }; > > This UAPI: Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Thanks, pq
diff --git a/drivers/gpu/drm/drm_blend.c b/drivers/gpu/drm/drm_blend.c index 273021cc21c8..1016a206ca0c 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. @@ -638,6 +641,7 @@ EXPORT_SYMBOL(drm_plane_create_blend_mode_property); static const struct drm_prop_enum_list drm_pixel_source_enum_list[] = { { DRM_PLANE_PIXEL_SOURCE_NONE, "NONE" }, { DRM_PLANE_PIXEL_SOURCE_FB, "FB" }, + { DRM_PLANE_PIXEL_SOURCE_SOLID_FILL, "SOLID_FILL" }, }; /** @@ -662,6 +666,9 @@ static const struct drm_prop_enum_list drm_pixel_source_enum_list[] = { * "FB": * Framebuffer pixel source * + * "SOLID_FILL": + * Solid fill color pixel source + * * Returns: * Zero on success, negative errno on failure. */ @@ -671,7 +678,8 @@ int drm_plane_create_pixel_source_property(struct drm_plane *plane, struct drm_device *dev = plane->dev; struct drm_property *prop; static const unsigned int valid_source_mask = BIT(DRM_PLANE_PIXEL_SOURCE_FB) | - BIT(DRM_PLANE_PIXEL_SOURCE_NONE); + BIT(DRM_PLANE_PIXEL_SOURCE_NONE) | + 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 a38e18bfb43e..49995c4be2ab 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 };