Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=88da76... Commit: 88da765f4d5f59f67a7a51c8f5d608a836b32133 Parent: f89bd95c5c946776f116ffeb997653d4193d6a35 Author: Dmitry Torokhov <dmitry.torokhov@gmail.com> AuthorDate: Fri Aug 8 14:59:32 2008 -0400 Committer: Dmitry Torokhov <dmitry.torokhov@gmail.com> CommitDate: Fri Aug 8 16:24:21 2008 -0400 Input: bcm5974 - implement autosuspend support Signed-off-by: Dmitry Torokhov <dtor@mail.ru> --- drivers/input/mouse/bcm5974.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c index 6f85278..2ec921b 100644 --- a/drivers/input/mouse/bcm5974.c +++ b/drivers/input/mouse/bcm5974.c @@ -150,6 +150,7 @@ struct bcm5974_config { struct bcm5974 { char phys[64]; struct usb_device *udev; /* usb device */ + struct usb_interface *intf; /* our interface */ struct input_dev *input; /* input dev */ struct bcm5974_config cfg; /* device configuration */ struct mutex pm_mutex; /* serialize access to open/suspend */ @@ -478,6 +479,10 @@ static int bcm5974_open(struct input_dev *input) struct bcm5974 *dev = input_get_drvdata(input); int error; + error = usb_autopm_get_interface(dev->intf); + if (error) + return error; + mutex_lock(&dev->pm_mutex); error = bcm5974_start_traffic(dev); @@ -486,6 +491,9 @@ static int bcm5974_open(struct input_dev *input) mutex_unlock(&dev->pm_mutex); + if (error) + usb_autopm_put_interface(dev->intf); + return error; } @@ -499,6 +507,8 @@ static void bcm5974_close(struct input_dev *input) dev->opened = 0; mutex_unlock(&dev->pm_mutex); + + usb_autopm_put_interface(dev->intf); } static int bcm5974_suspend(struct usb_interface *iface, pm_message_t message) @@ -551,6 +561,7 @@ static int bcm5974_probe(struct usb_interface *iface, } dev->udev = udev; + dev->intf = iface; dev->input = input_dev; dev->cfg = *cfg; mutex_init(&dev->pm_mutex); @@ -652,6 +663,7 @@ static struct usb_driver bcm5974_driver = { .resume = bcm5974_resume, .reset_resume = bcm5974_resume, .id_table = bcm5974_table, + .supports_autosuspend = 1, }; static int __init bcm5974_init(void) -- To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Trent Piepho | Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code |
| Steven Rostedt | Re: -rt scheduling: wakeup bug? |
| Andrew Morton | Re: [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| David Miller | [GIT]: Networking |
git: | |
