[Gta04-owner] Suspend / Resume on 3.12
Dr. H. Nikolaus Schaller
hns at goldelico.com
Thu Nov 14 18:36:21 CET 2013
Am 13.11.2013 um 15:45 schrieb Andreas Kemnade:
> Hi,
>
> On Tue, 2013-11-12 at 09:49 +1100, NeilBrown wrote:
>> On Mon, 11 Nov 2013 16:38:31 +0100 Andreas Kemnade <andreas at kemnade.info>
>> wrote:
>>
>>>>
>>>> I look forward to hearing of your results.
>>>
>>> At the moment I even cannot reproduce your the lower currents when the
>>> module is removed or unbind is done (when the modem does not show up on
>>> the bus). I measured current_now directly after suspend and retried also
>>> with that 5-min average using charge_now.
>>
>> What current do you measure?
>
> 3.7 with ehci-hcd compiled in
> - 32mA without modem, 2 tries
> doing unbind
> - 45mA (3x)
> doing bind
> - 54mA
> - 24mA
> - 24mA
> - 54mA
>
> doing unbind
>
> - 45mA
> - 45mA
>
> doing bind
> - 24mA
> - 24mA
> - 47mA(?)
> - 24mA
> - 24mA
> - 41mA(?)
>
>
>> Is it consistent over several measurements?
>
> I retried it using some 5 minute slots (the values above are current_now
> after suspend), and i never got any lower values than the ones from
> above.
>
>> What kernel are you using?
>>
> A 3.7-nplus kernel with the following change to the offmode thingy:
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -377,12 +377,12 @@ static int omap3_pm_suspend(void)
> /* Set ones wanted by suspend */
> list_for_each_entry(pwrst, &pwrst_list, node) {
> if (strcmp(pwrst->pwrdm->name, "core_pwrdm") == 0) {
> - static int times = 0;
> - times++;
> - if (times == 1)
> + // static int times = 0;
> + // times++;
> + // if (times == 1)
> pwrst->next_state = PWRDM_POWER_RET;
> - if (times == 2)
> - pwrst->next_state = PWRDM_POWER_OFF;
> + // if (times == 2)
> + // pwrst->next_state = PWRDM_POWER_OFF;
> }
> if (omap_set_pwrdm_state(pwrst->pwrdm,
> pwrst->next_state))
> goto restore;
>
> I did this because suspend did only work once. I also retried using the
> qtmoko56.2 kernel
Ok, I have reverted this in the 3.12.0 kernel. Maybe it conflicts with the
3.12 kernel?
But I still have a problem with mmc1 (WiFi):
echo mem > /sys/power/state
[ 462.113830] PM: Syncing filesystems ... done.
[ 462.190917] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 462.201293] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 462.210693] Suspending console(s) (use no_console_suspend to debug)
[ 462.218627] dpm_run_callback(): mmc_bus_suspend+0x0/0x44 returns -38
[ 462.218750] PM: Device mmc1:0001 failed to suspend: error -38
[ 462.218780] PM: Some devices failed to suspend, or early wake event detected
[ 462.219146] PM: resume of devices complete after 0.335 msecs
[ 462.246551] Restarting tasks ... done.
BTW: a description about OMAP3 power management can be found here:
http://elinux.org/OMAP_Power_Management
The only thing to note is that some /sys nodes have moved and changed.
BR,
Nikolaus
More information about the Gta04-owner
mailing list