All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: "Arve Hjønnevåg" <arve@android.com>
Cc: ncunningham@crca.org.au, u.luckas@road.de, swetland@google.com,
	Linux-pm mailing list <linux-pm@lists.linux-foundation.org>
Subject: Re: [PATCH 1/8] PM: Add suspend block api.
Date: Wed, 15 Apr 2009 11:29:01 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.0904151112400.3072-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <1239759692-28617-2-git-send-email-arve@android.com>

On Tue, 14 Apr 2009, [utf-8] Arve Hjønnevåg wrote:

> +Suspend blockers can be used to allow user-space to decide which keys should
> +wake the full system up and turn the screen on.

This sentence still grates on me.  For readers not familiar with the 
embedded/phone environment, it won't make any sense.  Furthermore the 
rest of the text below doesn't even mention the screen, which will 
cause readers to wonder why it is mentioned here.

>  Use set_irq_wake or a platform
> +specific api to make sure the keypad interrupt wakes up the cpu. Once the keypad
> +driver has resumed, the sequence of events can look like this:
> +- The Keypad driver gets an interrupt. It then calls suspend_block on the
> +  keypad-scan suspend_blocker and starts scanning the keypad matrix.
> +- The keypad-scan code detects a key change and reports it to the input-event
> +  driver.
> +- The input-event driver sees the key change, enqueues an event, and calls
> +  suspend_block on the input-event-queue suspend_blocker.
> +- The keypad-scan code detects that no keys are held and calls suspend_unblock
> +  on the keypad-scan suspend_blocker.
> +- The user-space input-event thread returns from select/poll, calls
> +  suspend_block on the process-input-events suspend_blocker and then calls read
> +  on the input-event device.
> +- The input-event driver dequeues the key-event and, since the queue is now
> +  empty, it calls suspend_unblock on the input-event-queue suspend_blocker.
> +- The user-space input-event thread returns from read. It determines that the
> +  key should not wake up the full system, calls suspend_unblock on the
> +  process-input-events suspend_blocker and calls select or poll.
> +
> +                 Key pressed   Key released
> +                     |             |
> +keypad-scan          ++++++++++++++++++
> +input-event-queue        +++          +++
> +process-input-events       +++          +++

How about replacing that first sentence with something like this:

	In cell phones or other embedded systems where powering the
	screen is a significant drain on the battery, suspend blockers 
	can be used to allow user-space to decide whether a keystroke
	received while the system is suspended should cause the screen 
	to be turned back on or allow the system to go back into 
	suspend.

Then in the last section, say this:

      - The user-space input-event thread returns from read. If it 
	determines that the key should leave the screen off, it
	calls suspend_unblock on the process_input_events
	suspend_blocker and then calls select or poll.  The system
	will automatically suspend again, since now no suspend blockers
	are active.

Alan Stern

  parent reply	other threads:[~2009-04-15 15:29 UTC|newest]

Thread overview: 195+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-15  1:41 [RFC][PATCH 0/8] Suspend block api Arve Hjønnevåg
2009-04-15  1:41 ` [PATCH 1/8] PM: Add suspend " Arve Hjønnevåg
2009-04-15  1:41   ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2009-04-15  1:41     ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2009-04-15  1:41       ` [PATCH 4/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2009-04-15  1:41         ` [PATCH 5/8] PM: suspend_block: Switch to list of active and inactive suspend blockers Arve Hjønnevåg
2009-04-15  1:41           ` [PATCH 6/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2009-04-15  1:41             ` [PATCH 7/8] PM: suspend_block: Add timeout support Arve Hjønnevåg
2009-04-15  1:41               ` [PATCH 8/8] PM: suspend_block: Add timeout support to user-space suspend_blockers Arve Hjønnevåg
2009-04-29 22:56       ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Rafael J. Wysocki
2009-04-29 22:52     ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Rafael J. Wysocki
2009-04-15 15:29   ` Alan Stern [this message]
2009-04-15 19:08     ` [PATCH 1/8] PM: Add suspend block api mark gross
2009-04-16  0:40       ` Arve Hjønnevåg
2009-04-16  0:34     ` Arve Hjønnevåg
2009-04-15 22:31   ` mark gross
2009-04-16  1:45     ` Arve Hjønnevåg
2009-04-16 17:49       ` mark gross
2009-04-20  9:29   ` Pavel Machek
2009-04-21  4:44     ` Arve Hjønnevåg
2009-04-24 20:59       ` Pavel Machek
2009-04-29 21:24         ` Rafael J. Wysocki
2009-04-29 22:52           ` Arve Hjønnevåg
2009-04-29 22:34   ` Rafael J. Wysocki
2009-04-29 23:45     ` Arve Hjønnevåg
2009-04-30  0:49     ` Arve Hjønnevåg
2009-04-26  9:42       ` Pavel Machek
2009-05-02 12:17         ` Rafael J. Wysocki
2009-05-02 12:14       ` Rafael J. Wysocki
2009-05-02 20:51         ` Pavel Machek
2009-05-05  3:48         ` Arve Hjønnevåg
2009-04-15 23:04 ` [RFC][PATCH 0/8] Suspend " Rafael J. Wysocki
2009-04-16  6:00 [PATCH 1/8] PM: Add suspend " Sam Shang
2010-04-28  4:31 [PATCH 0/9] Suspend block api (version 5) Arve Hjønnevåg
2010-04-28  4:31 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-04-28  4:31 ` Arve Hjønnevåg
2010-04-28  6:07   ` Pavel Machek
2010-04-28  6:07     ` Pavel Machek
2010-04-28 19:13   ` Alan Stern
2010-04-28 21:13     ` Rafael J. Wysocki
2010-04-28 21:13     ` Rafael J. Wysocki
2010-04-28 23:35       ` Arve Hjønnevåg
2010-04-28 23:35       ` Arve Hjønnevåg
2010-04-29 15:41         ` Alan Stern
2010-04-29 15:41           ` Alan Stern
2010-04-29 23:39           ` Arve Hjønnevåg
2010-04-29 23:39             ` Arve Hjønnevåg
2010-04-30 14:41             ` Alan Stern
2010-04-30 14:41               ` Alan Stern
2010-04-28 19:13   ` Alan Stern
2010-04-28 20:50   ` Rafael J. Wysocki
2010-04-28 20:50   ` Rafael J. Wysocki
2010-04-29  3:37     ` Arve Hjønnevåg
2010-04-29 21:16       ` Rafael J. Wysocki
2010-04-29 21:16         ` Rafael J. Wysocki
2010-04-30  4:24         ` Tejun Heo
2010-04-30  4:24           ` Tejun Heo
2010-04-30 17:26           ` Oleg Nesterov
2010-04-30 17:26           ` Oleg Nesterov
2010-05-20  8:30             ` Tejun Heo
2010-05-20 22:27               ` Rafael J. Wysocki
2010-05-21  6:35                 ` Tejun Heo
2010-05-21  6:35                   ` Tejun Heo
2010-05-20 22:27               ` Rafael J. Wysocki
2010-05-20  8:30             ` Tejun Heo
2010-04-29  3:37     ` Arve Hjønnevåg
2010-05-06 15:18   ` Alan Stern
2010-05-06 15:18   ` Alan Stern
2010-05-06 19:28     ` Rafael J. Wysocki
2010-05-06 19:28     ` Rafael J. Wysocki
2010-05-06 19:40       ` Alan Stern
2010-05-06 19:40       ` Alan Stern
2010-05-06 23:48         ` Arve Hjønnevåg
2010-05-06 23:48         ` Arve Hjønnevåg
2010-05-07 14:22           ` Alan Stern
2010-05-07 14:22           ` Alan Stern
2010-04-30 22:36 [PATCH 0/8] Suspend block api (version 6) Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-04-30 22:36 ` Arve Hjønnevåg
2010-05-02  6:56   ` Pavel Machek
2010-05-02  6:56   ` Pavel Machek
2010-05-02 20:10     ` Rafael J. Wysocki
2010-05-02 20:52       ` Pavel Machek
2010-05-02 21:29         ` Rafael J. Wysocki
2010-05-02 21:29         ` Rafael J. Wysocki
2010-05-03 19:01           ` Pavel Machek
2010-05-03 21:38             ` Rafael J. Wysocki
2010-05-03 21:38             ` Rafael J. Wysocki
2010-05-03 22:11               ` Alan Stern
2010-05-03 22:11               ` Alan Stern
2010-05-03 22:24                 ` Arve Hjønnevåg
2010-05-03 22:24                 ` Arve Hjønnevåg
2010-05-03 19:01           ` Pavel Machek
2010-05-02 20:52       ` Pavel Machek
2010-05-02 20:10     ` Rafael J. Wysocki
2010-05-02  7:01   ` Pavel Machek
2010-05-02  7:01   ` Pavel Machek
2010-05-04  5:12   ` [linux-pm] " mark gross
2010-05-04 13:59     ` Alan Stern
2010-05-04 13:59     ` [linux-pm] " Alan Stern
2010-05-04 16:03       ` mark gross
2010-05-04 20:40     ` Arve Hjønnevåg
2010-05-04  5:12   ` mark gross
2010-05-13 19:01   ` Paul Walmsley
2010-05-14 20:05     ` Paul Walmsley
2010-05-04 16:03 [linux-pm] " mark gross
2010-05-04 17:16 ` Alan Stern
2010-05-05  1:50   ` mark gross
2010-05-05 13:31     ` Matthew Garrett
2010-05-05 20:09       ` mark gross
2010-05-05 20:21         ` Matthew Garrett
2010-05-05 20:09       ` mark gross
2010-05-05 13:31     ` Matthew Garrett
2010-05-05 15:44     ` Alan Stern
2010-05-05 15:44     ` [linux-pm] " Alan Stern
2010-05-05 20:28       ` mark gross
2010-05-05  1:50   ` mark gross
2010-05-04 17:16 ` Alan Stern
2010-05-05 20:28 [linux-pm] " mark gross
2010-05-05 21:12 ` Alan Stern
2010-05-05 21:37   ` Brian Swetland
2010-05-05 23:47     ` Tony Lindgren
2010-05-05 23:47     ` [linux-pm] " Tony Lindgren
2010-05-05 23:56       ` Brian Swetland
2010-05-06  0:05         ` Tony Lindgren
2010-05-06  4:16           ` Arve Hjønnevåg
2010-05-06 17:04             ` Tony Lindgren
2010-05-07  0:10               ` Arve Hjønnevåg
2010-05-07 15:54                 ` Tony Lindgren
2010-05-28  6:43                 ` Pavel Machek
2010-05-28  6:43                 ` [linux-pm] " Pavel Machek
2010-05-28  7:01                   ` Arve Hjønnevåg
2010-05-07  0:10               ` Arve Hjønnevåg
2010-05-06 17:04             ` Tony Lindgren
2010-05-06  4:16           ` Arve Hjønnevåg
2010-05-06  0:05         ` Tony Lindgren
2010-05-05 23:56       ` Brian Swetland
2010-05-06 13:40       ` Matthew Garrett
2010-05-06 13:40       ` [linux-pm] " Matthew Garrett
2010-05-06 17:01         ` Tony Lindgren
2010-05-06 17:01         ` [linux-pm] " Tony Lindgren
2010-05-06 17:09           ` Matthew Garrett
2010-05-06 17:09           ` [linux-pm] " Matthew Garrett
2010-05-06 17:14             ` Tony Lindgren
2010-05-06 17:22               ` Matthew Garrett
2010-05-06 17:38                 ` Tony Lindgren
2010-05-06 17:38                 ` [linux-pm] " Tony Lindgren
2010-05-06 17:43                   ` Matthew Garrett
2010-05-06 18:33                     ` Tony Lindgren
2010-05-06 18:33                     ` [linux-pm] " Tony Lindgren
2010-05-06 18:44                       ` Matthew Garrett
2010-05-07  2:05                         ` Tony Lindgren
2010-05-07  2:05                         ` [linux-pm] " Tony Lindgren
2010-05-07 17:12                           ` Matthew Garrett
2010-05-07 17:35                             ` Tony Lindgren
2010-05-07 17:35                             ` [linux-pm] " Tony Lindgren
2010-05-07 17:50                               ` Matthew Garrett
2010-05-07 18:01                                 ` Tony Lindgren
2010-05-07 18:01                                 ` [linux-pm] " Tony Lindgren
2010-05-07 18:28                                   ` Matthew Garrett
2010-05-07 18:43                                     ` Tony Lindgren
2010-05-07 18:46                                       ` Matthew Garrett
2010-05-07 18:46                                       ` [linux-pm] " Matthew Garrett
2010-05-07 19:06                                         ` Daniel Walker
2010-05-07 19:06                                         ` [linux-pm] " Daniel Walker
2010-05-07 19:28                                           ` Tony Lindgren
2010-05-07 19:33                                             ` Matthew Garrett
2010-05-07 19:33                                             ` [linux-pm] " Matthew Garrett
2010-05-07 19:55                                               ` Tony Lindgren
2010-05-07 20:28                                                 ` Matthew Garrett
2010-05-07 20:28                                                 ` [linux-pm] " Matthew Garrett
2010-05-07 20:53                                                   ` Tony Lindgren
2010-05-07 20:53                                                   ` [linux-pm] " Tony Lindgren
2010-05-07 21:03                                                     ` Matthew Garrett
2010-05-07 21:25                                                       ` Tony Lindgren
2010-05-07 21:25                                                       ` [linux-pm] " Tony Lindgren
2010-05-07 21:32                                                         ` Arve Hjønnevåg
2010-05-07 21:39                                                         ` Matthew Garrett
2010-05-07 21:39                                                         ` [linux-pm] " Matthew Garrett
2010-05-07 21:42                                                           ` Tony Lindgren
2010-05-07 21:42                                                           ` [linux-pm] " Tony Lindgren
2010-05-07 21:48                                                             ` Matthew Garrett
2010-05-07 22:00                                                               ` Tony Lindgren
2010-05-07 22:00                                                               ` [linux-pm] " Tony Lindgren
2010-05-07 22:28                                                                 ` Matthew Garrett
2010-05-07 21:48                                                             ` Matthew Garrett
2010-05-07 21:30                                                       ` Daniel Walker
2010-05-07 21:30                                                       ` [linux-pm] " Daniel Walker
2010-05-07 21:35                                                         ` Arve Hjønnevåg
2010-05-07 21:43                                                           ` Daniel Walker
2010-05-07 21:35                                                         ` Arve Hjønnevåg
2010-05-07 21:38                                                         ` Matthew Garrett
2010-05-07 21:03                                                     ` Matthew Garrett
2010-05-07 19:55                                               ` Tony Lindgren
2010-05-07 19:28                                           ` Tony Lindgren
2010-05-07 18:28                                   ` Matthew Garrett
2010-05-07 17:50                               ` Matthew Garrett
2010-05-07 17:12                           ` Matthew Garrett
2010-05-06 18:44                       ` Matthew Garrett
2010-05-06 18:47                       ` Alan Stern
2010-05-06 18:47                       ` [linux-pm] " Alan Stern
2010-05-07  2:20                         ` Tony Lindgren
2010-05-06 17:43                   ` Matthew Garrett
2010-05-28 13:29                   ` [linux-pm] " Pavel Machek
2010-05-28 13:42                     ` Brian Swetland
2010-05-28 13:29                   ` Pavel Machek
2010-05-06 17:22               ` Matthew Garrett
2010-05-06 17:35               ` [linux-pm] " Daniel Walker
2010-05-06 18:36                 ` Tony Lindgren
2010-05-06 19:11                   ` Daniel Walker
2010-05-07  2:00                     ` Tony Lindgren
2010-05-07  2:00                     ` [linux-pm] " Tony Lindgren
2010-05-07 17:20                       ` Daniel Walker
2010-05-07 17:36                         ` Matthew Garrett
2010-05-07 17:36                         ` [linux-pm] " Matthew Garrett
2010-05-07 17:40                           ` Daniel Walker
2010-05-07 17:51                             ` Matthew Garrett
2010-05-07 17:51                             ` [linux-pm] " Matthew Garrett
2010-05-07 18:00                               ` Daniel Walker
2010-05-07 18:17                                 ` Tony Lindgren
2010-05-07 18:00                               ` Daniel Walker
2010-05-07 17:40                           ` Daniel Walker
2010-05-07 17:50                         ` Tony Lindgren
2010-05-07 17:20                       ` Daniel Walker
2010-05-06 19:11                   ` Daniel Walker
2010-05-06 18:36                 ` Tony Lindgren
2010-05-06 17:35               ` Daniel Walker
2010-05-07  3:45               ` mgross
2010-05-06 17:14             ` Tony Lindgren
2010-05-07  3:45             ` [linux-pm] " mgross
2010-05-07  4:10               ` Arve Hjønnevåg
2010-05-07  3:45             ` mgross
2010-05-05 21:37   ` Brian Swetland
2010-05-05 21:12 ` Alan Stern
2010-05-14  4:11 [PATCH 0/8] Suspend block api (version 7) Arve Hjønnevåg
2010-05-14  4:11 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-05-14  4:11   ` Arve Hjønnevåg
2010-05-14  6:13   ` Paul Walmsley
2010-05-14  6:27   ` Paul Walmsley
2010-05-14  7:14     ` Arve Hjønnevåg
2010-05-18  2:17       ` Paul Walmsley
2010-05-18  3:06         ` Arve Hjønnevåg
2010-05-18  3:34           ` Paul Walmsley
2010-05-18  3:51             ` Arve Hjønnevåg
2010-05-19 15:55               ` Paul Walmsley
2010-05-20  0:35                 ` Arve Hjønnevåg
2010-05-18 13:11   ` Pavel Machek
2010-05-18 13:11   ` Pavel Machek
2010-05-20  9:11     ` Florian Mickler
2010-05-20  9:26       ` Florian Mickler
2010-05-20  9:26       ` Florian Mickler
2010-05-20 22:18         ` Rafael J. Wysocki
2010-05-20 22:18         ` Rafael J. Wysocki
2010-05-21  6:04           ` Florian Mickler
2010-05-21  6:04           ` Florian Mickler
2010-05-27 15:41           ` Pavel Machek
2010-05-27 15:41           ` Pavel Machek
2010-05-20  9:11     ` Florian Mickler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44L0.0904151112400.3072-100000@iolanthe.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=arve@android.com \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=ncunningham@crca.org.au \
    --cc=swetland@google.com \
    --cc=u.luckas@road.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.