aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/usb/stk1160/stk1160-v4l.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/usb/stk1160/stk1160-v4l.c b/drivers/media/usb/stk1160/stk1160-v4l.c
index 360bdbee4270..1ad4ac187727 100644
--- a/drivers/media/usb/stk1160/stk1160-v4l.c
+++ b/drivers/media/usb/stk1160/stk1160-v4l.c
@@ -159,8 +159,9 @@ static bool stk1160_set_alternate(struct stk1160 *dev)
159 159
160static int stk1160_start_streaming(struct stk1160 *dev) 160static int stk1160_start_streaming(struct stk1160 *dev)
161{ 161{
162 int i, rc;
163 bool new_pkt_size; 162 bool new_pkt_size;
163 int rc = 0;
164 int i;
164 165
165 /* Check device presence */ 166 /* Check device presence */
166 if (!dev->udev) 167 if (!dev->udev)
@@ -183,7 +184,7 @@ static int stk1160_start_streaming(struct stk1160 *dev)
183 if (!dev->isoc_ctl.num_bufs || new_pkt_size) { 184 if (!dev->isoc_ctl.num_bufs || new_pkt_size) {
184 rc = stk1160_alloc_isoc(dev); 185 rc = stk1160_alloc_isoc(dev);
185 if (rc < 0) 186 if (rc < 0)
186 return rc; 187 goto out_unlock;
187 } 188 }
188 189
189 /* submit urbs and enables IRQ */ 190 /* submit urbs and enables IRQ */
@@ -192,7 +193,7 @@ static int stk1160_start_streaming(struct stk1160 *dev)
192 if (rc) { 193 if (rc) {
193 stk1160_err("cannot submit urb[%d] (%d)\n", i, rc); 194 stk1160_err("cannot submit urb[%d] (%d)\n", i, rc);
194 stk1160_uninit_isoc(dev); 195 stk1160_uninit_isoc(dev);
195 return rc; 196 goto out_unlock;
196 } 197 }
197 } 198 }
198 199
@@ -205,9 +206,10 @@ static int stk1160_start_streaming(struct stk1160 *dev)
205 206
206 stk1160_dbg("streaming started\n"); 207 stk1160_dbg("streaming started\n");
207 208
209out_unlock:
208 mutex_unlock(&dev->v4l_lock); 210 mutex_unlock(&dev->v4l_lock);
209 211
210 return 0; 212 return rc;
211} 213}
212 214
213/* Must be called with v4l_lock hold */ 215/* Must be called with v4l_lock hold */