From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joachim Henke Subject: Re: [regression] blank screen with radeondrmfb on iMac G5 (ALS) Date: Sat, 21 May 2011 19:05:55 +0200 Message-ID: <4DD7F0F3.5060701@users.sourceforge.net> References: <4DD7AE3F.80107@users.sourceforge.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from smtp01.worldserver.net (smtp01.worldserver.net [217.13.200.36]) by gabe.freedesktop.org (Postfix) with ESMTP id ABF9A9E77A for ; Sat, 21 May 2011 10:05:54 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Alex Deucher Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On 05/21/11 17:14, Alex Deucher wrote: > On Sat, May 21, 2011 at 8:21 AM, Joachim Henke > 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