summaryrefslogtreecommitdiff
path: root/drivers/media/video/gspca/finepix.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-20 23:42:55 +0100
committerTakashi Iwai <tiwai@suse.de>2008-12-20 23:42:55 +0100
commit6a8436419d1b77b24d82bd90354adc4baa393566 (patch)
treed20e17b148f37dc299658a60303e6a2e4e6ce63f /drivers/media/video/gspca/finepix.c
parent55fa518867978e1f5fd8353098f80d125ac734d7 (diff)
parentff75427a7f641c4468610fbda2ccb69218174cd1 (diff)
Merge branch 'topic/ca0106-capture-no-44khz' into topic/ca0106
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 65d3cbfe6b27..607942fd7970 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 -- */