I guess kdump wont help either since i can't get my akita to boot if i set the crashkernel= cmdline parameter. I've only tried doing this on 3.2 kernels. Has anyone tried using kdump crash kernels before?
On Sat, Mar 3, 2012 at 10:43 PM, Hans Henry von Tresckow <hvont...@gmail.com > wrote: > Here is one: > > > http://www.amazon.com/Sharp-Zaurus-SL-5500-CE-170TS-RS-232C/dp/B0000645V7/ref=sr_1_7?ie=UTF8&qid=1330810865&sr=8-7 > > On Sat, Mar 3, 2012 at 12:45 PM, Eric Edwin <eric_ed...@hotmail.com> > wrote: > > Hi Marko, > > If you want a serial cable let me know the Amazon item no / description > & if > > it's available in the UK I can ship to you at cost. > > You can pay me via paypal; pm me if required. > > > > Best regards, > > Eric > > > > ________________________________ > > Date: Fri, 2 Mar 2012 17:07:45 +0100 > > From: drom...@gmail.com > > To: zaurus-devel@lists.linuxtogo.org > > Subject: Re: [Zaurus-devel] [PATCH]Serial Cable Purchase - Quick&dirty > fix > > that enables offline charging. > > > > Offline charging is not the only problem i'm facing with power > management: > > > > - If i unplug the charger during suspend, it wont resume. Rebooting via > > magic sysrq doesnt work either. So i guess that the kernel crashes if i > > unplug the charger. Same thing happens if i put it in suspend and if i > plug > > in the charger. > > > > I really cant debug this since i dont have a serial cable. And Amazon > wont > > ship to my country. I think kdump might help here, i have to try that. > > > > On Fri, Mar 2, 2012 at 3:54 PM, Andrea Adami <andrea.ad...@gmail.com> > wrote: > > > > On Tue, Feb 21, 2012 at 9:15 PM, Marko Katić <drom...@gmail.com> wrote: > >> This experimental patch enables offline charging. It was tested on a > >> C-1000 > >> and it applies to 3.2.0. Basically, i reintroduced the old way of > reading > >> the MAX1111 chip, as it was done in older kernels (older than 2.6.34 i > >> think). This is by no means an ideal solution. The real problem was > >> detailed > >> earlier in this post: > >> > >> http://lists.linuxtogo.org/pipermail/zaurus-devel/2010-July/000346.html > >> > >> Sharpsl_pm debug output after suspend: > >> > >> sharpsl-pm sharpsl-pm: SharpSL suspending for first time. > >> sharpsl-pm sharpsl-pm: Time is: 000009ed > >> sharpsl-pm sharpsl-pm: Offline Charge Activate = 16 > >> sharpsl-pm sharpsl-pm: Activating Offline Charger... > >> sharpsl-pm sharpsl-pm: Charge Mode: 0 > >> sharpsl-pm sharpsl-pm: Offline Charger: Step 1 > >> sharpsl-pm sharpsl-pm: Average: 130 from values: 130, 131, 131, 130, 130 > >> sharpsl-pm sharpsl-pm: AC Voltage: 130 > >> sharpsl-pm sharpsl-pm: Average: 122 from values: 122, 122, 122, 123, 123 > >> sharpsl-pm sharpsl-pm: Temperature: 122 > >> sharpsl-pm sharpsl-pm: Charge LED On > >> sharpsl-pm sharpsl-pm: Charging alarm at: 00000c45 > >> sharpsl-pm sharpsl-pm: Corgi woken up from suspend: 00000001 > >> sharpsl-pm sharpsl-pm: SharpSL resuming... > >> > >> So the output suggests that offline charging is active, yet both leds > are > >> turned off during suspend. So i discharged the battery as much as i > could > >> and i left it to charge during suspend for two hours. The battery went > >> from > >> ~4.8V to ~5.3V in that period. At least that's what my multimeter > claims. > >> I'm not skilled in electronics, someone else should test this further. > >> > >> Here's the patch: > >> > >> diff --git a/arch/arm/mach-pxa/sharpsl_pm.c > >> b/arch/arm/mach-pxa/sharpsl_pm.c > >> index 32318ba..ece52e2 100644 > >> --- a/arch/arm/mach-pxa/sharpsl_pm.c > >> +++ b/arch/arm/mach-pxa/sharpsl_pm.c > >> @@ -12,7 +12,7 @@ > >> * > >> */ > >> > >> -#undef DEBUG > >> +#define DEBUG > >> > >> #include <linux/module.h> > >> #include <linux/kernel.h> > >> @@ -24,12 +24,14 @@ > >> #include <linux/leds.h> > >> #include <linux/suspend.h> > >> #include <linux/gpio.h> > >> - > >> +#include <linux/pxa2xx_ssp.h> > >> #include <asm/mach-types.h> > >> #include <mach/pm.h> > >> #include <mach/pxa2xx-regs.h> > >> #include <mach/regs-rtc.h> > >> #include <mach/sharpsl_pm.h> > >> +#include <mach/gpio-pxa.h> > >> +#include <mach/spitz.h> > >> > >> /* > >> * Prototypes > >> @@ -154,18 +156,139 @@ struct battery_thresh > sharpsl_battery_levels_noac[] > >> = > >> { > >> /* > >> * Read MAX1111 ADC > >> */ > >> + > >> +#define SSP2_REGS_START 0x41700000 > >> +#define SSP2_REG_SIZE 64 > >> +#define TIMEOUT 100000 > >> +#define SSCR0_SerClkDiv(x) (((x) - 1) << 8) > >> + > >> +static void __iomem *ssp2_reg_base; > >> +static volatile unsigned int sscr0, sscr1; > >> +struct mutex ssp_lock; > >> + > >> +static void init_ssp2() { > >> + ssp2_reg_base = ioremap(SSP2_REGS_START, SSP2_REG_SIZE); > >> +} > >> + > >> +static void ssp_enable() > >> +{ > >> + *((u32 *)ssp2_reg_base + SSCR0) |= SSCR0_SSE; > >> +} > >> + > >> +static void ssp_disable() > >> +{ > >> + *((u32 *)ssp2_reg_base + SSCR0) &= ~SSCR0_SSE; > >> +} > >> + > >> +static int ssp_read_word(u32 *data) { > >> + > >> + int timeout = TIMEOUT; > >> + > >> + while (!(__raw_readl(ssp2_reg_base + SSSR) & SSSR_RNE)) { > >> + if (!--timeout) > >> + return -ETIMEDOUT; > >> + cpu_relax(); > >> + } > >> + > >> + *data = __raw_readl(ssp2_reg_base + SSDR); > >> + return 0; > >> +} > >> + > >> +static int ssp_write_word(u32 data) { > >> + int timeout = TIMEOUT; > >> + > >> + while (!(__raw_readl(ssp2_reg_base + SSSR) & SSSR_TNF)) { > >> + if (!--timeout) > >> + return -ETIMEDOUT; > >> + cpu_relax(); > >> + } > >> + > >> + __raw_writel(data, ssp2_reg_base + SSDR); > >> + > >> + return 0; > >> +} > >> + > >> +static void save_sscr() { > >> + sscr0 = *((u32 *)ssp2_reg_base + SSCR0); > >> + sscr1 = *((u32 *)ssp2_reg_base + SSCR1); > >> +} > >> + > >> +static void restore_sscr () { > >> + *((u32 *)ssp2_reg_base + SSCR0) = sscr0; > >> + *((u32 *)ssp2_reg_base + SSCR1) = sscr1; > >> +} > >> + > >> +static void ssp_config () { > >> + *((u32 *)ssp2_reg_base + SSCR0) = (SSCR0_Motorola | (SSCR0_DSS & > 0x07) | > >> SSCR0_SerClkDiv(56)); > >> + *((u32 *)ssp2_reg_base + SSCR1) = 0x0; > >> +} > >> + > >> +static int max1111_raw_read(int channel) { > >> + > >> + > >> + CKEN |= (1 << 3); > >> + long voltage = 0, voltage1 = 0, voltage2 = 0; > >> + > >> + save_sscr(); > >> + ssp_disable(); > >> + ssp_config(); > >> + mdelay(1); > >> + ssp_enable(); > >> + > >> + int max1111_cmd = (channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | > >> MAXCTRL_PD1 > >> + | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR; > >> + > >> + gpio_set_value(SPITZ_GPIO_MAX1111_CS, 0); /*pull CS low */ > >> + /* TB1/RB1 */ > >> + ssp_write_word(max1111_cmd); > >> + ssp_read_word((u32*)&voltage1); /* null read */ > >> + > >> + /* TB12/RB2 */ > >> + ssp_write_word(0); > >> + ssp_read_word((u32*)&voltage1); > >> + > >> + /* TB13/RB3*/ > >> + ssp_write_word(0); > >> + ssp_read_word((u32*)&voltage2); > >> + > >> + gpio_set_value(SPITZ_GPIO_MAX1111_CS, 1); > >> + > >> + ssp_disable(); > >> + restore_sscr(); > >> + ssp_enable(); > >> + > >> + CKEN &= ~(1 << 3); > >> + > >> + if ((voltage1 & 0xc0) || (voltage2 & 0x3f)) > >> + voltage = -1; > >> + else > >> + voltage = ((voltage1 << 2) & 0xfc) | ((voltage2 >> 6) & 0x03); > >> + > >> + if (voltage <= 0) > >> + printk (KERN_ALERT "voltage raw %d\n", voltage); > >> + > >> + return voltage; > >> +} > >> + > >> int sharpsl_pm_pxa_read_max1111(int channel) > >> { > >> + > >> /* Ugly, better move this function into another module */ > >> if (machine_is_tosa()) > >> return 0; > >> > >> + int ret; > >> extern int max1111_read_channel(int); > >> - > >> /* max1111 accepts channels from 0-3, however, > >> * it is encoded from 0-7 here in the code. > >> */ > >> - return max1111_read_channel(channel >> 1); > >> + ret = max1111_read_channel(channel >> 1); > >> + > >> + if (ret <= 0) > >> + return max1111_raw_read(channel); > >> + else > >> + return ret; > >> + > >> } > >> > >> static int get_percentage(int voltage) > >> @@ -926,6 +1049,8 @@ static int __devinit sharpsl_pm_probe(struct > >> platform_device *pdev) > >> suspend_set_ops(&sharpsl_pm_ops); > >> #endif > >> > >> + init_ssp2(); > >> + > >> mod_timer(&sharpsl_pm.ac_timer, jiffies + msecs_to_jiffies(250)); > >> > >> return 0; > >> @@ -959,6 +1084,8 @@ static int sharpsl_pm_remove(struct platform_device > >> *pdev) > >> del_timer_sync(&sharpsl_pm.chrg_full_timer); > >> del_timer_sync(&sharpsl_pm.ac_timer); > >> > >> + iounmap(ssp2_reg_base); > >> + > >> return 0; > >> } > >> > >> > >> > >> _______________________________________________ > >> Zaurus-devel mailing list > >> Zaurus-devel@lists.linuxtogo.org > >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel > >> > > > > I'll send the meta-handheld Zaurus defconfigs for 3.2.8 this evening. > > Then testing your patch will be easier. > > > > Cheers > > > > Andrea > > > > _______________________________________________ > > Zaurus-devel mailing list > > Zaurus-devel@lists.linuxtogo.org > > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel > > > > > > > > _______________________________________________ Zaurus-devel mailing list > > Zaurus-devel@lists.linuxtogo.org > > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel > > > > _______________________________________________ > > Zaurus-devel mailing list > > Zaurus-devel@lists.linuxtogo.org > > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel > > > > > > -- > Henry von Tresckow (hvontres) > > _______________________________________________ > Zaurus-devel mailing list > Zaurus-devel@lists.linuxtogo.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel >
_______________________________________________ Zaurus-devel mailing list Zaurus-devel@lists.linuxtogo.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/zaurus-devel