summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/finepix.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-12-13 09:12:51 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-12-13 09:12:51 +0000
commit72aaf09fda49f5919d98d65d35e5179f3acb0497 (patch)
tree5fd25748f7f5640f8ee8efb86ddca88d12840791 /drivers/media/video/gspca/finepix.c
parent67fbc2312312095acc2f19a0b601bac10f84cf9d (diff)
parent58c2467355ed3154a12ee49d8f8236547145c9d3 (diff)
downloadop-kernel-dev-72aaf09fda49f5919d98d65d35e5179f3acb0497.zip
op-kernel-dev-72aaf09fda49f5919d98d65d35e5179f3acb0497.tar.gz
Merge git://git.marvell.com/orion into devel
Diffstat (limited to 'drivers/media/video/gspca/finepix.c')
-rw-r--r--drivers/media/video/gspca/finepix.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/finepix.c b/drivers/media/video/gspca/finepix.c
index 65d3cbf..607942f 100644
--- a/drivers/media/video/gspca/finepix.c
+++ b/drivers/media/video/gspca/finepix.c
@@ -276,6 +276,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
/* Stop the state machine */
if (dev->state != FPIX_NOP)
wait_for_completion(&dev->can_close);
+}
+
+/* called on streamoff with alt 0 and disconnect */
+static void sd_stop0(struct gspca_dev *gspca_dev)
+{
+ struct usb_fpix *dev = (struct usb_fpix *) gspca_dev;
usb_free_urb(dev->control_urb);
dev->control_urb = NULL;
@@ -385,6 +391,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
error:
/* Free the ressources */
sd_stopN(gspca_dev);
+ sd_stop0(gspca_dev);
return ret;
}
@@ -425,6 +432,7 @@ static const struct sd_desc sd_desc = {
.init = sd_init,
.start = sd_start,
.stopN = sd_stopN,
+ .stop0 = sd_stop0,
};
/* -- device connect -- */
OpenPOWER on IntegriCloud