Bug 42580

Summary: [radeon RS690] resume fails when radeon firmware is not available
Product: Drivers Reporter: Paul Menzel (paulepanter)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED WILL_NOT_FIX    
Severity: high CC: glisse
Priority: P1    
Hardware: All   
OS: Linux   
URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=655934
Kernel Version: 3.1.0 Subsystem:
Regression: No Bisected commit-id:

Description Paul Menzel 2012-01-15 11:31:17 UTC
Debian Sid/unstable is running on the system and not having `firmware-linux-nonfree` installed, that means the firmware is not available, resume does not work. The machine even cannot be pinged so no debugging output can be captured.

This is the output of the kernel ring buffer (`dmesg
[…]
[   21.459824] [drm] Initialized drm 1.1.0 20060810
[   21.558265] [drm] radeon defaulting to kernel modesetting.
[   21.558269] [drm] radeon kernel modesetting enabled.
[   21.558436] radeon 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[   21.558683] [drm] initializing kernel modesetting (RS690 0x1002:0x791E 0x1043:0x826D).
[   21.558707] [drm] register mmio base: 0xFDBF0000
[   21.558710] [drm] register mmio size: 65536
[   21.560653] ATOM BIOS: ATI
[   21.560677] radeon 0000:01:05.0: VRAM: 128M 0x0000000078000000 - 0x000000007FFFFFFF (128M used)
[   21.560681] radeon 0000:01:05.0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[   21.560703] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   21.560706] [drm] Driver supports precise vblank timestamp query.
[   21.560720] [drm] radeon: irq initialized.
[   21.560974] [drm] Detected VRAM RAM=128M, BAR=128M
[   21.560978] [drm] RAM width 128bits DDR
[   21.561079] [TTM] Zone  kernel: Available graphics memory: 964468 kiB.
[   21.561082] [TTM] Initializing pool allocator.
[   21.561120] [drm] radeon: 128M of VRAM memory ready
[   21.561122] [drm] radeon: 512M of GTT memory ready.
[   21.561149] [drm] GART: num cpu pages 131072, num gpu pages 131072
[   21.573396] [drm] radeon: 1 quad pipes, 1 z pipes initialized.
[   21.581312] radeon 0000:01:05.0: WB enabled
[   21.581570] [drm] Loading RS690/RS740 Microcode
[   21.617903] radeon_cp: Failed to load firmware "radeon/RS690_cp.bin"
[   21.617947] [drm:r100_cp_init] *ERROR* Failed to load firmware!
[   21.617987] radeon 0000:01:05.0: failed initializing CP (-2).
[   21.618026] radeon 0000:01:05.0: Disabling GPU acceleration
[   21.618068] [drm] radeon: cp finalized
[   21.618832] failed to evaluate ATIF got AE_BAD_PARAMETER
[…]

Here is the output with the firmware available.

[…]
[   86.301645] [drm] Initialized drm 1.1.0 20060810
[   86.603650] [drm] radeon kernel modesetting enabled.
[   86.603836] radeon 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[   86.604121] [drm] initializing kernel modesetting (RS690 0x1002:0x791E 0x1043:0x826D).
[   86.604144] [drm] register mmio base: 0xFDBF0000
[   86.604146] [drm] register mmio size: 65536
[   86.605939] ATOM BIOS: ATI
[   86.605963] radeon 0000:01:05.0: VRAM: 128M 0x0000000078000000 - 0x000000007FFFFFFF (128M used)
[   86.605967] radeon 0000:01:05.0: GTT: 512M 0x0000000080000000 - 0x000000009FFFFFFF
[   86.605989] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   86.605991] [drm] Driver supports precise vblank timestamp query.
[   86.606003] [drm] radeon: irq initialized.
[   86.606238] [drm] Detected VRAM RAM=128M, BAR=128M
[   86.606242] [drm] RAM width 128bits DDR
[   86.606344] [TTM] Zone  kernel: Available graphics memory: 964468 kiB.
[   86.606346] [TTM] Initializing pool allocator.
[   86.606384] [drm] radeon: 128M of VRAM memory ready
[   86.606387] [drm] radeon: 512M of GTT memory ready.
[   86.606412] [drm] GART: num cpu pages 131072, num gpu pages 131072
[   86.616780] [drm] radeon: 1 quad pipes, 1 z pipes initialized.
[   86.624447] radeon 0000:01:05.0: WB enabled
[   86.624519] [drm] Loading RS690/RS740 Microcode
[…]

Please advise how to debug that problem further.
Comment 1 Jérôme Glisse 2012-01-16 20:29:05 UTC
I am pondering on completely disabling KMS if firmware are not present. That would avoid time waste on our side.
Comment 2 Jérôme Glisse 2012-01-16 20:36:47 UTC
Btw, to be clear, we won't fix the no firmware case. So closing.