[PATCH 4/5] drm/msm/dpu: Initialize supported modifiers

Sean Paul sean at poorly.run
Wed Dec 12 20:35:47 UTC 2018


On Wed, Dec 12, 2018 at 10:02:26AM -0800, Fritz Koenig wrote:
> On Wed, Dec 12, 2018 at 8:12 AM Sean Paul <sean at poorly.run> wrote:
> >
> > On Tue, Dec 11, 2018 at 10:42:23AM -0800, Fritz Koenig wrote:
> > > Pass list of supported modifiers to plane init.
> > >
> > > Signed-off-by: Fritz Koenig <frkoenig at google.com>
> > > ---
> > >  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> > > index 9381c8af76d7..d2d4720f6f8c 100644
> > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
> > > @@ -119,6 +119,12 @@ struct dpu_plane {
> > >       bool debugfs_default_scale;
> > >  };
> > >
> > > +static const uint64_t supported_format_modifiers[] = {
> > > +     DRM_FORMAT_MOD_QCOM_COMPRESSED,
> >
> > Did you confirm that all the planes support this?
> >
> 
> I have not confirmed that all planes support this.  My testing has
> been mostly with null_platform_test.  There are a few comments on in
> the code that seem to indicate to me that the same modifier must be
> used on all planes.
> 
> from dpu_formats.c
> /*
> * Currently only support exactly zero or one modifier.
> * All planes use the same modifier.
> */
> 
> from dpu_hw_catalog.h
> /**
>  * struct dpu_format_extended - define dpu specific pixel format+modifier
>  * @fourcc_format: Base FOURCC pixel format code
>  * @modifier: 64-bit drm format modifier, same modifier must be applied to all
>  *            framebuffer planes
>  */

Ah cool, that's good enough for me. I'll pick these into dpu-staging.

Sean

> 
> > Change is
> >
> > Reviewed-by: Sean Paul <sean at poorly.run>
> >
> >
> > > +     DRM_FORMAT_MOD_LINEAR,
> > > +     DRM_FORMAT_MOD_INVALID
> > > +};
> > > +
> > >  #define to_dpu_plane(x) container_of(x, struct dpu_plane, base)
> > >
> > >  static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane)
> > > @@ -1521,7 +1527,7 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev,
> > >
> > >       ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs,
> > >                               format_list, num_formats,
> > > -                             NULL, type, NULL);
> > > +                             supported_format_modifiers, type, NULL);
> > >       if (ret)
> > >               goto clean_sspp;
> > >
> > > --
> > > 2.20.0.rc2.403.gdbc3b29805-goog
> > >
> >
> > --
> > Sean Paul, Software Engineer, Google / Chromium OS

-- 
Sean Paul, Software Engineer, Google / Chromium OS


More information about the dri-devel mailing list