Commit d0fadf40 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] msi3101: fix stream re-start halt

Restarting stream fails quite often. Small delay is between urb killing
and stream stop command - likely to give harware some time to process
killed urbs.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 02004681
...@@ -959,7 +959,7 @@ static int msi3101_ctrl_msg(struct msi3101_state *s, u8 cmd, u32 data) ...@@ -959,7 +959,7 @@ static int msi3101_ctrl_msg(struct msi3101_state *s, u8 cmd, u32 data)
msi3101_dbg_usb_control_msg(s->udev, msi3101_dbg_usb_control_msg(s->udev,
request, requesttype, value, index, NULL, 0); request, requesttype, value, index, NULL, 0);
ret = usb_control_msg(s->udev, usb_rcvctrlpipe(s->udev, 0), ret = usb_control_msg(s->udev, usb_sndctrlpipe(s->udev, 0),
request, requesttype, value, index, NULL, 0, 2000); request, requesttype, value, index, NULL, 0, 2000);
if (ret) if (ret)
...@@ -1300,12 +1300,15 @@ static int msi3101_stop_streaming(struct vb2_queue *vq) ...@@ -1300,12 +1300,15 @@ static int msi3101_stop_streaming(struct vb2_queue *vq)
if (mutex_lock_interruptible(&s->v4l2_lock)) if (mutex_lock_interruptible(&s->v4l2_lock))
return -ERESTARTSYS; return -ERESTARTSYS;
msi3101_ctrl_msg(s, CMD_STOP_STREAMING, 0);
if (s->udev) if (s->udev)
msi3101_isoc_cleanup(s); msi3101_isoc_cleanup(s);
msi3101_cleanup_queued_bufs(s); msi3101_cleanup_queued_bufs(s);
/* according to tests, at least 700us delay is required */
msleep(20);
msi3101_ctrl_msg(s, CMD_STOP_STREAMING, 0);
mutex_unlock(&s->v4l2_lock); mutex_unlock(&s->v4l2_lock);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment