@@ -61,14 +61,6 @@ struct intel_fbdev {
61
61
struct i915_vma * vma ;
62
62
unsigned long vma_flags ;
63
63
int preferred_bpp ;
64
-
65
- /* Whether or not fbdev hpd processing is temporarily suspended */
66
- bool hpd_suspended : 1 ;
67
- /* Set when a hotplug was received while HPD processing was suspended */
68
- bool hpd_waiting : 1 ;
69
-
70
- /* Protects hpd_suspended */
71
- struct mutex hpd_lock ;
72
64
};
73
65
74
66
static struct intel_fbdev * to_intel_fbdev (struct drm_fb_helper * fb_helper )
@@ -187,12 +179,6 @@ static int intelfb_create(struct drm_fb_helper *helper,
187
179
struct drm_gem_object * obj ;
188
180
int ret ;
189
181
190
- mutex_lock (& ifbdev -> hpd_lock );
191
- ret = ifbdev -> hpd_suspended ? - EAGAIN : 0 ;
192
- mutex_unlock (& ifbdev -> hpd_lock );
193
- if (ret )
194
- return ret ;
195
-
196
182
ifbdev -> fb = NULL ;
197
183
198
184
if (fb &&
@@ -459,27 +445,6 @@ static void intel_fbdev_suspend_worker(struct work_struct *work)
459
445
true);
460
446
}
461
447
462
- /* Suspends/resumes fbdev processing of incoming HPD events. When resuming HPD
463
- * processing, fbdev will perform a full connector reprobe if a hotplug event
464
- * was received while HPD was suspended.
465
- */
466
- static void intel_fbdev_hpd_set_suspend (struct drm_i915_private * i915 , int state )
467
- {
468
- struct intel_fbdev * ifbdev = i915 -> display .fbdev .fbdev ;
469
- bool send_hpd = false;
470
-
471
- mutex_lock (& ifbdev -> hpd_lock );
472
- ifbdev -> hpd_suspended = state == FBINFO_STATE_SUSPENDED ;
473
- send_hpd = !ifbdev -> hpd_suspended && ifbdev -> hpd_waiting ;
474
- ifbdev -> hpd_waiting = false;
475
- mutex_unlock (& ifbdev -> hpd_lock );
476
-
477
- if (send_hpd ) {
478
- drm_dbg_kms (& i915 -> drm , "Handling delayed fbcon HPD event\n" );
479
- drm_fb_helper_hotplug_event (& ifbdev -> helper );
480
- }
481
- }
482
-
483
448
void intel_fbdev_set_suspend (struct drm_device * dev , int state , bool synchronous )
484
449
{
485
450
struct drm_i915_private * dev_priv = to_i915 (dev );
@@ -493,7 +458,7 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
493
458
return ;
494
459
495
460
if (!ifbdev -> vma )
496
- goto set_suspend ;
461
+ return ;
497
462
498
463
info = ifbdev -> helper .info ;
499
464
@@ -536,28 +501,6 @@ void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous
536
501
537
502
drm_fb_helper_set_suspend (& ifbdev -> helper , state );
538
503
console_unlock ();
539
-
540
- set_suspend :
541
- intel_fbdev_hpd_set_suspend (dev_priv , state );
542
- }
543
-
544
- static int intel_fbdev_output_poll_changed (struct drm_device * dev )
545
- {
546
- struct intel_fbdev * ifbdev = to_i915 (dev )-> display .fbdev .fbdev ;
547
- bool send_hpd ;
548
-
549
- if (!ifbdev )
550
- return - EINVAL ;
551
-
552
- mutex_lock (& ifbdev -> hpd_lock );
553
- send_hpd = !ifbdev -> hpd_suspended ;
554
- ifbdev -> hpd_waiting = true;
555
- mutex_unlock (& ifbdev -> hpd_lock );
556
-
557
- if (send_hpd && (ifbdev -> vma || ifbdev -> helper .deferred_setup ))
558
- drm_fb_helper_hotplug_event (& ifbdev -> helper );
559
-
560
- return 0 ;
561
504
}
562
505
563
506
static int intel_fbdev_restore_mode (struct drm_i915_private * dev_priv )
@@ -622,7 +565,7 @@ static int intel_fbdev_client_hotplug(struct drm_client_dev *client)
622
565
int ret ;
623
566
624
567
if (dev -> fb_helper )
625
- return intel_fbdev_output_poll_changed (dev );
568
+ return drm_fb_helper_hotplug_event (dev -> fb_helper );
626
569
627
570
ret = drm_fb_helper_init (dev , fb_helper );
628
571
if (ret )
@@ -682,7 +625,6 @@ void intel_fbdev_setup(struct drm_i915_private *i915)
682
625
683
626
i915 -> display .fbdev .fbdev = ifbdev ;
684
627
INIT_WORK (& i915 -> display .fbdev .suspend_work , intel_fbdev_suspend_worker );
685
- mutex_init (& ifbdev -> hpd_lock );
686
628
if (intel_fbdev_init_bios (dev , ifbdev ))
687
629
ifbdev -> helper .preferred_bpp = ifbdev -> preferred_bpp ;
688
630
else
@@ -701,7 +643,6 @@ void intel_fbdev_setup(struct drm_i915_private *i915)
701
643
702
644
err_drm_fb_helper_unprepare :
703
645
drm_fb_helper_unprepare (& ifbdev -> helper );
704
- mutex_destroy (& ifbdev -> hpd_lock );
705
646
kfree (ifbdev );
706
647
}
707
648
0 commit comments