Hello Amila,
On Tue, Mar 05, 2019 at 04:50:47PM +0100, Amila Manoj wrote:
> Hi Laurent,
>
> Thank you very much for the reply.
>
> I tried it on a Windows 10 computer and it worked fine without
> installing any additional software.
>
> Also managed to capture USB traffic on Linux (didn't capture on Windows yet).
> I don't see a lot of traffic, most of the messages are USB and USBHID
> protocol messages for GET_STATUS, SET_FEATURE, GET_DESCRIPTOR etc.
>
> There is only one USBVIDEO protocol message for GET_CUR (0x81). Seems
> like this request fails the error "No such file or directory (-ENOENT)
> (-2). Does this sound like a bug in firmware / cause for the error we
> saw in dmesg output?
Yes, that error corresponds to the error message printed by the driver.
My guess is that Windows would send a different sequence of requests,
and the camera firmware assumes this will always be the case. The order
of the requests received from a Linux host doesn't match that, and the
firmware gets confused.
> Here's the full text of USBVIDEO request and response:
>
> REQUEST:
>
> Frame 86: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on
> interface 0
> USB URB
> [Source: host]
> [Destination: 2.13.0]
> URB id: 0xffff89299a435600
> URB type: URB_SUBMIT ('S')
> URB transfer type: URB_CONTROL (0x02)
> Endpoint: 0x80, Direction: IN
> Device: 13
> URB bus id: 2
> Device setup request: relevant (0)
> Data: not present ('<')
> URB sec: 1551797452
> URB usec: 468271
> URB status: Operation now in progress (-EINPROGRESS) (-115)
> URB length [bytes]: 34
> Data length [bytes]: 0
> [Response in: 87]
> Interval: 0
> Start frame: 0
> Copy of Transfer Flags: 0x00000200
> Number of ISO descriptors: 0
> [bInterfaceClass: Video (0x0e)]
> URB setup
> bRequest: GET CUR (0x81)
> Control Selector: Probe (0x01)
> Interface: 0x01
> Entity: 0x00
> wLength: 34
>
> RESPONSE:
>
> Frame 87: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on
> interface 0
> USB URB
> [Source: 2.13.0]
> [Destination: host]
> URB id: 0xffff89299a435600
> URB type: URB_COMPLETE ('C')
> URB transfer type: URB_CONTROL (0x02)
> Endpoint: 0x80, Direction: IN
> Device: 13
> URB bus id: 2
> Device setup request: not relevant ('-')
> Data: present (0)
> URB sec: 1551797457
> URB usec: 587755
> URB status: No such file or directory (-ENOENT) (-2)
> URB length [bytes]: 0
> Data length [bytes]: 0
> [Request in: 86]
> [Time from request: 5.119484000 seconds]
> Unused Setup Header
> Interval: 0
> Start frame: 0
> Copy of Transfer Flags: 0x00000200
> Number of ISO descriptors: 0
> [bInterfaceClass: Video (0x0e)]
> [Interface: 0x01]
> [Entity: 0x00]
> [Control Selector: Probe (0x01)]
--
Regards,
Laurent Pinchart