On Fri, 2007-09-28 at 23:32 +0200, Michael Buesch wrote: > Hi, > > some time ago I already mailed you about this problem. > I will quickly describe what's going on, again: > > My powerbook boots fine when it's cold. You can work with > it and you can also run it hot (compile something, etc...). > But when you try to boot it while it is hot, it will > automatically shutdown hard inside of the boot process. > Some part of the hardware is shutting it down. > This does not happen when it's getting hot _after_ boot. > Only while boot when it's hot. > > I bisected the problem and found out that the following patch > is responsible for this. Yeah, this sounds a little bit > crazy, as this patch does not seem to be related to > this at all. But I confirmed it by booting kernel > 4f71c5de19c27f2198105d3b26b398494d5c353b > That kernel triggered the bug. Then I patch -R the patch below > and it booted properly, even when hot. I also rechecked > that it really was hot enough to trigger the event by > immediately rebooting into a known bad kernel, that immediately > shut down the pbook, as expected. > So I'm pretty sure it's the patch below causing this weird > behaviour. Any idea why?
This is very strange... Can you try also clearing VGA_DDC_CLK_OUT_EN and VGA_DDC_DATA_OUT_EN and the same time and see if that helps ? > > commit 4f71c5de19c27f2198105d3b26b398494d5c353b > Author: Benjamin Herrenschmidt <[EMAIL PROTECTED]> > Date: Fri Nov 17 15:35:00 2006 +1100 > > [PATCH] Fix radeon DDC regression > > When radeonfb was changed to use the new "generic" ddc, a bit of > code initializing the GPIO lines was lost, causing it to not work > if the firmware didn't configure them properly, which seems to > happen on some cards. > > Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> > Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]> > > diff --git a/drivers/video/aty/radeon_i2c.c b/drivers/video/aty/radeon_i2c.c > index 6767545..869725a 100644 > --- a/drivers/video/aty/radeon_i2c.c > +++ b/drivers/video/aty/radeon_i2c.c > @@ -139,7 +139,13 @@ void radeon_delete_i2c_busses(struct rad > int radeon_probe_i2c_connector(struct radeonfb_info *rinfo, int conn, > u8 **out_edid) > { > - u8 *edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter); > + u32 reg = rinfo->i2c[conn-1].ddc_reg; > + u8 *edid; > + > + OUTREG(reg, INREG(reg) & > + ~(VGA_DDC_DATA_OUTPUT | VGA_DDC_CLK_OUTPUT)); > + > + edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter); > > if (out_edid) > *out_edid = edid; > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev