On Fri, Sep 4, 2020 at 4:40 PM Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > > Upcasting using a container_of macro is more typesafe, faster and > easier for the compiler to optimize. > > Cc: Eugeniy Paltsev <Eugeniy.Paltsev@xxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > Cc: Alexey Brodkin <abrodkin@xxxxxxxxxxxx> >From the old thread Sam just confirmed he's ok with dev_to_arcpgu: Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx> Cheers, Daniel > --- > drivers/gpu/drm/arc/arcpgu.h | 2 ++ > drivers/gpu/drm/arc/arcpgu_crtc.c | 4 ++-- > drivers/gpu/drm/arc/arcpgu_drv.c | 4 +--- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu.h b/drivers/gpu/drm/arc/arcpgu.h > index cd9e932f501e..87821c91a00c 100644 > --- a/drivers/gpu/drm/arc/arcpgu.h > +++ b/drivers/gpu/drm/arc/arcpgu.h > @@ -17,6 +17,8 @@ struct arcpgu_drm_private { > struct drm_plane *plane; > }; > > +#define dev_to_arcpgu(x) container_of(x, struct arcpgu_drm_private, drm) > + > #define crtc_to_arcpgu_priv(x) container_of(x, struct arcpgu_drm_private, crtc) > > static inline void arc_pgu_write(struct arcpgu_drm_private *arcpgu, > diff --git a/drivers/gpu/drm/arc/arcpgu_crtc.c b/drivers/gpu/drm/arc/arcpgu_crtc.c > index be7c29cec318..ba796a216244 100644 > --- a/drivers/gpu/drm/arc/arcpgu_crtc.c > +++ b/drivers/gpu/drm/arc/arcpgu_crtc.c > @@ -178,7 +178,7 @@ static const struct drm_plane_funcs arc_pgu_plane_funcs = { > > static struct drm_plane *arc_pgu_plane_init(struct drm_device *drm) > { > - struct arcpgu_drm_private *arcpgu = drm->dev_private; > + struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm); > struct drm_plane *plane = NULL; > int ret; > > @@ -202,7 +202,7 @@ static struct drm_plane *arc_pgu_plane_init(struct drm_device *drm) > > int arc_pgu_setup_crtc(struct drm_device *drm) > { > - struct arcpgu_drm_private *arcpgu = drm->dev_private; > + struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm); > struct drm_plane *primary; > int ret; > > diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c > index 68eb4a31c54b..c6a8deb56b0f 100644 > --- a/drivers/gpu/drm/arc/arcpgu_drv.c > +++ b/drivers/gpu/drm/arc/arcpgu_drv.c > @@ -50,8 +50,6 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu) > struct resource *res; > int ret; > > - drm->dev_private = arcpgu; > - > arcpgu->clk = devm_clk_get(drm->dev, "pxlclk"); > if (IS_ERR(arcpgu->clk)) > return PTR_ERR(arcpgu->clk); > @@ -120,7 +118,7 @@ static int arcpgu_show_pxlclock(struct seq_file *m, void *arg) > { > struct drm_info_node *node = (struct drm_info_node *)m->private; > struct drm_device *drm = node->minor->dev; > - struct arcpgu_drm_private *arcpgu = drm->dev_private; > + struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm); > unsigned long clkrate = clk_get_rate(arcpgu->clk); > unsigned long mode_clock = arcpgu->crtc.mode.crtc_clock * 1000; > > -- > 2.28.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx