Display Not Detected If Powered Off When amdgpu.dc=1
Submitted by Benjamin Hodgetts
Assigned to Default DRI bug account
Link to original bug (#107333)
Description
Versions: Kernel 4.17.8, LLVM 6.0.1, Mesa 18.1.4, XOrg 1.20.0.
Distro: Arch.
Connected display devices should be detected even if they are powered off, as long as they're still physically connected obviously.
This works fine when using amdgpu.dc=0 but if the kernel is booted with amdgpu.dc=1 then the display device simply isn't seen (at all) if it's powered off. It does get detected immediately when powered on, but power it back off again and it completely disappears as though it's not even connected anymore.
Kernel DRM output with dc=1 (default):
[drm] amdgpu kernel modesetting enabled.
fb: switching to amdgpudrmfb from EFI VGA
[drm] initializing kernel modesetting (POLARIS10 0x1002:0x67DF 0x1DA2:0xE366 0xE7).
[drm] register mmio base: 0xDC200000
[drm] register mmio size: 262144
[drm] probing gen 2 caps for device 8086:1901 = 261ad03/e
[drm] probing mlw for device 8086:1901 = 261ad03
[drm] add ip block number 0 <vi_common>
[drm] add ip block number 1 <gmc_v8_0>
[drm] add ip block number 2 <tonga_ih>
[drm] add ip block number 3 <powerplay>
[drm] add ip block number 4 <dm>
[drm] add ip block number 5 <gfx_v8_0>
[drm] add ip block number 6 <sdma_v3_0>
[drm] add ip block number 7 <uvd_v6_0>
[drm] add ip block number 8 <vce_v3_0>
[drm] UVD is enabled in VM mode
[drm] UVD ENC is enabled in VM mode
[drm] VCE enabled in VM mode
[drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit
[drm] Detected VRAM RAM=8192M, BAR=8192M
[drm] RAM width 256bits GDDR5
[drm] amdgpu: 8192M of VRAM memory ready
[drm] amdgpu: 8192M of GTT memory ready.
[drm] GART: num cpu pages 65536, num gpu pages 65536
[drm] PCIE GART of 256M enabled (table at 0x000000F400040000).
[drm] Chained IB support enabled!
[drm] Found UVD firmware Version: 1.130 Family ID: 16
[drm] Found VCE firmware Version: 53.26 Binary ID: 3
[drm] DM_PPLIB: values for Engine clock
[drm] DM_PPLIB: 30000
[drm] DM_PPLIB: 75100
[drm] DM_PPLIB: 104800
[drm] DM_PPLIB: 115800
[drm] DM_PPLIB: 124000
[drm] DM_PPLIB: 130900
[drm] DM_PPLIB: 136400
[drm] DM_PPLIB: 143000
[drm] DM_PPLIB: Validation clocks:
[drm] DM_PPLIB: engine_max_clock: 143000
[drm] DM_PPLIB: memory_max_clock: 210000
[drm] DM_PPLIB: level : 0
[drm] DM_PPLIB: values for Memory clock
[drm] DM_PPLIB: 30000
[drm] DM_PPLIB: 100000
[drm] DM_PPLIB: 210000
[drm] DM_PPLIB: Validation clocks:
[drm] DM_PPLIB: engine_max_clock: 143000
[drm] DM_PPLIB: memory_max_clock: 210000
[drm] DM_PPLIB: level : 0
[drm] Display Core initialized with v3.1.38!
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] UVD and UVD ENC initialized successfully.
[drm] VCE initialized successfully.
[drm] Unsupported device. GVT-g is disabled
[drm] Replacing VGA console driver
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[drm] Cannot find any crtc or sizes
[drm] Initialized amdgpu 3.25.0 20150101 for 0000:01:00.0 on minor 0
[drm] Initialized i915 1.6.0 20180308 for 0000:00:02.0 on minor 1
[drm] Cannot find any crtc or sizes
[drm] Cannot find any crtc or sizes
[drm] Cannot find any crtc or sizes
Kernel DRM output with dc=0:
[drm] amdgpu kernel modesetting enabled.
fb: switching to amdgpudrmfb from EFI VGA
[drm] initializing kernel modesetting (POLARIS10 0x1002:0x67DF 0x1DA2:0xE366 0xE7).
[drm] register mmio base: 0xDC200000
[drm] register mmio size: 262144
[drm] probing gen 2 caps for device 8086:1901 = 261ad03/e
[drm] probing mlw for device 8086:1901 = 261ad03
[drm] add ip block number 0 <vi_common>
[drm] add ip block number 1 <gmc_v8_0>
[drm] add ip block number 2 <tonga_ih>
[drm] add ip block number 3 <powerplay>
[drm] add ip block number 4 <dce_v11_0>
[drm] add ip block number 5 <gfx_v8_0>
[drm] add ip block number 6 <sdma_v3_0>
[drm] add ip block number 7 <uvd_v6_0>
[drm] add ip block number 8 <vce_v3_0>
[drm] UVD is enabled in VM mode
[drm] UVD ENC is enabled in VM mode
[drm] VCE enabled in VM mode
[drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit
[drm] Detected VRAM RAM=8192M, BAR=8192M
[drm] RAM width 256bits GDDR5
[drm] amdgpu: 8192M of VRAM memory ready
[drm] amdgpu: 8192M of GTT memory ready.
[drm] GART: num cpu pages 65536, num gpu pages 65536
[drm] PCIE GART of 256M enabled (table at 0x000000F400040000).
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] AMDGPU Display Connectors
[drm] Connector 0:
[drm] DP-1
[drm] HPD6
[drm] DDC: 0x4868 0x4868 0x4869 0x4869 0x486a 0x486a 0x486b 0x486b
[drm] Encoders:
[drm] DFP1: INTERNAL_UNIPHY2
[drm] Connector 1:
[drm] DP-2
[drm] HPD4
[drm] DDC: 0x4870 0x4870 0x4871 0x4871 0x4872 0x4872 0x4873 0x4873
[drm] Encoders:
[drm] DFP2: INTERNAL_UNIPHY2
[drm] Connector 2:
[drm] HDMI-A-1
[drm] HPD1
[drm] DDC: 0x486c 0x486c 0x486d 0x486d 0x486e 0x486e 0x486f 0x486f
[drm] Encoders:
[drm] DFP3: INTERNAL_UNIPHY1
[drm] Connector 3:
[drm] HDMI-A-2
[drm] HPD5
[drm] DDC: 0x4874 0x4874 0x4875 0x4875 0x4876 0x4876 0x4877 0x4877
[drm] Encoders:
[drm] DFP4: INTERNAL_UNIPHY1
[drm] Connector 4:
[drm] DVI-D-1
[drm] HPD3
[drm] DDC: 0x487c 0x487c 0x487d 0x487d 0x487e 0x487e 0x487f 0x487f
[drm] Encoders:
[drm] DFP5: INTERNAL_UNIPHY
[drm] Chained IB support enabled!
[drm] Found UVD firmware Version: 1.130 Family ID: 16
[drm] Found VCE firmware Version: 53.26 Binary ID: 3
[drm] UVD and UVD ENC initialized successfully.
[drm] VCE initialized successfully.
[drm] Replacing VGA console driver
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[drm] fb mappable at 0x2000568000
[drm] vram apper at 0x2000000000
[drm] size 8294400
[drm] fb depth is 24
[drm] pitch is 7680
fbcon: amdgpudrmfb (fb0) is primary device
amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device
[drm] Initialized amdgpu 3.25.0 20150101 for 0000:01:00.0 on minor 0
[drm] Initialized i915 1.6.0 20180308 for 0000:00:02.0 on minor 1
[drm] Cannot find any crtc or sizes
[drm] Cannot find any crtc or sizes
[drm] Cannot find any crtc or sizes
And the resulting xrandr outputs:
dc=1 (default)
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 16384 x 16384
DisplayPort-0 disconnected primary (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
HDMI-A-1 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)
dc=0 (forced)
HDMI-A-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1920x1080 60.00*+ 50.00 59.94 30.00 25.00 24.00 29.97 23.98
1920x1080i 60.00 50.00 59.94
1600x1200 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x800 119.91 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 119.99 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
Let me know if there's anything else you need here.