From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "Upadhyay, Tejas" <tejas.upadhyay@intel.com>,
"tzimmermann@suse.de" <tzimmermann@suse.de>,
"ville.syrjala@linux.intel.com" <ville.syrjala@linux.intel.com>,
"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
"joonas.lahtinen@linux.intel.com"
<joonas.lahtinen@linux.intel.com>,
"javierm@redhat.com" <javierm@redhat.com>,
"tvrtko.ursulin@linux.intel.com" <tvrtko.ursulin@linux.intel.com>,
"Deak, Imre" <imre.deak@intel.com>,
"airlied@gmail.com" <airlied@gmail.com>,
"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>,
"daniel@ffwll.ch" <daniel@ffwll.ch>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH v5 5/7] drm/i915: Initialize fbdev DRM client with callback functions
Date: Wed, 25 Oct 2023 08:36:52 +0000 [thread overview]
Message-ID: <62b2e622370df7557ea7d98ea65eaf2c5a09bb6e.camel@intel.com> (raw)
In-Reply-To: <20230927102808.18650-6-tzimmermann@suse.de>
Hi Thomas, One minor comment inline below.
On Wed, 2023-09-27 at 12:26 +0200, Thomas Zimmermann wrote:
> Initialize i915's fbdev client by giving an instance of struct
> drm_client_funcs to drm_client_init(). Also clean up with
> drm_client_release().
>
> Doing this in i915 prevents fbdev helpers from initializing and
> releasing the client internally (see drm_fb_helper_init()). No
> functional change yet; the client callbacks will be filled later.
>
> v2:
> * call drm_fb_helper_unprepare() in error handling (Jani)
> * fix typo in commit message (Sam)
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
> drivers/gpu/drm/i915/display/intel_fbdev.c | 43
> ++++++++++++++++++++--
> 1 file changed, 39 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c
> b/drivers/gpu/drm/i915/display/intel_fbdev.c
> index 2695c65b55ddc..d9e69471a782a 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
> @@ -378,6 +378,7 @@ static void intel_fbdev_destroy(struct
> intel_fbdev *ifbdev)
> if (ifbdev->fb)
> drm_framebuffer_remove(&ifbdev->fb->base);
>
> + drm_client_release(&ifbdev->helper.client);
> drm_fb_helper_unprepare(&ifbdev->helper);
> kfree(ifbdev);
> }
> @@ -671,6 +672,30 @@ void intel_fbdev_restore_mode(struct
> drm_i915_private *dev_priv)
> intel_fbdev_invalidate(ifbdev);
> }
>
> +/*
> + * Fbdev client and struct drm_client_funcs
> + */
> +
> +static void intel_fbdev_client_unregister(struct drm_client_dev
> *client)
> +{ }
> +
> +static int intel_fbdev_client_restore(struct drm_client_dev *client)
> +{
> + return 0;
> +}
> +
> +static int intel_fbdev_client_hotplug(struct drm_client_dev *client)
> +{
> + return 0;
> +}
> +
> +static const struct drm_client_funcs intel_fbdev_client_funcs = {
> + .owner = THIS_MODULE,
> + .unregister = intel_fbdev_client_unregister,
> + .restore = intel_fbdev_client_restore,
> + .hotplug = intel_fbdev_client_hotplug,
> +};
> +
> int intel_fbdev_init(struct drm_device *dev)
> {
> struct drm_i915_private *dev_priv = to_i915(dev);
> @@ -692,16 +717,26 @@ int intel_fbdev_init(struct drm_device *dev)
> else
> ifbdev->preferred_bpp = ifbdev->helper.preferred_bpp;
>
> + ret = drm_client_init(dev, &ifbdev->helper.client, "i915-
> fbdev",
We are currently working on new driver named as Xe. Due to this it
might actually make sense to use intel-fbdev here rather than i915-
fbdev.
BR,
Jouni Högander
> + &intel_fbdev_client_funcs);
> + if (ret)
> + goto err_drm_fb_helper_unprepare;
> +
> ret = drm_fb_helper_init(dev, &ifbdev->helper);
> - if (ret) {
> - kfree(ifbdev);
> - return ret;
> - }
> + if (ret)
> + goto err_drm_client_release;
>
> dev_priv->display.fbdev.fbdev = ifbdev;
> INIT_WORK(&dev_priv->display.fbdev.suspend_work,
> intel_fbdev_suspend_worker);
>
> return 0;
> +
> +err_drm_client_release:
> + drm_client_release(&ifbdev->helper.client);
> +err_drm_fb_helper_unprepare:
> + drm_fb_helper_unprepare(&ifbdev->helper);
> + kfree(ifbdev);
> + return ret;
> }
>
> static void intel_fbdev_initial_config(void *data, async_cookie_t
> cookie)
next prev parent reply other threads:[~2023-10-25 8:36 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-27 10:26 [Intel-gfx] [PATCH v5 0/7] drm/i915: Convert fbdev to DRM client Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 1/7] drm/i915: Unregister in-kernel clients Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-10-25 7:28 ` [Intel-gfx] " Hogander, Jouni
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 2/7] drm/client: Do not acquire module reference Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-11-01 12:01 ` [Intel-gfx] " Javier Martinez Canillas
2023-11-01 12:01 ` Javier Martinez Canillas
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 3/7] drm/client: Export drm_client_dev_unregister() Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 4/7] drm/i915: Move fbdev functions Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-10-25 7:49 ` [Intel-gfx] " Hogander, Jouni
2023-10-25 7:49 ` Hogander, Jouni
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 5/7] drm/i915: Initialize fbdev DRM client with callback functions Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-10-25 8:36 ` Hogander, Jouni [this message]
2023-11-01 8:11 ` [Intel-gfx] " Thomas Zimmermann
2023-11-01 9:10 ` Hogander, Jouni
2023-11-01 9:32 ` Thomas Zimmermann
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 6/7] drm/i915: Implement fbdev client callbacks Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-10-25 9:36 ` [Intel-gfx] " Hogander, Jouni
2023-11-01 8:26 ` Thomas Zimmermann
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 7/7] drm/i915: Implement fbdev emulation as in-kernel client Thomas Zimmermann
2023-09-27 10:26 ` Thomas Zimmermann
2023-10-25 11:36 ` [Intel-gfx] " Hogander, Jouni
2023-10-25 11:36 ` Hogander, Jouni
2023-11-01 8:33 ` [Intel-gfx] " Thomas Zimmermann
2023-11-01 8:33 ` Thomas Zimmermann
2023-11-01 9:25 ` [Intel-gfx] " Ville Syrjälä
2023-11-01 9:25 ` Ville Syrjälä
2023-11-01 9:35 ` [Intel-gfx] " Thomas Zimmermann
2023-11-01 9:35 ` Thomas Zimmermann
2023-09-27 18:52 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Convert fbdev to DRM client (rev5) Patchwork
2023-09-27 19:06 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-09-28 7:32 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=62b2e622370df7557ea7d98ea65eaf2c5a09bb6e.camel@intel.com \
--to=jouni.hogander@intel.com \
--cc=airlied@gmail.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=javierm@redhat.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=tejas.upadhyay@intel.com \
--cc=tvrtko.ursulin@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.