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.
