A hotplug bug in AMDGPU

Alex Deucher alexdeucher at gmail.com
Mon May 3 16:28:25 UTC 2021


On Mon, May 3, 2021 at 11:40 AM Mikulas Patocka <mpatocka at redhat.com> wrote:
>
> Hi
>
> There's a bug with monitor hotplug starting with the kernel 5.7.
>
> I have Radeon RX 570. If I boot the system with the monitor unplugged and
> then plug the monitor via DVI, the kernel 5.6 and below will properly
> initialized graphics; the kernels 5.7+ will not initialize it - and the
> monitor reports no signal.
>
> I bisected the issue and it is caused by the patch
> 4fdda2e66de0b7d37aa27af3c1bbe25ecb2d5408 ("drm/amdgpu/runpm: enable runpm
> on baco capable VI+ asics")
>
> When I remove the code that sets adev->runpm on the kernel 5.12, monitor
> hotplug works correctly.

This isn't really a hotplug bug per se.  That patch enabled runtime
power management which powered down the GPU completely to save power.
Unfortunately when it's powered down, hotplug interrupts won't work
because the entire GPU is powered off.  Disabling runtime pm will
allow hotplug interrupts to work, but will cause the GPU to burn a lot
more power.  I'm not sure what the best solution is.  You can manually
wake the card via sysfs (either via the runtime pm controls in
/sys/class/drm/card0/device/power or by reading a sensor on the board
like temperature) then hotplut the monitor or via a direct request to
probe the displays via the display server.

Alex

>
> Mikulas
>
>
> Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c |    2 --
>  1 file changed, 2 deletions(-)
>
> Index: linux-5.12/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> ===================================================================
> --- linux-5.12.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c     2021-04-26 14:50:53.000000000 +0200
> +++ linux-5.12/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c  2021-05-03 16:19:54.000000000 +0200
> @@ -183,8 +183,6 @@ int amdgpu_driver_load_kms(struct amdgpu
>                                 adev->runpm = true;
>                         break;
>                 default:
> -                       /* enable runpm on CI+ */
> -                       adev->runpm = true;
>                         break;
>                 }
>                 if (adev->runpm)
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list