diff options
author | Oliver Neukum <oneukum@suse.de> | 2007-06-11 14:55:51 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-13 01:34:37 +0200 |
commit | 87d093e25d73249ae92b28ae88db92eaea7df70f (patch) | |
tree | 355861f143061c1de47ce6c41d1c5b8b0be438d7 /drivers/usb | |
parent | USB: usb-skeleton" use anchors in suspend/resume handling (diff) | |
download | linux-87d093e25d73249ae92b28ae88db92eaea7df70f.tar.xz linux-87d093e25d73249ae92b28ae88db92eaea7df70f.zip |
USB: usb-skeleton: use anchors in pre/post reset
use anchors in pre/post_reset
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/usb-skeleton.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c index 59973aecd968..8de11deb5d14 100644 --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c @@ -467,12 +467,35 @@ static int skel_resume (struct usb_interface *intf) return 0; } +static int skel_pre_reset(struct usb_interface *intf) +{ + struct usb_skel *dev = usb_get_intfdata(intf); + + mutex_lock(&dev->io_mutex); + skel_draw_down(dev); + + return 0; +} + +static int skel_post_reset(struct usb_interface *intf) +{ + struct usb_skel *dev = usb_get_intfdata(intf); + + /* we are sure no URBs are active - no locking needed */ + dev->errors = -EPIPE; + mutex_unlock(&dev->io_mutex); + + return 0; +} + static struct usb_driver skel_driver = { .name = "skeleton", .probe = skel_probe, .disconnect = skel_disconnect, .suspend = skel_suspend, .resume = skel_resume, + .pre_reset = skel_pre_reset, + .post_reset = skel_post_reset, .id_table = skel_table, .supports_autosuspend = 1, }; |