Message ID | 20230927102808.18650-5-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Convert fbdev to DRM client | expand |
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)
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)
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> --- drivers/gpu/drm/i915/display/intel_fbdev.c | 154 ++++++++++----------- 1 file changed, 77 insertions(+), 77 deletions(-)