Hi Ben, On Mon, Mar 28, 2005 at 06:28:05PM +1000, Benjamin Herrenschmidt wrote: > Hrm... Indeed, the code looks bogus. Try replacing: > > reg = (u32 *)get_property(volt_gpio_np, "reg", NULL); > voltage_gpio = *reg; > > With > > if (volt_gpio_np) > voltage_gpio = read_gpio(volt_gpio_np); > > And let me know if it helps. I think this will not help. If I apply your patch, but on top of this disable the actual frequence switching, then no crash occurs any more. The change I made was:
diff -ur linux-2.6.11.4.orig/arch/ppc/kernel/misc.S linux-2.6.11/arch/ppc/kernel/misc.S --- linux-2.6.11.4.orig/arch/ppc/kernel/misc.S 2005-03-02 07:38:26.000000000 +0000 +++ linux-2.6.11/arch/ppc/kernel/misc.S 2005-03-19 11:06:29.000000000 +0000 @@ -263,7 +263,7 @@ mfspr r4,SPRN_HID1 insrwi r4,r3,1,9 /* insert parameter into bit 9 */ sync - mtspr SPRN_HID1,r4 + /* mtspr SPRN_HID1,r4 */ sync isync This proves, I think, that the problem is that the voltage is not properly ramped up to the full value. I hope this helps, Jochen -- http://seehuhn.de/
signature.asc
Description: Digital signature