Re: [PATCH 5/6] drm/msm: Initialize fbdev DRM client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux