[regression] blank screen with radeondrmfb on iMac G5 (ALS)

Joachim Henke j-o at users.sourceforge.net
Sat May 21 10:05:55 PDT 2011


On 05/21/11 17:14, Alex Deucher wrote:
> On Sat, May 21, 2011 at 8:21 AM, Joachim Henke
> <j-o at users.sourceforge.net>  wrote:
>> Hello,
>>
>> I found a regression in Linux 2.6.37.2 - I know this report comes quite
>> late, but I had no time to investigate until now. And I found that this
>> still persists up to 2.6.39 :(
>>
>> When I upgraded from 2.6.37 to 2.6.37.3, after reboot my machine came up
>> with a blank/black screen (backlight on). It's an iMac G5 (Ambient Light
>> Sensor) with a Radeon 9600 (RV350). After Xorg had started, the screen
>> remained blank.
>>
>> There were only a few Radeon specific changes between these two versions, so
>> that I could quickly identify the cause. It's commit
>> ce9eb2c297f918be46e36dd86b7e88cabdc3e22df
>> (9fad321ac6bedd96f449754a1a25289ea1789a49 upstream). After reverting this
>> with a simple patch, it works properly again:
>>
>> --- linux-2.6.39/drivers/gpu/drm/radeon/radeon_combios.c.orig
>> +++ linux-2.6.39/drivers/gpu/drm/radeon/radeon_combios.c
>> @@ -1515,11 +1515,6 @@
>>                            (rdev->pdev->subsystem_device == 0x4a48)) {
>>                         /* Mac X800 */
>>                         rdev->mode_info.connector_table = CT_MAC_X800;
>> -               } else if ((rdev->pdev->device == 0x4150)&&
>> -                          (rdev->pdev->subsystem_vendor == 0x1002)&&
>> -                          (rdev->pdev->subsystem_device == 0x4150)) {
>> -                       /* Mac G5 9600 */
>> -                       rdev->mode_info.connector_table = CT_MAC_G5_9600;
>>                 } else
>>   #endif /* CONFIG_PPC_PMAC */
>>   #ifdef CONFIG_PPC64
>>
>>
>> This is a diff from the dmesg [without my patch] ->  [with my patch]:
>>
>>   [drm] ring test succeeded in 0 usecs
>>   [drm] radeon: ib pool ready.
>>   [drm] ib test succeeded in 0 usecs
>> -[drm] Connector Table: 12 (mac g5 9600)
>> -[drm] No valid Ext TMDS info found in BIOS
>> -[drm] No TV DAC info found in BIOS
>> +[drm] Connector Table: 1 (generic)
>>   [drm] No TMDS info found in BIOS
>> +[drm] No TV DAC info found in BIOS
>>   [drm] Radeon Display Connectors
>>   [drm] Connector 0:
>>   [drm]   DVI-I
>>   [drm]   HPD1
>>   [drm]   DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
>>   [drm]   Encoders:
>> -[drm]     DFP2: INTERNAL_DVO1
>> +[drm]     DFP1: INTERNAL_TMDS1
>>   [drm]     CRT2: INTERNAL_DAC2
>>   [drm] Connector 1:
>> -[drm]   DVI-I
>> -[drm]   HPD2
>> +[drm]   VGA
>>   [drm]   DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
>>   [drm]   Encoders:
>> -[drm]     DFP1: INTERNAL_TMDS1
>>   [drm]     CRT1: INTERNAL_DAC1
>>   [drm] Connector 2:
>>   [drm]   S-video
>>
>>
>> On which kind of machines was the original commit tested/supposed to work?
>> Do you see a possibility to fix this in a proper way upstream?
>
> It was a 9600 from a G5, I don't recall which one.  Thank apple for
> making multiple systems all wired up differently with the same pci
> ids.  I suppose to fix it properly we'll need some way of identifying
> the specific machine.  Are there specific ids for each g5 for
> of_machine_is_compatible()?
>
> Alex
>

Thanks for your fast reply! FYI, this is what /proc/cpuinfo tells:

platform	: PowerMac
model		: PowerMac8,2
machine		: PowerMac8,2
motherboard	: PowerMac8,2 MacRISC4 Power Macintosh

But instead of excluding this model, it's probably better to only include 
the model the patch was originally written for - in case there are other 
systems which got broken ;)

>>
>> Thanks and regards,
>> Joachim Henke


More information about the dri-devel mailing list