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

Reply via email to