diff options
author | Jiri Kosina <jkosina@suse.cz> | 2009-02-20 12:47:08 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2009-03-25 17:57:58 +0100 |
commit | ae2f007468223e9efd6973be0364b9307a050a0c (patch) | |
tree | 2fbf929661f078626998691012ba64afb471c212 /drivers/hid | |
parent | 378a0ede126a2c59ab9ea1771de624521db5053e (diff) | |
download | kernel_samsung_tuna-ae2f007468223e9efd6973be0364b9307a050a0c.zip kernel_samsung_tuna-ae2f007468223e9efd6973be0364b9307a050a0c.tar.gz kernel_samsung_tuna-ae2f007468223e9efd6973be0364b9307a050a0c.tar.bz2 |
HID: hid_reset_resume() needs to be defined only when CONFIG_PM is set
There is no point of having hid_reset_resume() when CONFIG_PM is
not set, and even the corresponding .reset_resume pointer in hid_driver
struct is properly ifdefed.
Move the definition into the ifdef CONFIG_PM part of the source to avoid
drivers/hid/usbhid/hid-core.c:1337: warning: 'hid_reset_resume' defined but not used
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/usbhid/hid-core.c | 101 |
1 files changed, 51 insertions, 50 deletions
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index d79100a..054f0c5 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -1210,6 +1210,56 @@ static void hid_cease_io(struct usbhid_device *usbhid) flush_scheduled_work(); } +/* Treat USB reset pretty much the same as suspend/resume */ +static int hid_pre_reset(struct usb_interface *intf) +{ + struct hid_device *hid = usb_get_intfdata(intf); + struct usbhid_device *usbhid = hid->driver_data; + + spin_lock_irq(&usbhid->lock); + set_bit(HID_RESET_PENDING, &usbhid->iofl); + spin_unlock_irq(&usbhid->lock); + hid_cease_io(usbhid); + + return 0; +} + +/* Same routine used for post_reset and reset_resume */ +static int hid_post_reset(struct usb_interface *intf) +{ + struct usb_device *dev = interface_to_usbdev (intf); + struct hid_device *hid = usb_get_intfdata(intf); + struct usbhid_device *usbhid = hid->driver_data; + int status; + + spin_lock_irq(&usbhid->lock); + clear_bit(HID_RESET_PENDING, &usbhid->iofl); + spin_unlock_irq(&usbhid->lock); + hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0); + /* FIXME: Any more reinitialization needed? */ + status = hid_start_in(hid); + if (status < 0) + hid_io_error(hid); + usbhid_restart_queues(usbhid); + + return 0; +} + +int usbhid_get_power(struct hid_device *hid) +{ + struct usbhid_device *usbhid = hid->driver_data; + + return usb_autopm_get_interface(usbhid->intf); +} + +void usbhid_put_power(struct hid_device *hid) +{ + struct usbhid_device *usbhid = hid->driver_data; + + usb_autopm_put_interface(usbhid->intf); +} + + #ifdef CONFIG_PM static int hid_suspend(struct usb_interface *intf, pm_message_t message) { @@ -1293,43 +1343,6 @@ static int hid_resume(struct usb_interface *intf) return 0; } -#endif /* CONFIG_PM */ - -/* Treat USB reset pretty much the same as suspend/resume */ -static int hid_pre_reset(struct usb_interface *intf) -{ - struct hid_device *hid = usb_get_intfdata(intf); - struct usbhid_device *usbhid = hid->driver_data; - - spin_lock_irq(&usbhid->lock); - set_bit(HID_RESET_PENDING, &usbhid->iofl); - spin_unlock_irq(&usbhid->lock); - hid_cease_io(usbhid); - - return 0; -} - -/* Same routine used for post_reset and reset_resume */ -static int hid_post_reset(struct usb_interface *intf) -{ - struct usb_device *dev = interface_to_usbdev (intf); - struct hid_device *hid = usb_get_intfdata(intf); - struct usbhid_device *usbhid = hid->driver_data; - int status; - - spin_lock_irq(&usbhid->lock); - clear_bit(HID_RESET_PENDING, &usbhid->iofl); - spin_unlock_irq(&usbhid->lock); - hid_set_idle(dev, intf->cur_altsetting->desc.bInterfaceNumber, 0, 0); - /* FIXME: Any more reinitialization needed? */ - status = hid_start_in(hid); - if (status < 0) - hid_io_error(hid); - usbhid_restart_queues(usbhid); - - return 0; -} - static int hid_reset_resume(struct usb_interface *intf) { struct hid_device *hid = usb_get_intfdata(intf); @@ -1339,19 +1352,7 @@ static int hid_reset_resume(struct usb_interface *intf) return hid_post_reset(intf); } -int usbhid_get_power(struct hid_device *hid) -{ - struct usbhid_device *usbhid = hid->driver_data; - - return usb_autopm_get_interface(usbhid->intf); -} - -void usbhid_put_power(struct hid_device *hid) -{ - struct usbhid_device *usbhid = hid->driver_data; - - usb_autopm_put_interface(usbhid->intf); -} +#endif /* CONFIG_PM */ static struct usb_device_id hid_usb_ids [] = { { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, |