]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.drivers/v4l-dvb-uvcvideo-implement-the-usb-power-management-reset_resume-method.patch
Imported linux-2.6.27.39 suse/xen patches.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.drivers / v4l-dvb-uvcvideo-implement-the-usb-power-management-reset_resume-method.patch
diff --git a/src/patches/suse-2.6.27.31/patches.drivers/v4l-dvb-uvcvideo-implement-the-usb-power-management-reset_resume-method.patch b/src/patches/suse-2.6.27.31/patches.drivers/v4l-dvb-uvcvideo-implement-the-usb-power-management-reset_resume-method.patch
deleted file mode 100644 (file)
index 7f17c2a..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 9b0ae867a6fd3035e97e6c33bc07a5bfd7c0f96c Mon Sep 17 00:00:00 2001
-From: Laurent Pinchart <laurent.pinchart@skynet.be>
-Date: Fri, 22 Aug 2008 17:25:10 -0300
-Subject: [PATCH] V4L/DVB (8754): uvcvideo: Implement the USB power management reset_resume method.
-References: bnc#486331
-
-When a suspended device has been reset instead of being resumed, USB core
-calls the reset_resume method if available instead of unbinding and rebinding
-the device.
-
-This patch implements reset_resume by reusing the current resume
-implementation and simplifies the resume method by skipping the controls
-restore stage. Resuming from autosuspend should be faster.
-
-Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
-Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-Signed-off-by: Brandon Philips <bphilips@suse.de>
----
- drivers/media/video/uvc/uvc_driver.c |   15 +++++++++++++--
- 1 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
-index 7e10203..4a2d099 100644
---- a/drivers/media/video/uvc/uvc_driver.c
-+++ b/drivers/media/video/uvc/uvc_driver.c
-@@ -1663,7 +1663,7 @@ static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
-       return uvc_video_suspend(&dev->video);
- }
--static int uvc_resume(struct usb_interface *intf)
-+static int __uvc_resume(struct usb_interface *intf, int reset)
- {
-       struct uvc_device *dev = usb_get_intfdata(intf);
-       int ret;
-@@ -1672,7 +1672,7 @@ static int uvc_resume(struct usb_interface *intf)
-               intf->cur_altsetting->desc.bInterfaceNumber);
-       if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) {
--              if ((ret = uvc_ctrl_resume_device(dev)) < 0)
-+              if (reset && (ret = uvc_ctrl_resume_device(dev)) < 0)
-                       return ret;
-               return uvc_status_resume(dev);
-@@ -1687,6 +1687,16 @@ static int uvc_resume(struct usb_interface *intf)
-       return uvc_video_resume(&dev->video);
- }
-+static int uvc_resume(struct usb_interface *intf)
-+{
-+      return __uvc_resume(intf, 0);
-+}
-+
-+static int uvc_reset_resume(struct usb_interface *intf)
-+{
-+      return __uvc_resume(intf, 1);
-+}
-+
- /* ------------------------------------------------------------------------
-  * Driver initialization and cleanup
-  */
-@@ -1952,6 +1962,7 @@ struct uvc_driver uvc_driver = {
-               .disconnect     = uvc_disconnect,
-               .suspend        = uvc_suspend,
-               .resume         = uvc_resume,
-+              .reset_resume   = uvc_reset_resume,
-               .id_table       = uvc_ids,
-               .supports_autosuspend = 1,
-       },
--- 
-1.6.2
-