Message ID | 20200415074034.175360-23-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | devm_drm_dev_alloc, v2 | expand |
Hi, On 4/15/20 9:39 AM, Daniel Vetter wrote: > Upcasting using a container_of macro is more typesafe, faster and > easier for the compiler to optimize. > > Acked-by: Sam Ravnborg <sam@ravnborg.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > Cc: Hans de Goede <hdegoede@redhat.com> LGTM: Reviewed-by: Hans de Goede <hdegoede@redhat.com> Regards, Hans > --- > drivers/gpu/drm/tiny/gm12u320.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/tiny/gm12u320.c b/drivers/gpu/drm/tiny/gm12u320.c > index 907739a67bf6..cc397671f689 100644 > --- a/drivers/gpu/drm/tiny/gm12u320.c > +++ b/drivers/gpu/drm/tiny/gm12u320.c > @@ -98,6 +98,8 @@ struct gm12u320_device { > } fb_update; > }; > > +#define to_gm12u320(__dev) container_of(__dev, struct gm12u320_device, dev) > + > static const char cmd_data[CMD_SIZE] = { > 0x55, 0x53, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, > 0x68, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x10, 0xff, > @@ -408,7 +410,7 @@ static void gm12u320_fb_update_work(struct work_struct *work) > static void gm12u320_fb_mark_dirty(struct drm_framebuffer *fb, > struct drm_rect *dirty) > { > - struct gm12u320_device *gm12u320 = fb->dev->dev_private; > + struct gm12u320_device *gm12u320 = to_gm12u320(fb->dev); > struct drm_framebuffer *old_fb = NULL; > bool wakeup = false; > > @@ -558,7 +560,7 @@ static void gm12u320_pipe_enable(struct drm_simple_display_pipe *pipe, > struct drm_plane_state *plane_state) > { > struct drm_rect rect = { 0, 0, GM12U320_USER_WIDTH, GM12U320_HEIGHT }; > - struct gm12u320_device *gm12u320 = pipe->crtc.dev->dev_private; > + struct gm12u320_device *gm12u320 = to_gm12u320(pipe->crtc.dev); > > gm12u320->fb_update.draw_status_timeout = FIRST_FRAME_TIMEOUT; > gm12u320_fb_mark_dirty(plane_state->fb, &rect); > @@ -566,7 +568,7 @@ static void gm12u320_pipe_enable(struct drm_simple_display_pipe *pipe, > > static void gm12u320_pipe_disable(struct drm_simple_display_pipe *pipe) > { > - struct gm12u320_device *gm12u320 = pipe->crtc.dev->dev_private; > + struct gm12u320_device *gm12u320 = to_gm12u320(pipe->crtc.dev); > > gm12u320_stop_fb_update(gm12u320); > } > @@ -641,7 +643,6 @@ static int gm12u320_usb_probe(struct usb_interface *interface, > mutex_init(&gm12u320->fb_update.lock); > > dev = &gm12u320->dev; > - dev->dev_private = gm12u320; > > ret = drmm_mode_config_init(dev); > if (ret) > @@ -706,7 +707,7 @@ static __maybe_unused int gm12u320_suspend(struct usb_interface *interface, > static __maybe_unused int gm12u320_resume(struct usb_interface *interface) > { > struct drm_device *dev = usb_get_intfdata(interface); > - struct gm12u320_device *gm12u320 = dev->dev_private; > + struct gm12u320_device *gm12u320 = to_gm12u320(dev); > > gm12u320_set_ecomode(gm12u320); > >
diff --git a/drivers/gpu/drm/tiny/gm12u320.c b/drivers/gpu/drm/tiny/gm12u320.c index 907739a67bf6..cc397671f689 100644 --- a/drivers/gpu/drm/tiny/gm12u320.c +++ b/drivers/gpu/drm/tiny/gm12u320.c @@ -98,6 +98,8 @@ struct gm12u320_device { } fb_update; }; +#define to_gm12u320(__dev) container_of(__dev, struct gm12u320_device, dev) + static const char cmd_data[CMD_SIZE] = { 0x55, 0x53, 0x42, 0x43, 0x00, 0x00, 0x00, 0x00, 0x68, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x10, 0xff, @@ -408,7 +410,7 @@ static void gm12u320_fb_update_work(struct work_struct *work) static void gm12u320_fb_mark_dirty(struct drm_framebuffer *fb, struct drm_rect *dirty) { - struct gm12u320_device *gm12u320 = fb->dev->dev_private; + struct gm12u320_device *gm12u320 = to_gm12u320(fb->dev); struct drm_framebuffer *old_fb = NULL; bool wakeup = false; @@ -558,7 +560,7 @@ static void gm12u320_pipe_enable(struct drm_simple_display_pipe *pipe, struct drm_plane_state *plane_state) { struct drm_rect rect = { 0, 0, GM12U320_USER_WIDTH, GM12U320_HEIGHT }; - struct gm12u320_device *gm12u320 = pipe->crtc.dev->dev_private; + struct gm12u320_device *gm12u320 = to_gm12u320(pipe->crtc.dev); gm12u320->fb_update.draw_status_timeout = FIRST_FRAME_TIMEOUT; gm12u320_fb_mark_dirty(plane_state->fb, &rect); @@ -566,7 +568,7 @@ static void gm12u320_pipe_enable(struct drm_simple_display_pipe *pipe, static void gm12u320_pipe_disable(struct drm_simple_display_pipe *pipe) { - struct gm12u320_device *gm12u320 = pipe->crtc.dev->dev_private; + struct gm12u320_device *gm12u320 = to_gm12u320(pipe->crtc.dev); gm12u320_stop_fb_update(gm12u320); } @@ -641,7 +643,6 @@ static int gm12u320_usb_probe(struct usb_interface *interface, mutex_init(&gm12u320->fb_update.lock); dev = &gm12u320->dev; - dev->dev_private = gm12u320; ret = drmm_mode_config_init(dev); if (ret) @@ -706,7 +707,7 @@ static __maybe_unused int gm12u320_suspend(struct usb_interface *interface, static __maybe_unused int gm12u320_resume(struct usb_interface *interface) { struct drm_device *dev = usb_get_intfdata(interface); - struct gm12u320_device *gm12u320 = dev->dev_private; + struct gm12u320_device *gm12u320 = to_gm12u320(dev); gm12u320_set_ecomode(gm12u320);