On Thu, 30 Mar 2023 at 10:41, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > > Initialize the fbdev client in the fbdev code with empty helper > functions. Also clean up the client. The helpers will later > implement various functionality of the DRM client. No functional > changes. > > Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > --- > drivers/gpu/drm/msm/msm_fbdev.c | 38 +++++++++++++++++++++++++++++++-- > 1 file changed, 36 insertions(+), 2 deletions(-) With the nit below fixed: Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c > index 95b193a5e0d5..6c3665c5f4f6 100644 > --- a/drivers/gpu/drm/msm/msm_fbdev.c > +++ b/drivers/gpu/drm/msm/msm_fbdev.c > @@ -119,6 +119,30 @@ static const struct drm_fb_helper_funcs msm_fb_helper_funcs = { > .fb_probe = msm_fbdev_create, > }; > > +/* > + * struct drm_client > + */ > + > +static void msm_fbdev_client_unregister(struct drm_client_dev *client) > +{ } > + > +static int msm_fbdev_client_restore(struct drm_client_dev *client) > +{ > + return 0; > +} > + > +static int msm_fbdev_client_hotplug(struct drm_client_dev *client) > +{ > + return 0; > +} > + > +static const struct drm_client_funcs msm_fbdev_client_funcs = { > + .owner = THIS_MODULE, > + .unregister = msm_fbdev_client_unregister, > + .restore = msm_fbdev_client_restore, > + .hotplug = msm_fbdev_client_hotplug, > +}; > + > /* initialize fbdev helper */ > struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev) > { > @@ -131,10 +155,16 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev) > > drm_fb_helper_prepare(dev, helper, 32, &msm_fb_helper_funcs); > > + ret = drm_client_init(dev, &helper->client, "fbdev", &msm_fbdev_client_funcs); > + if (ret) { > + drm_err(dev, "Failed to register client: %d\n", ret); > + goto err_drm_fb_helper_unprepare; > + } > + > ret = drm_fb_helper_init(dev, helper); > if (ret) { > DRM_DEV_ERROR(dev->dev, "could not init fbdev: ret=%d\n", ret); > - goto fail; > + goto err_drm_client_release; > } > > ret = drm_fb_helper_initial_config(helper); > @@ -145,8 +175,11 @@ struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev) > > fini: > drm_fb_helper_fini(helper); > -fail: > +err_drm_client_release: > + drm_client_release(&helper->client); > +err_drm_fb_helper_unprepare: > drm_fb_helper_unprepare(helper); > + kfree(helper); This one should go to the patch 3 > return NULL; > } > > @@ -168,6 +201,7 @@ void msm_fbdev_free(struct drm_device *dev) > drm_framebuffer_remove(fb); > } > > + drm_client_release(&helper->client); > drm_fb_helper_unprepare(helper); > kfree(helper); > > -- > 2.40.0 > -- With best wishes Dmitry