Skip to contentSkip to conversation

N810 suspend

DISCUSSION green 7 participants 17 messages Dec 15, 2008 – Dec 19, 2008

lore
Share & tools
lore

green

author
#0 lore raw

What are the chances of getting suspend (resume from) working on the N810? Are there any patches or branches around that I can test (I'm slowly learning how to use git)?

I'm running Debian on an N810. With the current state of power management in linux-omap, the N810 will only run (with LCD off) for about 12 hours on a charge.

Thanks.

#1 lore raw
Quoted 7 lines · green

What are the chances of getting suspend (resume from) working on the N810? Are there any patches or branches around that I can test (I'm slowly learning how to use git)?

I'm running Debian on an N810. With the current state of power management in linux-omap, the N810 will only run (with LCD off) for about 12 hours on a charge.

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Also, you need to make sure you have sleep while idle enabled:

# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

Regards,

Tony

#2 lore raw
Quoted 13 lines · Tony Lindgren
Quoted 7 lines · green

What are the chances of getting suspend (resume from) working on the N810? Are there any patches or branches around that I can test (I'm slowly learning how to use git)?

I'm running Debian on an N810. With the current state of power management in linux-omap, the N810 will only run (with LCD off) for about 12 hours on a charge.

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Quoted 6 lines

Also, you need to make sure you have sleep while idle enabled:

# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

Suspend/resume on n810 is currently broken in linux-omap. I submitted a patch a week or so ago to fix an assembly bug which was crashing the suspend, but it is still not resuming.

Most likely a simple fix needed to init the proper wakeup sources, but I haven't tested further.

Kevin

author
#3 lore raw
Quoted 10 lines · Kevin Hilman
Quoted 8 lines · Tony Lindgren
Quoted 3 lines · green

What are the chances of getting suspend (resume from) working on the N810? Are there any patches or branches around that I can test (I'm slowly learning how to use git)?

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Quoted 6 lines

Suspend/resume on n810 is currently broken in linux-omap. I submitted a patch a week or so ago to fix an assembly bug which was crashing the suspend, but it is still not resuming.

Most likely a simple fix needed to init the proper wakeup sources, but I haven't tested further.

I'll be looking for any progress ;) and will test it when I can.

#4 lore raw
Quoted 9 lines · On Mon, 15 Dec 2008 16:51:16 -0700 "ext green" <[email protected]> wrote:
Quoted 6 lines

Suspend/resume on n810 is currently broken in linux-omap. I submitted a patch a week or so ago to fix an assembly bug which was crashing the suspend, but it is still not resuming.

Most likely a simple fix needed to init the proper wakeup sources, but I haven't tested further.

I'll be looking for any progress ;) and will test it when I can.

Hold your horses, suspend is not very useful on N8x0 due watchdog kick after ~30 seconds or so :-)

Of course, generally suspend should work on OMAP & device drivers even though if it's broken currently.

What you might be interested instead is to get sleep_while_idle working. Then the system is running but should consume just few milliamps.

Jarkko

#5 lore raw
In reply to Tony Lindgren
Quoted 8 lines · On Mon, 15 Dec 2008 13:14:32 -0800 "ext Tony Lindgren" <[email protected]> wrote:
Quoted 3 lines

I'm running Debian on an N810. With the current state of power management in linux-omap, the N810 will only run (with LCD off) for about 12 hours on a charge.

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Quoted 6 lines

Also, you need to make sure you have sleep while idle enabled:

# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

How did you disable the LCD and FB clocks? Does xserver-xorg-video-fbdev from Debian (it works!) do necessary steps with omap fb driver or is xomap required?

Jarkko

#6 lore raw
Quoted 13 lines · Jarkko Nikula
Quoted 10 lines · On Mon, 15 Dec 2008 13:14:32 -0800 "ext Tony Lindgren" <[email protected]> wrote:
Quoted 3 lines

I'm running Debian on an N810. With the current state of power management in linux-omap, the N810 will only run (with LCD off) for about 12 hours on a charge.

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Also, you need to make sure you have sleep while idle enabled:

Quoted 7 lines
Quoted 4 lines
# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

How did you disable the LCD and FB clocks? Does xserver-xorg-video-fbdev from Debian (it works!) do necessary steps with omap fb driver or is xomap required?

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

Regards,

Tony

author
#7 lore raw
Quoted 12 lines · Tony Lindgren
Quoted 11 lines · Jarkko Nikula
Quoted 10 lines · On Mon, 15 Dec 2008 13:14:32 -0800 "ext Tony Lindgren" <[email protected]> wrote:

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Also, you need to make sure you have sleep while idle enabled:

# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

Quoted 8 lines
Quoted 3 lines

How did you disable the LCD and FB clocks? Does xserver-xorg-video-fbdev from Debian (it works!) do necessary steps with omap fb driver or is xomap required?

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

'echo 3 > /sys/class/graphics/fb0/blank' turns off the LCD, if that is what you mean.

#8 lore raw
Quoted 17 lines · green
Quoted 16 lines · Tony Lindgren
Quoted 14 lines · Jarkko Nikula
Quoted 10 lines · On Mon, 15 Dec 2008 13:14:32 -0800 "ext Tony Lindgren" <[email protected]> wrote:

Well you need to make sure the serial clocks are not enabled. Kevin has some patches for that in his pm branch. So you'll most likely want to use his whole pm branch.

Also, you need to make sure you have sleep while idle enabled:

# echo 1 > /sys/power/sleep_while_idle

It used to work, but I have not tried for six months or so.

How did you disable the LCD and FB clocks? Does xserver-xorg-video-fbdev from Debian (it works!) do necessary steps with omap fb driver or is xomap required?

Quoted 7 lines
Quoted 4 lines

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

'echo 3 > /sys/class/graphics/fb0/blank' turns off the LCD, if that is what you mean.

Thanks, that's what I did.

Tony

#9 lore raw
Quoted 10 lines · On Tue, 16 Dec 2008 09:22:38 -0800 "ext Tony Lindgren" <[email protected]> wrote:
Quoted 7 lines
Quoted 4 lines

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

'echo 3 > /sys/class/graphics/fb0/blank' turns off the LCD, if that is what you mean.

Thanks, that's what I did.

And it worked with N800. Battery current dropped below 10 mA after unplugging the USB cable so OMAP was going into retention.

'echo 1 >/sys/power/clocks_off_while_idle' seems to not have any effect?

Jarkko

#10 lore raw
Quoted 8 lines · On Wed, 17 Dec 2008 14:09:11 +0200 "ext Jarkko Nikula"…
Quoted 5 lines · On Tue, 16 Dec 2008 09:22:38 -0800 "ext Tony Lindgren" <[email protected]> wrote:
Quoted 5 lines
Quoted 4 lines

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

'echo 3 > /sys/class/graphics/fb0/blank' turns off the LCD, if that is what you mean.

Thanks, that's what I did.

And it worked with N800. Battery current dropped below 10 mA after unplugging the USB cable so OMAP was going into retention.

FYI:

xorg.conf's Option "SuspendTime" seems to equal to blanking command 3 (VESA_POWERDOWN). Look drivers/video/omap/omapfb_main.c: omapfb_blank.

Section "ServerFlags"

        Option  "BlankTime"     "0"
        Option  "StandbyTime"   "0"
        Option  "SuspendTime"   "1"
        Option  "OffTime"       "0"

EndSection

I just tried this with xserver-xorg-video-fbdev from Debian/testing on N800 and it went perfectly into retention. N810 didn't went and think reason is that bootloader enables UART3 for the GPS chip.

Oh my, I always tought there is some magic between Xomap and omapfb how the fb clocks are shutdown but lazy me newer bothered to check it from kernel sources :-)

Jarkko

#11 lore raw
Quoted 16 lines · Jarkko Nikula
Quoted 13 lines · On Wed, 17 Dec 2008 14:09:11 +0200 "ext Jarkko Nikula"…
Quoted 10 lines · On Tue, 16 Dec 2008 09:22:38 -0800 "ext Tony Lindgren" <[email protected]> wrote:
Quoted 7 lines
Quoted 4 lines

Oh, I just tested that sleep-while-idle worked when fb was blanked. I had a script that forced the LCD off via /sys, sorry don't remember the path now. Will be also heading to catch a plane in few hours, may not be able to check it right now.

'echo 3 > /sys/class/graphics/fb0/blank' turns off the LCD, if that is what you mean.

Thanks, that's what I did.

Quoted 7 lines
Quoted 3 lines

And it worked with N800. Battery current dropped below 10 mA after unplugging the USB cable so OMAP was going into retention.

FYI:

xorg.conf's Option "SuspendTime" seems to equal to blanking command 3 (VESA_POWERDOWN). Look drivers/video/omap/omapfb_main.c: omapfb_blank.

Yes, but it should be FB_BLANK_POWERDOWN (4), shouldn't it?

Signature · 1 line
Felipe Contreras
#12 lore raw
Quoted 5 lines · On Thu, 18 Dec 2008 14:51:20 +0200 "ext Felipe Contreras"…
Quoted 2 lines

xorg.conf's Option "SuspendTime" seems to equal to blanking command 3 (VESA_POWERDOWN). Look drivers/video/omap/omapfb_main.c: omapfb_blank.

Yes, but it should be FB_BLANK_POWERDOWN (4), shouldn't it?

Good question, no idea, probably yes? Only omapfb_main.c, fs1100fb.c and au1100fb.c are using VESA_xxx and rest of the fb drivers FB_BLANK_xxx modes.

Jarkko

#13 lore raw
In reply to Jarkko Nikula
Quoted 4 lines · Jarkko Nikula

xorg.conf's Option "SuspendTime" seems to equal to blanking command 3 (VESA_POWERDOWN). Look drivers/video/omap/omapfb_main.c: omapfb_blank.

Section "ServerFlags"

Quoted 8 lines
        Option  "BlankTime"     "0"
        Option  "StandbyTime"   "0"
        Option  "SuspendTime"   "1"
        Option  "OffTime"       "0"

EndSection

I just tried this with xserver-xorg-video-fbdev from Debian/testing on N800 and it went perfectly into retention.

Cool.

Quoted 2 lines

N810 didn't went and think reason is that bootloader enables UART3 for the GPS chip.

I noticed this as well. Any hacks to workaround this? Or do I really need to start searching for N800? :)

Signature · 1 line
Kalle Valo
#14 lore raw
Quoted 15 lines · Kalle Valo
Quoted 4 lines · Jarkko Nikula

xorg.conf's Option "SuspendTime" seems to equal to blanking command 3 (VESA_POWERDOWN). Look drivers/video/omap/omapfb_main.c: omapfb_blank.

Section "ServerFlags"

Quoted 8 lines
        Option  "BlankTime"     "0"
        Option  "StandbyTime"   "0"
        Option  "SuspendTime"   "1"
        Option  "OffTime"       "0"

EndSection

I just tried this with xserver-xorg-video-fbdev from Debian/testing on N800 and it went perfectly into retention.

Quoted 7 lines

Cool.

Quoted 2 lines

N810 didn't went and think reason is that bootloader enables UART3 for the GPS chip.

I noticed this as well. Any hacks to workaround this? Or do I really need to start searching for N800? :)

hey Kevin,

did your serial port idle code ever work out? I wonder if that would work for the N810s...

- Paul

#15 lore raw
Quoted 10 lines · ext Paul Walmsley
Quoted 5 lines
Quoted 2 lines

N810 didn't went and think reason is that bootloader enables UART3 for the GPS chip.

I noticed this as well. Any hacks to workaround this? Or do I really need to start searching for N800? :)

hey Kevin,

did your serial port idle code ever work out? I wonder if that would work for the N810s...

Any patches anywhere? I would gladly test something.

Signature · 1 line
Kalle Valo
#16 lore raw
Quoted 8 lines · Kalle Valo
Quoted 6 lines · ext Paul Walmsley
Quoted 5 lines
Quoted 2 lines

N810 didn't went and think reason is that bootloader enables UART3 for the GPS chip.

I noticed this as well. Any hacks to workaround this? Or do I really need to start searching for N800? :)

Quoted 7 lines
Quoted 4 lines

hey Kevin,

did your serial port idle code ever work out? I wonder if that would work for the N810s...

Any patches anywhere? I would gladly test something.

The PM branch[1] has a set of UART patches which disable UART clocks in the idle loop. The clocks are disabled after an inactivity timer (default 5 seconds of idle.)

I've tested the UART idle parts on n810 which seem to work, but hitting retention on n810 seems broken in current linux-omap. Tony merged a patch[2] from me last week which was crashing going into retention, but even with that I'm not able to wakeup from retention.

This could be something as simple as the wakeup event sources are not configured correctly for n810, but I did not debug further.

Kevin

[1] Branch 'pm' in linux-omap tree
[1] http://marc.info/?l=linux-omap&m=122855013200342&w=2