APPLIED[J]: [PATCH 0/3 V2][SRU][U] Fix System hangs on black screen when reboot
Andrea Righi
andrea.righi at canonical.com
Wed Dec 15 14:51:40 UTC 2021
On Wed, Dec 15, 2021 at 12:11:20PM +0800, Koba Ko wrote:
> BugLink: https://bugs.launchpad.net/bugs/1949321
>
> [Impact]
> System hangs on black screen when reboot
>
> [Fix]
> Looks like our VBIOS/GOP generally fail to turn the DP dual mode adater
> TMDS output buffers back on after a reboot. This leads to a black screen
> after reboot if we turned the TMDS output buffers off prior to reboot.
> And if i915 decides to do a fastboot the black screen will persist even
> after i915 takes over.
>
> Apparently this has been a problem ever since commit b2ccb822d376 ("drm/i915:Enable/disable TMDS output buffers in DP++ adaptor as needed") if one rebooted while the display was turned off. And things became worse with commit fe0f1e3bfdfe ("drm/i915: Shut down displays gracefully on reboot") since now we always turn the display off before a reboot.
>
> This was reported on a RKL, but I confirmed the same behaviour on my
> SNB as well. So looks pretty universal.
>
> Let's fix this by explicitly turning the TMDS output buffers back on
> in the encoder->shutdown() hook. Note that this gets called after irqs
> have been disabled, so the i2c communication with the DP dual mode
> adapter has to be performed via polling (which the gmbus code is
> perfectly happy to do for us).
>
> We also need a bit of care in handling DDI encoders which may or may
> not be set up for HDMI output. Specifically ddc_pin will not be
> populated for a DP only DDI encoder, in which case we don't want to
> call intel_gmbus_get_adapter(). We can handle that by simply doing
> the dual mode adapter type check before calling
> intel_gmbus_get_adapter().
> Ref: https://patchwork.freedesktop.org/series/96433/
>
> [Test]
> 1. install kernel
> 2. reboot
> 3. check the monitor works well.
>
> [Regression Potential]
> low, the patches has been landed on mainline and linux-next
Applied to jammy:linux.
Thanks,
-Andrea
PS sorry, ignore the previous mail, I responded to the individual
patches...
More information about the kernel-team
mailing list