cpufreq: gps && rxerr: port=1 ch=0x24, rxs=0x00000001
Michael Trimarchi
trimarchi at gandalf.sssup.it
Tue Jun 23 09:19:35 CEST 2009
Hi,
Rask Ingemann Lambertsen wrote:
> On Thu, Jun 18, 2009 at 07:52:11PM +0200, Michael Trimarchi wrote:
>
>
>> I look at the ticket. Is the order of restoring
>> of clockdivn and mpllcon important?
>>
>
> In danish, we have an expression which translates approximately to "being
> unable to see the wood for mere trees". The bug is not so much the order in
> which clockdivn and mpllcon are restored, but that they are not being saved
> and restored at all across suspends. You even posted the buggy code:
>
>
>> #ifndef CONFIG_CPU_FREQ
>> SAVE_ITEM(S3C2410_CLKDIVN),
>> SAVE_ITEM(S3C2410_MPLLCON),
>> SAVE_ITEM(S3C2410_REFRESH),
>> #endif
>>
>
> The obvious patch indeed makes suspend/resume work again:
>
> diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c
> index 834e54d..e21a2be 100644
> --- a/arch/arm/plat-s3c24xx/pm.c
> +++ b/arch/arm/plat-s3c24xx/pm.c
> @@ -66,9 +66,9 @@ static struct sleep_save core_save[] = {
> SAVE_ITEM(S3C2410_BANKCON3),
> SAVE_ITEM(S3C2410_BANKCON4),
> SAVE_ITEM(S3C2410_BANKCON5),
>
> -#ifndef CONFIG_CPU_FREQ
> +#if (!defined(CONFIG_CPU_FREQ)) || defined(CONFIG_CPU_FREQ_S3C24XX)
> SAVE_ITEM(S3C2410_CLKDIVN),
> SAVE_ITEM(S3C2410_MPLLCON),
> SAVE_ITEM(S3C2410_REFRESH),
> #endif
>
Ok, I miss the ndef :(. So the register was not saved
Do you have take a look to the cpufreq framework for s3c24xx posted in
the arm mailing list?
It is better to do this things in suspend/resume part of frequnecy
scaling driver?
Regards Michael
> We should probably save and restore CAMDIVN too, but I haven't tested
> that yet.
>
>
More information about the openmoko-kernel
mailing list