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 4/7] drm/i915: Move fbdev functions
Date: Wed, 25 Oct 2023 07:49:17 +0000 [thread overview]
Message-ID: <26299391e5f558ce20e88e93bc988be418769a65.camel@intel.com> (raw)
In-Reply-To: <20230927102808.18650-5-tzimmermann@suse.de>
On Wed, 2023-09-27 at 12:26 +0200, Thomas Zimmermann wrote:
> Move functions within intel_fbdev.c to simplify later updates. Minor
> style fixes to make checkpatch happy, but no functional changes.
>
> v5:
> * style fixes (checkpatch)
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_fbdev.c | 154 ++++++++++---------
> --
> 1 file changed, 77 insertions(+), 77 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c
> b/drivers/gpu/drm/i915/display/intel_fbdev.c
> index 31d0d695d5671..2695c65b55ddc 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
> @@ -545,58 +545,6 @@ static void intel_fbdev_suspend_worker(struct
> work_struct *work)
> true);
> }
>
> -int intel_fbdev_init(struct drm_device *dev)
> -{
> - struct drm_i915_private *dev_priv = to_i915(dev);
> - struct intel_fbdev *ifbdev;
> - int ret;
> -
> - if (drm_WARN_ON(dev, !HAS_DISPLAY(dev_priv)))
> - return -ENODEV;
> -
> - ifbdev = kzalloc(sizeof(struct intel_fbdev), GFP_KERNEL);
> - if (ifbdev == NULL)
> - return -ENOMEM;
> -
> - mutex_init(&ifbdev->hpd_lock);
> - drm_fb_helper_prepare(dev, &ifbdev->helper, 32,
> &intel_fb_helper_funcs);
> -
> - if (intel_fbdev_init_bios(dev, ifbdev))
> - ifbdev->helper.preferred_bpp = ifbdev->preferred_bpp;
> - else
> - ifbdev->preferred_bpp = ifbdev->helper.preferred_bpp;
> -
> - ret = drm_fb_helper_init(dev, &ifbdev->helper);
> - if (ret) {
> - kfree(ifbdev);
> - return ret;
> - }
> -
> - dev_priv->display.fbdev.fbdev = ifbdev;
> - INIT_WORK(&dev_priv->display.fbdev.suspend_work,
> intel_fbdev_suspend_worker);
> -
> - return 0;
> -}
> -
> -static void intel_fbdev_initial_config(void *data, async_cookie_t
> cookie)
> -{
> - struct intel_fbdev *ifbdev = data;
> -
> - /* Due to peculiar init order wrt to hpd handling this is
> separate. */
> - if (drm_fb_helper_initial_config(&ifbdev->helper))
> - intel_fbdev_unregister(to_i915(ifbdev->helper.dev));
> -}
> -
> -void intel_fbdev_initial_config_async(struct drm_i915_private
> *dev_priv)
> -{
> - struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
> -
> - if (!ifbdev)
> - return;
> -
> - ifbdev->cookie = async_schedule(intel_fbdev_initial_config,
> ifbdev);
> -}
> -
> static void intel_fbdev_sync(struct intel_fbdev *ifbdev)
> {
> if (!ifbdev->cookie)
> @@ -607,31 +555,6 @@ static void intel_fbdev_sync(struct intel_fbdev
> *ifbdev)
> ifbdev->cookie = 0;
> }
>
> -void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
> -{
> - struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
> -
> - if (!ifbdev)
> - return;
> -
> - intel_fbdev_set_suspend(&dev_priv->drm,
> FBINFO_STATE_SUSPENDED, true);
> -
> - if (!current_is_async())
> - intel_fbdev_sync(ifbdev);
> -
> - drm_fb_helper_unregister_info(&ifbdev->helper);
> -}
> -
> -void intel_fbdev_fini(struct drm_i915_private *dev_priv)
> -{
> - struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv-
> >display.fbdev.fbdev);
> -
> - if (!ifbdev)
> - return;
> -
> - intel_fbdev_destroy(ifbdev);
> -}
> -
> /* Suspends/resumes fbdev processing of incoming HPD events. When
> resuming HPD
> * processing, fbdev will perform a full connector reprobe if a
> hotplug event
> * was received while HPD was suspended.
> @@ -748,6 +671,83 @@ void intel_fbdev_restore_mode(struct
> drm_i915_private *dev_priv)
> intel_fbdev_invalidate(ifbdev);
> }
>
> +int intel_fbdev_init(struct drm_device *dev)
> +{
> + struct drm_i915_private *dev_priv = to_i915(dev);
> + struct intel_fbdev *ifbdev;
> + int ret;
> +
> + if (drm_WARN_ON(dev, !HAS_DISPLAY(dev_priv)))
> + return -ENODEV;
> +
> + ifbdev = kzalloc(sizeof(*ifbdev), GFP_KERNEL);
> + if (!ifbdev)
> + return -ENOMEM;
> +
> + mutex_init(&ifbdev->hpd_lock);
> + drm_fb_helper_prepare(dev, &ifbdev->helper, 32,
> &intel_fb_helper_funcs);
> +
> + if (intel_fbdev_init_bios(dev, ifbdev))
> + ifbdev->helper.preferred_bpp = ifbdev->preferred_bpp;
> + else
> + ifbdev->preferred_bpp = ifbdev->helper.preferred_bpp;
> +
> + ret = drm_fb_helper_init(dev, &ifbdev->helper);
> + if (ret) {
> + kfree(ifbdev);
> + return ret;
> + }
> +
> + dev_priv->display.fbdev.fbdev = ifbdev;
> + INIT_WORK(&dev_priv->display.fbdev.suspend_work,
> intel_fbdev_suspend_worker);
> +
> + return 0;
> +}
> +
> +static void intel_fbdev_initial_config(void *data, async_cookie_t
> cookie)
> +{
> + struct intel_fbdev *ifbdev = data;
> +
> + /* Due to peculiar init order wrt to hpd handling this is
> separate. */
> + if (drm_fb_helper_initial_config(&ifbdev->helper))
> + intel_fbdev_unregister(to_i915(ifbdev->helper.dev));
> +}
> +
> +void intel_fbdev_initial_config_async(struct drm_i915_private
> *dev_priv)
> +{
> + struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
> +
> + if (!ifbdev)
> + return;
> +
> + ifbdev->cookie = async_schedule(intel_fbdev_initial_config,
> ifbdev);
> +}
> +
> +void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
> +{
> + struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
> +
> + if (!ifbdev)
> + return;
> +
> + intel_fbdev_set_suspend(&dev_priv->drm,
> FBINFO_STATE_SUSPENDED, true);
> +
> + if (!current_is_async())
> + intel_fbdev_sync(ifbdev);
> +
> + drm_fb_helper_unregister_info(&ifbdev->helper);
> +}
> +
> +void intel_fbdev_fini(struct drm_i915_private *dev_priv)
> +{
> + struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv-
> >display.fbdev.fbdev);
> +
> + if (!ifbdev)
> + return;
> +
> + intel_fbdev_destroy(ifbdev);
> +}
> +
> struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbdev
> *fbdev)
> {
> if (!fbdev || !fbdev->helper.fb)
next prev parent reply other threads:[~2023-10-25 7:49 UTC|newest]
Thread overview: 24+ 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 ` [Intel-gfx] [PATCH v5 1/7] drm/i915: Unregister in-kernel clients Thomas Zimmermann
2023-10-25 7:28 ` Hogander, Jouni
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 2/7] drm/client: Do not acquire module reference Thomas Zimmermann
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 ` [Intel-gfx] [PATCH v5 4/7] drm/i915: Move fbdev functions Thomas Zimmermann
2023-10-25 7:49 ` Hogander, Jouni [this message]
2023-09-27 10:26 ` [Intel-gfx] [PATCH v5 5/7] drm/i915: Initialize fbdev DRM client with callback functions Thomas Zimmermann
2023-10-25 8:36 ` Hogander, Jouni
2023-11-01 8:11 ` 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-10-25 9:36 ` 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-10-25 11:36 ` Hogander, Jouni
2023-11-01 8:33 ` Thomas Zimmermann
2023-11-01 9:25 ` Ville Syrjälä
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=26299391e5f558ce20e88e93bc988be418769a65.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox