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/
Attachment:
signature.asc
Description: Digital signature