Skip to content

Commit 7d4e13b

Browse files
Thomas Zimmermannjnikula
authored andcommitted
drm/i915: Move fbdev functions
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 <[email protected]> Reviewed-by: Jouni Högander <[email protected]> Acked-by: Lucas De Marchi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Jani Nikula <[email protected]>
1 parent acc29d5 commit 7d4e13b

File tree

1 file changed

+77
-77
lines changed

1 file changed

+77
-77
lines changed

drivers/gpu/drm/i915/display/intel_fbdev.c

Lines changed: 77 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -458,58 +458,6 @@ static void intel_fbdev_suspend_worker(struct work_struct *work)
458458
true);
459459
}
460460

461-
int intel_fbdev_init(struct drm_device *dev)
462-
{
463-
struct drm_i915_private *dev_priv = to_i915(dev);
464-
struct intel_fbdev *ifbdev;
465-
int ret;
466-
467-
if (drm_WARN_ON(dev, !HAS_DISPLAY(dev_priv)))
468-
return -ENODEV;
469-
470-
ifbdev = kzalloc(sizeof(struct intel_fbdev), GFP_KERNEL);
471-
if (ifbdev == NULL)
472-
return -ENOMEM;
473-
474-
mutex_init(&ifbdev->hpd_lock);
475-
drm_fb_helper_prepare(dev, &ifbdev->helper, 32, &intel_fb_helper_funcs);
476-
477-
if (intel_fbdev_init_bios(dev, ifbdev))
478-
ifbdev->helper.preferred_bpp = ifbdev->preferred_bpp;
479-
else
480-
ifbdev->preferred_bpp = ifbdev->helper.preferred_bpp;
481-
482-
ret = drm_fb_helper_init(dev, &ifbdev->helper);
483-
if (ret) {
484-
kfree(ifbdev);
485-
return ret;
486-
}
487-
488-
dev_priv->display.fbdev.fbdev = ifbdev;
489-
INIT_WORK(&dev_priv->display.fbdev.suspend_work, intel_fbdev_suspend_worker);
490-
491-
return 0;
492-
}
493-
494-
static void intel_fbdev_initial_config(void *data, async_cookie_t cookie)
495-
{
496-
struct intel_fbdev *ifbdev = data;
497-
498-
/* Due to peculiar init order wrt to hpd handling this is separate. */
499-
if (drm_fb_helper_initial_config(&ifbdev->helper))
500-
intel_fbdev_unregister(to_i915(ifbdev->helper.dev));
501-
}
502-
503-
void intel_fbdev_initial_config_async(struct drm_i915_private *dev_priv)
504-
{
505-
struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
506-
507-
if (!ifbdev)
508-
return;
509-
510-
ifbdev->cookie = async_schedule(intel_fbdev_initial_config, ifbdev);
511-
}
512-
513461
static void intel_fbdev_sync(struct intel_fbdev *ifbdev)
514462
{
515463
if (!ifbdev->cookie)
@@ -520,31 +468,6 @@ static void intel_fbdev_sync(struct intel_fbdev *ifbdev)
520468
ifbdev->cookie = 0;
521469
}
522470

523-
void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
524-
{
525-
struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
526-
527-
if (!ifbdev)
528-
return;
529-
530-
intel_fbdev_set_suspend(&dev_priv->drm, FBINFO_STATE_SUSPENDED, true);
531-
532-
if (!current_is_async())
533-
intel_fbdev_sync(ifbdev);
534-
535-
drm_fb_helper_unregister_info(&ifbdev->helper);
536-
}
537-
538-
void intel_fbdev_fini(struct drm_i915_private *dev_priv)
539-
{
540-
struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->display.fbdev.fbdev);
541-
542-
if (!ifbdev)
543-
return;
544-
545-
intel_fbdev_destroy(ifbdev);
546-
}
547-
548471
/* Suspends/resumes fbdev processing of incoming HPD events. When resuming HPD
549472
* processing, fbdev will perform a full connector reprobe if a hotplug event
550473
* was received while HPD was suspended.
@@ -661,6 +584,83 @@ void intel_fbdev_restore_mode(struct drm_i915_private *dev_priv)
661584
intel_fbdev_invalidate(ifbdev);
662585
}
663586

587+
int intel_fbdev_init(struct drm_device *dev)
588+
{
589+
struct drm_i915_private *dev_priv = to_i915(dev);
590+
struct intel_fbdev *ifbdev;
591+
int ret;
592+
593+
if (drm_WARN_ON(dev, !HAS_DISPLAY(dev_priv)))
594+
return -ENODEV;
595+
596+
ifbdev = kzalloc(sizeof(*ifbdev), GFP_KERNEL);
597+
if (!ifbdev)
598+
return -ENOMEM;
599+
600+
mutex_init(&ifbdev->hpd_lock);
601+
drm_fb_helper_prepare(dev, &ifbdev->helper, 32, &intel_fb_helper_funcs);
602+
603+
if (intel_fbdev_init_bios(dev, ifbdev))
604+
ifbdev->helper.preferred_bpp = ifbdev->preferred_bpp;
605+
else
606+
ifbdev->preferred_bpp = ifbdev->helper.preferred_bpp;
607+
608+
ret = drm_fb_helper_init(dev, &ifbdev->helper);
609+
if (ret) {
610+
kfree(ifbdev);
611+
return ret;
612+
}
613+
614+
dev_priv->display.fbdev.fbdev = ifbdev;
615+
INIT_WORK(&dev_priv->display.fbdev.suspend_work, intel_fbdev_suspend_worker);
616+
617+
return 0;
618+
}
619+
620+
static void intel_fbdev_initial_config(void *data, async_cookie_t cookie)
621+
{
622+
struct intel_fbdev *ifbdev = data;
623+
624+
/* Due to peculiar init order wrt to hpd handling this is separate. */
625+
if (drm_fb_helper_initial_config(&ifbdev->helper))
626+
intel_fbdev_unregister(to_i915(ifbdev->helper.dev));
627+
}
628+
629+
void intel_fbdev_initial_config_async(struct drm_i915_private *dev_priv)
630+
{
631+
struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
632+
633+
if (!ifbdev)
634+
return;
635+
636+
ifbdev->cookie = async_schedule(intel_fbdev_initial_config, ifbdev);
637+
}
638+
639+
void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
640+
{
641+
struct intel_fbdev *ifbdev = dev_priv->display.fbdev.fbdev;
642+
643+
if (!ifbdev)
644+
return;
645+
646+
intel_fbdev_set_suspend(&dev_priv->drm, FBINFO_STATE_SUSPENDED, true);
647+
648+
if (!current_is_async())
649+
intel_fbdev_sync(ifbdev);
650+
651+
drm_fb_helper_unregister_info(&ifbdev->helper);
652+
}
653+
654+
void intel_fbdev_fini(struct drm_i915_private *dev_priv)
655+
{
656+
struct intel_fbdev *ifbdev = fetch_and_zero(&dev_priv->display.fbdev.fbdev);
657+
658+
if (!ifbdev)
659+
return;
660+
661+
intel_fbdev_destroy(ifbdev);
662+
}
663+
664664
struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbdev *fbdev)
665665
{
666666
if (!fbdev || !fbdev->helper.fb)

0 commit comments

Comments
 (0)