[Freedreno] [PATCH 5/6] drm/msm: Initialize fbdev DRM client
Dmitry Baryshkov
dmitry.baryshkov at linaro.org
Thu Mar 30 10:05:18 UTC 2023
On Thu, 30 Mar 2023 at 10:41, Thomas Zimmermann <tzimmermann at suse.de> 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 at suse.de>
> ---
> 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 at linaro.org>
>
> 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
More information about the Freedreno
mailing list