From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [regression] blank screen with radeondrmfb on iMac G5 (ALS) Date: Sat, 21 May 2011 11:14:10 -0400 Message-ID: References: <4DD7AE3F.80107@users.sourceforge.net> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail-iw0-f177.google.com (mail-iw0-f177.google.com [209.85.214.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 645BC9ED7B for ; Sat, 21 May 2011 08:14:11 -0700 (PDT) Received: by iwn36 with SMTP id 36so4586000iwn.36 for ; Sat, 21 May 2011 08:14:10 -0700 (PDT) In-Reply-To: <4DD7AE3F.80107@users.sourceforge.net> 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: Joachim Henke Cc: Dave Airlie , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org 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 @@ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (rdev->pdev->subsyste= m_device =3D=3D 0x4a48)) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Mac X800 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rdev->mode_info.connector_= table =3D CT_MAC_X800; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 } else if ((rdev->pdev->device =3D=3D 0x415= 0) && > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(rdev->pdev->subsyst= em_vendor =3D=3D 0x1002) && > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(rdev->pdev->subsyst= em_device =3D=3D 0x4150)) { > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Mac G5 9600 */ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 rdev->mode_info.connector_t= able =3D CT_MAC_G5_9600; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} else > =A0#endif /* CONFIG_PPC_PMAC */ > =A0#ifdef CONFIG_PPC64 > > > This is a diff from the dmesg [without my patch] -> [with my patch]: > > =A0[drm] ring test succeeded in 0 usecs > =A0[drm] radeon: ib pool ready. > =A0[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) > =A0[drm] No TMDS info found in BIOS > +[drm] No TV DAC info found in BIOS > =A0[drm] Radeon Display Connectors > =A0[drm] Connector 0: > =A0[drm] =A0 DVI-I > =A0[drm] =A0 HPD1 > =A0[drm] =A0 DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 > =A0[drm] =A0 Encoders: > -[drm] =A0 =A0 DFP2: INTERNAL_DVO1 > +[drm] =A0 =A0 DFP1: INTERNAL_TMDS1 > =A0[drm] =A0 =A0 CRT2: INTERNAL_DAC2 > =A0[drm] Connector 1: > -[drm] =A0 DVI-I > -[drm] =A0 HPD2 > +[drm] =A0 VGA > =A0[drm] =A0 DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60 > =A0[drm] =A0 Encoders: > -[drm] =A0 =A0 DFP1: INTERNAL_TMDS1 > =A0[drm] =A0 =A0 CRT1: INTERNAL_DAC1 > =A0[drm] Connector 2: > =A0[drm] =A0 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 and regards, > Joachim Henke >