lkml.org 
[lkml]   [2017]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH resend] [media] uvcvideo: zero seq number when disabling stream
    Date
    For bulk-based devices, when disabling the video stream,
    in addition to issue CLEAR_FEATURE(HALT), it is better to set
    alternate setting 0 as well or the sequnce number in host
    side will probably not reset to zero.

    Then in next time video stream start, the device will expect
    host starts packet from 0 sequence number but host actually
    continue the sequence number from last transaction and this
    causes transaction errors.

    This commit fixes this by adding set alternate setting 0 back
    as what isoch-based devices do.

    Below error message will also be eliminated for some devices:
    uvcvideo: Non-zero status (-71) in video completion handler.

    Signed-off-by: Hans Yang <hansy@nvidia.com>
    ---
    drivers/media/usb/uvc/uvc_video.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
    index fb86d6af398d..ad80c2a6da6a 100644
    --- a/drivers/media/usb/uvc/uvc_video.c
    +++ b/drivers/media/usb/uvc/uvc_video.c
    @@ -1862,10 +1862,9 @@ int uvc_video_enable(struct uvc_streaming *stream, int enable)

    if (!enable) {
    uvc_uninit_video(stream, 1);
    - if (stream->intf->num_altsetting > 1) {
    - usb_set_interface(stream->dev->udev,
    + usb_set_interface(stream->dev->udev,
    stream->intfnum, 0);
    - } else {
    + if (stream->intf->num_altsetting == 1) {
    /* UVC doesn't specify how to inform a bulk-based device
    * when the video stream is stopped. Windows sends a
    * CLEAR_FEATURE(HALT) request to the video streaming
    --
    2.1.4
    \
     
     \ /
      Last update: 2017-09-15 08:29    [W:3.858 / U:0.564 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site