Thread (36 messages) flat view 36 messages, 6 authors, 2011-10-13

Re: [PATCH V3] input: Fix USB autosuspend on bcm5974

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2011-10-12 19:21:56

On Wed, 12 Oct 2011, Henrik Rydberg wrote:
On Wed, Oct 12, 2011 at 05:59:05PM +0100, Matthew Garrett wrote:
quoted
On Wed, Oct 12, 2011 at 06:56:32PM +0200, Oliver Neukum wrote:
quoted
Am Mittwoch, 12. Oktober 2011, 18:16:51 schrieb Matthew Garrett:
quoted
Yeah. Plausibly the model we have in hid is wrong at the moment - rather 
than set flags that block suspend, it might make more sense to take 
references. It'd complicate things a little, in that we'd have to take 
more care in terms of keeping track of the state.
I am afraid references are very hard to take there because it needs to be done
in interrupt.
True. That makes things rather more awkward.
I was looking at usb_autopm_get_interface_no_resume() yesterday for
the same reason, it seemed light-weight enough. No?

Btw, I wonder if the patch below would make sense or if calling put*()
is always a bug at zero usage count.
It's always a bug.  However, the patch I sent to Matthew should fix the 
immediate problem.

In fact, the original autosuspend design intended to allow drivers to 
do this -- keep devices awake by failing suspend requests even though 
the usage count is 0.  Under some conditions, that's the approach with 
the least overhead.  But the code to handle this got lost by mistake, 
so now it needs to be added back.

Alan Stern
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help