aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/input
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2005-09-13 22:56:33 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-10-28 19:47:38 -0400
commitdb69087437dd5135a9362da1c37fe072070e8f60 (patch)
tree1affacd290eff29b5dc589bbf47369e20d6101db /drivers/usb/input
parent7586269c0b52970f60bb69fcb86e765fc1d72309 (diff)
[PATCH] usb_interface power state
This updates the handling of power state for USB interfaces. - Formalizes an existing invariant: interface "power state" is a boolean: ON when I/O is allowed, and FREEZE otherwise. It does so by defining some inlined helpers, then using them. - Adds a useful invariant: the only interfaces marked active are those bound to non-suspended drivers. Later patches build on this invariant. - Simplifies the interface driver API (and removes some error paths) by removing the requirement that they record power state changes during suspend and resume callbacks. Now usbcore does that. A few drivers were simplified to address that last change. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> drivers/usb/core/hub.c | 33 +++++++++------------ drivers/usb/core/message.c | 1 drivers/usb/core/usb.c | 65 +++++++++++++++++++++++++++++++++---------- drivers/usb/core/usb.h | 18 +++++++++++ drivers/usb/input/hid-core.c | 2 - drivers/usb/misc/usbtest.c | 10 ------ drivers/usb/net/pegasus.c | 2 - drivers/usb/net/usbnet.c | 2 - 8 files changed, 85 insertions(+), 48 deletions(-)
Diffstat (limited to 'drivers/usb/input')
-rw-r--r--drivers/usb/input/hid-core.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index 411a0645a7a3..f7fcce731f54 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -1887,7 +1887,6 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message)
1887 struct hid_device *hid = usb_get_intfdata (intf); 1887 struct hid_device *hid = usb_get_intfdata (intf);
1888 1888
1889 usb_kill_urb(hid->urbin); 1889 usb_kill_urb(hid->urbin);
1890 intf->dev.power.power_state = PMSG_SUSPEND;
1891 dev_dbg(&intf->dev, "suspend\n"); 1890 dev_dbg(&intf->dev, "suspend\n");
1892 return 0; 1891 return 0;
1893} 1892}
@@ -1897,7 +1896,6 @@ static int hid_resume(struct usb_interface *intf)
1897 struct hid_device *hid = usb_get_intfdata (intf); 1896 struct hid_device *hid = usb_get_intfdata (intf);
1898 int status; 1897 int status;
1899 1898
1900 intf->dev.power.power_state = PMSG_ON;
1901 if (hid->open) 1899 if (hid->open)
1902 status = usb_submit_urb(hid->urbin, GFP_NOIO); 1900 status = usb_submit_urb(hid->urbin, GFP_NOIO);
1903 else 1901 else