[regression] blank screen with radeondrmfb on iMac G5 (ALS)
Michel Dänzer
michel at daenzer.net
Sat May 21 09:02:33 PDT 2011
On Sam, 2011-05-21 at 11:14 -0400, 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.
Probably a tower.
> 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()?
Yeah, they should have distinct identifiers, visible on
the /proc/cpuinfo model/machine/motherboard lines.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
More information about the dri-devel
mailing list