radeon drm fails to load on v6.12-rc2 "Bogus possible_clones: [ENCODER:46:TV-46] possible_clones=0x4 (full encoder mask=0x7)" ( Thinkpad T60)

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Oct 9 06:28:44 UTC 2024


On Wed, Oct 09, 2024 at 12:03:21AM +0200, Erhard Furtner wrote:
> Greetings!
> 
> On kernel v6.12-rc I get no X and dmesg (via netconsole) shows this at loading radeon drm:
> 
> [...]
> [drm] PCIE GART of 512M enabled (table at 0x0000000000040000).
> radeon 0000:01:00.0: WB enabled
> radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000008000000
> radeon 0000:01:00.0: radeon: MSI limited to 32-bit
> [drm] radeon: irq initialized.
> [drm] Loading R500 Microcode
> [drm] radeon: ring at 0x0000000008001000
> [drm] ring test succeeded in 0 usecs
> [drm] ib test succeeded in 0 usecs
> stackdepot: allocating hash table of 65536 entries via kvcalloc
> acpi device:06: registered as cooling_device2
> [drm] Radeon Display Connectors
> [drm] Connector 0:
> [drm]   VGA-1
> [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
> [drm]   Encoders:
> [drm]     CRT1: INTERNAL_KLDSCP_DAC1
> [drm] Connector 1:
> [drm]   LVDS-1
> [drm]   DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
> [drm]   Encoders:
> [drm]     LCD1: INTERNAL_LVTM1
> [drm] Connector 2:
> [drm]   DVI-I-1
> [drm]   HPD1
> [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
> [drm]   Encoders:
> [drm]     DFP1: INTERNAL_KLDSCP_TMDS1
> ------------[ cut here ]------------
>
> Bogus possible_clones: [ENCODER:46:TV-46] possible_clones=0x4 (full encoder mask=0x7)
<snip>
> Bogus possible_clones: [ENCODER:48:TMDS-48] possible_clones=0x1 (full encoder mask=0x7)
<snip>

Presumably something like this should fix it:

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c
index 0f723292409e..fafed331e0a0 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -43,7 +43,7 @@ static uint32_t radeon_encoder_clones(struct drm_encoder *encoder)
 	struct radeon_device *rdev = dev->dev_private;
 	struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
 	struct drm_encoder *clone_encoder;
-	uint32_t index_mask = 0;
+	uint32_t index_mask = drm_encoder_mask(encoder);
 	int count;
 
 	/* DIG routing gets problematic */

> 
> 
> I applied "[PATCH v2] drm/radeon: add late_register for connector" hoping this would help but it didn't make a difference.
> 
> Some details about the Mobility Radeon X1300:
>  # lspci -s 01:00.0 -v
> 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV515/M52 [Mobility Radeon X1300] (prog-if 00 [VGA controller])
> 	Subsystem: Lenovo Device 2005
> 	Flags: bus master, fast devsel, latency 0, IRQ 16
> 	Memory at d8000000 (32-bit, prefetchable) [size=128M]
> 	I/O ports at 2000 [size=256]
> 	Memory at ee100000 (32-bit, non-prefetchable) [size=64K]
> 	Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
> 	Capabilities: [50] Power Management version 2
> 	Capabilities: [58] Express Legacy Endpoint, IntMsgNum 0
> 	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit+
> 	Kernel driver in use: radeon
> 	Kernel modules: radeon
> 
> Regards,
> Erhard

-- 
Ville Syrjälä
Intel


More information about the dri-devel mailing list