Russell King - ARM Linux wrote:

>On Fri, Nov 16, 2001 at 06:01:18PM +0100, Benny Sj�strand wrote:
>
>>I hope i got the idea now, you and RK are saying almost the same thing but
>>with different words, good that you people are agree -;)
>>
>>In short:
>>- some initializing stuffs are missing in h3600.c, setting some EGPIOx
>>signals to low on initialization (in h3600) would solve some power
>>managment related issues and the iPAQ h3600 would consume less power
>>blbalbalba (that was to long)
>>
>
>Ok, well, from my sa1100 build of 2.4.15-pre5 I've just done (which is
>basically a kernel built for various sa1100-based machines), I can say
>on the H3600 I have here that everything 98% works as expected.
>
>The 2% that is wrong is that the initialisation of the EGPIOs isn't
>explicit and the NVRAM power isn't handled.
>
>The EGPIO is initialised as a by product of the LCD controller
>initialisation, if the LCD controller is built in, or which ever driver
>is the first to call one of the set/clear egpio functions.  Obviously,
>relying on this isn't a good idea!  Simple fix is:
>
>--- orig/arch/arm/mach-sa1100/h3600.c  Wed Nov 14 18:11:50 2001
>+++ linux/arch/arm/mach-sa1100/h3600.c Fri Nov 16 16:24:31 2001
>@@ -41,6 +41,7 @@
>       GPCR = h3100_controls;
>       GAFR = GPIO_SSP_CLK;
> #endif
>+      H3600_EGPIO = h3600_egpio;
> }
> 
> void clr_h3600_egpio(unsigned long x)
>
>Testing sleep mode here with just the iPAQ and no accessories fitted,
>all EGPIOs are reset except for the NVRAM power.  I also tested with
>the sa1100_ir driver loaded and functioning, and the EGPIOs were
>cleared, except for the NVRAM bit:
>
><4>egpio: 0000c1d0 (c02d3d94)
><4>egpio: 00000090 (c02eaa0c)  <-- power down LCD
><4>egpio: 00000010 (c0224e70)  <-- power down serial
><4>pm_do_suspend: *** made it back from resume
><4>egpio: 0000c150 (c02ea9c8)  <-- power up LCD
><4>egpio: 0000c1d0 (c0224e64)  <-- power up serial
>...
><4>egpio: 00000090 (c2869250)  <-- setup IrFSEL
><7>irlap_change_speed(), setting speed to 9600
><4>egpio: 00000290 (c2869358)  <-- power up IrDA (due to ifconfig irda0 up)
><4>egpio: 00000090 (c2869364)  <-- power down IrDA
><4>egpio: 00000010 (c0224e70)  <-- power down serial
><4>pm_do_suspend: *** made it back from resume
><4>egpio: 00000010 (c2869250)  <-- setup IrFSEL
><4>egpio: 00000210 (c2869358)  <-- power up IrDA
><4>egpio: 0000c350 (c02ea9c8)  <-- power up LCD
><4>egpio: 0000c3d0 (c0224e64)  <-- power up serial
>
>So, -rmk kernels are ok - I look forward to being able to leave the iPAQ on
>for a long period of time in sleep mode 8)
>
Russell -- thanks for the patch to this code.

 I'm applying it to the 2.4.7 -rmk3-np1 branch used by the Familiar 
Linux distribution.

 I see that we already fixed that particular problem in the newer 
"experimental" versions of the drivers on cvs.handhelds.org kernel 
version 2.4.13-ac8-rmk1.  It was part of one of the patches you 
rejected.  I will resubmit them after making an attempt to address the 
comments on the patches.

The NVRAM bit is also handled properly in the newer drivers on 
cvs.handhelds.org.

Jamey






_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.

Reply via email to