1. 07 6月, 2016 1 次提交
  2. 19 12月, 2015 1 次提交
  3. 18 12月, 2015 1 次提交
  4. 01 10月, 2015 1 次提交
  5. 26 9月, 2015 1 次提交
  6. 30 5月, 2015 1 次提交
  7. 27 1月, 2015 1 次提交
    • A
      [media] uvcvideo: Remove extra commit on resume() · 9fae30ac
      Aviv Greenberg 提交于
      The UVC spec is a bit vague wrt devices using bulk endpoints,
      specifically, how to signal to a device to start streaming.
      
      For devices using isoc endpoints, the sequence for start streaming is:
      1) The host sends PROBE_CONTROL(SET_CUR) PROBE_CONTROL(GET_CUR)
      2) Host selects desired config and calls COMMIT_CONTROL(SET_CUR)
      3) Host selects an alt interface other then zero - e.g SELECT_ALTERNATE_INTERFACE(1)
      4) The device starts streaming
      
      However for devices using bulk endpoints, there must be *no* alt interface
      other than setting zero. From the UVC spec:
      "A VideoStreaming interface containing a bulk endpoint for streaming shall
      support only alternate setting zero. Additional alternate settings containing
      bulk endpoints are not permitted in a device that is compliant with the Video
      Class specification."
      
      So for devices using bulk endpoints, step #3 above is irrelevant, and thus
      cannot be used as an indication for the device to start streaming.
      So in practice, such devices start streaming immediately after a
      COMMIT_CONTROL(SET_CUR).
      
      In the uvc resume() handler, an unsolicited commit is sent, which causes
      devices using bulk endpoints to start streaming unintentionally.
      
      This patch modifies resume() handler to send a commit only if streaming
      needs to be reestablished, i.e if the device was actually streaming before is
      was suspended.
      Signed-off-by: NAviv Greenberg <aviv.d.greenberg@intel.com>
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      9fae30ac
  8. 25 11月, 2014 2 次提交
  9. 21 10月, 2014 1 次提交
    • L
      [media] v4l: uvcvideo: Fix buffer completion size check · c601f53f
      Laurent Pinchart 提交于
      Commit e93e7fd9 ("v4l2: uvcvideo: Allow
      using larger buffers") reworked the buffer size sanity check at buffer
      completion time to use the frame size instead of the allocated buffer
      size. However, it introduced two bugs in doing so:
      
      - it assigned the allocated buffer size to the frame_size field, instead
        of assigning the correct frame size
      
      - it performed the assignment in the S_FMT handler, resulting in the
        frame_size field being uninitialized if the userspace application
        doesn't call S_FMT.
      
      Fix both issues by removing the frame_size field and validating the
      buffer size against the UVC video control dwMaxFrameSize.
      
      Fixes: e93e7fd9 ("v4l2: uvcvideo: Allow using larger buffers")
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      c601f53f
  10. 22 9月, 2014 2 次提交
  11. 03 9月, 2014 1 次提交
  12. 23 5月, 2014 2 次提交
  13. 06 3月, 2014 1 次提交
    • O
      [media] uvcvideo: Do not use usb_set_interface on bulk EP · b1e43f23
      Oleksij Rempel 提交于
      The UVC specification uses alternate setting selection to notify devices
      of stream start/stop. This breaks when using bulk-based devices, as the
      video streaming interface has a single alternate setting in that case,
      making video stream start and video stream stop events to appear
      identical to the device. Bulk-based devices are thus not well supported
      by UVC.
      
      The webcam built in the Asus Zenbook UX302LA ignores the set interface
      request and will keep the video stream enabled when the driver tries to
      stop it. If USB autosuspend is enabled the device will then be suspended
      and will crash, requiring a cold reboot.
      
      USB trace capture showed that Windows sends a CLEAR_FEATURE(HALT)
      request to the bulk endpoint when stopping the stream instead of
      selecting alternate setting 0. The camera then behaves correctly, and
      thus seems to require that behaviour.
      
      Replace selection of alternate setting 0 with clearing of the endpoint
      halt feature at video stream stop for bulk-based devices. Let's refrain
      from blaming Microsoft this time, as it's not clear whether this
      Windows-specific but USB-compliant behaviour was specifically developed
      to handle bulkd-based UVC devices, or if the camera just took advantage
      of it.
      
      CC: stable@vger.kernel.org
      Signed-off-by: NOleksij Rempel <linux@rempel-privat.de>
      Signed-off-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      b1e43f23
  14. 01 3月, 2014 1 次提交
  15. 10 12月, 2013 1 次提交
  16. 30 11月, 2013 1 次提交
  17. 08 11月, 2013 1 次提交
    • M
      [media] uvc/lirc_serial: Fix some warnings on parisc arch · ce01cbdc
      Mauro Carvalho Chehab 提交于
      On this arch, usec is not unsigned long. So, we need to typecast,
      in order to remove those warnings:
      	drivers/media/usb/uvc/uvc_video.c: In function 'uvc_video_clock_update':
      	drivers/media/usb/uvc/uvc_video.c:678:2: warning: format '%lu' expects argument of type 'long unsigned int', but argument 9 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c: In function 'irq_handler':
      	drivers/staging/media/lirc/lirc_serial.c:707:5: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c:707:5: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c:719:5: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c:719:5: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c:728:6: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type '__kernel_suseconds_t' [-Wformat]
      	drivers/staging/media/lirc/lirc_serial.c:728:6: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type '__kernel_suseconds_t' [-Wformat]
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      ce01cbdc
  18. 28 11月, 2012 1 次提交
  19. 06 10月, 2012 1 次提交
  20. 16 8月, 2012 1 次提交
  21. 14 8月, 2012 1 次提交
  22. 07 7月, 2012 2 次提交
  23. 09 4月, 2012 1 次提交
  24. 28 2月, 2012 1 次提交
  25. 11 12月, 2011 9 次提交
  26. 24 9月, 2011 1 次提交
  27. 22 9月, 2011 1 次提交
  28. 06 8月, 2011 1 次提交