All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Ryan <mark.d.ryan@linux.intel.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	"Ryan, Mark D" <mark.d.ryan@intel.com>
Cc: "Sharp, Sarah A" <sarah.a.sharp@intel.com>,
	Mauro Carvalho Chehab <m.chehab@samsung.com>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: Dell XPS 12 USB camera bulk mode issues
Date: Wed, 26 Feb 2014 21:52:34 +0100	[thread overview]
Message-ID: <530E5412.8040500@linux.intel.com> (raw)
In-Reply-To: <4186365.nC1W9O3BqU@avalon>

Hi Laurent,

Thank you so much for your detailed response.

On 02/26/2014 04:40 PM, Laurent Pinchart wrote:
> Hi Mark,
>
> On Wednesday 26 February 2014 10:20:06 Ryan, Mark D wrote:
>> On Tuesday, February 25, 2014 10:50 PM Sarah Sharp wrote:
>>>
>>> Hi Laurent and Mauro,
>>>
>>> Mark has running into issues with the Realtek integrated webcam on a Dell
>>> XPS 12 system that uses bulk endpoints.  The webcam shows visible glitches
>>> with certain resolutions (stripes of frame missing, distorted images,
>>> purple and green colors, blank image, or missing the bottom half of the
>>> image).
>>
>>   [Ryan, Mark D]
>>
>> Sarah, thanks for the introduction.
>>
>> I can provide a little bit more information.
>>
>> 1. I've tried all the UVC driver quirks but none of these seem to help.
>
> That was a good idea, but there's no quirk for this kind of issue I'm afraid.
>
>> 2. I've also run some tests with the UVC traces enabled.  There are quite a
>> lot of errors.  I include a portion of the logs below.  They were generated
>> on Ubuntu 13.10 (linux 3.11.0-12) running guvcview recording YVUV 1280x720
>> at 10fps.
>
> You can set the trace parameter to 0x7bf in future tests to remove messages
> regarding the V4L2 API calls and timestamp statistics, it will make the log
> slightly more readable.
>
> Sarah has sent me two usbmon traces, one in a working case and the other in a
> non-working case. They unfortunately look both correct to me, so I'll likely
> need your help to debug this.
>
> Let's start with a bit of background information. I'll skip the UVC control
> protocol as that's not relevant to this discussion, except to mention that UVC
> uses control messages to negotiate the video format with the device, and
> receives the maximum payload transfer size (more about this below) from the
> device. Here's URB 61 in the non-working trace that commits the streaming
> parameters to the device (the maximum payload transfer size has been retrieved
> from the device previously and is committed without being modified by the
> driver).
>
> URB   Timestamp    Event       Address Type     Direction  Endpoint
> 61    2558.416852  Submission  4       Control  OUT        0
>
> SETUP Host-to-device Class request to Interface
> bRequest: SET CUR (01)
> wValue: 0200
> wIndex: INTF 1 ENTITY 0 (0001)
> wLength: 001a
>
> 26 data bytes
> bmHint                         0x01
> bFormatIndex                      2
> bFrameIndex                       3
> dwFrameInterval              333333
> wKeyFrameRate                     0
> wPFrameRate                       0
> wCompQuality                      0
> wCompWindowSize                   0
> wDelay                           32
> dwMaxVideoFrameSize          115200
> dwMaxPayloadTransferSize      43008
>
> You can find the script I use to decode the usbmon trace at
> http://www.ideasonboard.org/uvc/usbmon.py. Run it with the -C uvc option to
> decode the UVC protocol. You can also use the -a option to filter the URBs
> based on the device address.
>
> The equivalent URB in the working case is URB 101, and contains the following
> payload.
>
> SETUP Host-to-device Class request to Interface
> bRequest: SET CUR (01)
> wValue: 0200
> wIndex: INTF 1 ENTITY 0 (0001)
> wLength: 001a
>
> 26 data bytes
> bmHint                         0x01
> bFormatIndex                      2
> bFrameIndex                       4
> dwFrameInterval              333333
> wKeyFrameRate                     0
> wPFrameRate                       0
> wCompQuality                      0
> wCompWindowSize                   0
> wDelay                           32
> dwMaxVideoFrameSize          153600
> dwMaxPayloadTransferSize      43008
>
> The only differences are the bFrameIndex (used to select the resolution) and
> the dwMaxVideoFrameSize (the maximum size of the compressed frame, computed by
> the device as a worst case estimate using the size of the frame after
> decompression) values. The maximum payload transfer size is identical in the
> two cases. Nothing unexpected so far.
>
> After those URBs the uvcvideo driver starts submitting bulk URBs and get frame
> data back from the device. The device returns the following data in the first
> URB for the non-working and working cases respectively.
>
>    16262 data bytes
> 58595a63 64656667    XYZcdefg
> 68696a73 74757677    hijstuvw
> 78797a82 83848586    xyz‚ƒ„…†
> 8788898a 92939495    ‡ˆ‰Š’“”•
>
>    16262 data bytes
> 58595a63 64656667    XYZcdefg
> 68696a73 74757677    hijstuvw
> 78797a82 83848586    xyz‚ƒ„…†
> 8788898a 92939495    ‡ˆ‰Š’“”•
>
> The first few data bytes stored in the usbmon capture look like MJPEG Huffman
> table data. This is a violation of the UVC specification, the camera is
> supposed to start sending frames immediately. Furthermore, every payload must
> start with a UVC header, which is clearly not the case here.
>
> We're getting to the concept of payloads. UVC cuts frames in payloads that are
> then transmitted over isochronous or bulk endpoints. Payloads have a variable
> size with a fixed maximum size, and each payload starts with a UVC payload
> header. When using isochronous transfers each isochronous URB contains a
> single payload. When using bulk transfers payloads can be split across
> multiple bulk URBs. Each isochronous URB thus starts with a UVC header, while
> only the first bulk URB in a payload includes a header, the other containing
> frame data only.
>
> UVC headers start with a byte that contains the size of the header, followed
> by a byte containing the following flags.
>
> #define UVC_STREAM_EOH                                  (1 << 7)
> #define UVC_STREAM_ERR                                  (1 << 6)
> #define UVC_STREAM_STI                                  (1 << 5)
> #define UVC_STREAM_RES                                  (1 << 4)
> #define UVC_STREAM_SCR                                  (1 << 3)
> #define UVC_STREAM_PTS                                  (1 << 2)
> #define UVC_STREAM_EOF                                  (1 << 1)
> #define UVC_STREAM_FID                                  (1 << 0)
>
> EOH stands for End-Of-Header and is in practice always set. ERR denotes an
> error in the payload, STI denotes a still image (never set for video-only
> devices), RES is reserved, SCR and PTS are related to timestamp information
> contained in the header (the header contains 4 bytes of source clock data when
> SCR is set, and 6 bytes of presentation timestamp when PTS is set), EOF stands
> for End-Of-Frame and marks the last payload of a frame, and FID stands for
> Frame-Identifier and toggles with every frame.
>
> A payload ends either when the maximum payload size has been reached, or when
> a short bulk URB is transferred. Looking at the working capture trace, we get
> a repeating pattern of the following URBs.
>
>    16384 data bytes
> 0c8c026c 46e15af8    .Œ.lFáZø
> 4de15a05 ffd8ffdb    MáZ.ÿØÿÛ
> 00430003 02020202    .C......
> 02030202 02030303    ........
>
>    378 data bytes
> bed94ee3 bba0acab    ¾ÙNã» ¬«
> b5460d1d 5422ea34    µF..T"ê4
> d995a878 89df558a    Ù•¨x‰ßUŠ
> ded9f309 5c11fdea    ÞÙó.\.ýê
>
>    14 data bytes
> 0c8e026c 46e1530e    .Ž.lFáS.
> 4ee15a05 ffd9        NáZ.ÿÙ
>
> The first URB starts a payload and thus contains a header, starting with 0x0c
> 0x8c. This translates to 12 bytes of header data and the EOH, SCR and PTS
> bits. As SCR and PTS are set the header is expected to be 2 + 4 + 6 bytes
> long, which is correct. The EOF bit isn't set, so the payload isn't the last
> of the frame, and the FID bit is 0. The number of bytes transferred so far
> (16384) is smaller than the maximum payload size negotiated earlier, so the
> payload isn't finished.
>
> The second URB thus doesn't start by a header as it continues the payload. It
> contains frame data only. The URB is a short URB, and thus completes the
> payload (but not the frame).
>
> The third URB starts with a 12-byte header with the EOH, SCR, PTS and EOF bits
> set, and contains two more bytes of data (0xff 0xd9) that are expected at the
> end of the MJPEG frame. As the EOF bit is set the frame is now complete, and
> as the URB is short the payload is complete as well.
>
> The next three URBs are similar but have the FID header bit set this time, as
> the bit is required to be toggled for every frame. The pattern then repeats.
>
> The non-working case has the following pattern.
>
>    13334 data bytes
> 0c8cb210 18147994    .Œ²...y”
> 1f146203 ffd8ffdb    ..b.ÿØÿÛ
> 00430003 02020202    .C......
> 02030202 02030303    ........
>
>    14 data bytes
> 0c8eb210 181472aa    .޲...rª
> 1f146203 ffd9        ..b.ÿÙ
>
> The first URB starts with a header but is now a short URB and thus completes
> the payload. The second URB completes the frame. Nothing unexpected, the
> resolution is lower so we need less URBs to transfer a frame.
>
> The driver should handle both cases correctly. A quick analysis also indicates
> that the driver shouldn't get confused by the first incorrect URB, but I might
> be wrong.
>
> Looking below it looks like the driver is completely desynchronized with the
> payload headers. This would explain the symptoms that Sarah reported, as the
> driver could then interpret data as payload headers and base its state machine
> on random FID and EOF bits.
>
> With the information I've given you, could you try to log more information in
> the driver to try and find what goes wrong ? You could for instance log the
> content of each header at the beginning of the uvc_video_decode_start()
> function.

I can indeed.  I'll get back to you in the next few days with some more 
detailed logs.

>
>> [   80.490256] uvcvideo: Frame complete (FID bit toggled).
>> [   80.490262] uvcvideo: frame 2080 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2069725020/32605 [   80.490264]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.490606] uvcvideo: Frame complete (EOF found).
>> [   80.490942] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.490947] uvcvideo: Dropping payload (out of sync).
>> [   80.492920] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.492927] uvcvideo: Dropping payload (out of sync).
>> [   80.495352] uvcvideo: frame 2081 stats: 0/0/3 packets, 0/0/1 pts (!early
>> !initial), 2/3 scr, last pts/stc/sof 2103017049/2069659484/32604 [
>> 80.495360] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.496066] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.498021] uvcvideo: frame 2082 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2103148379/2103148379/32601 [
>> 80.498030] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.498033] uvcvideo: Frame complete (FID bit toggled).
>> [   80.498039] uvcvideo: frame 2083 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2103213661/2103213661/32349 [
>> 80.498042] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.500420] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.501122] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.502742] uvcvideo: Frame complete (EOF found).
>> [   80.503095] uvcvideo: frame 2084 stats: 0/0/3 packets, 1/1/2 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2102754899/2069659484/32604 [
>> 80.503100] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.505510] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.505890] uvcvideo: Frame complete (EOF found).
>> [   80.506245] uvcvideo: frame 2085 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2119532118/2119532118/32341 [
>> 80.506249] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.507845] uvcvideo: Frame complete (EOF found).
>> [   80.508187] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.508191] uvcvideo: Dropping payload (out of sync).
>> [   80.510747] uvcvideo: frame 2086 stats: 0/0/2 packets, 0/0/1 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2137357669/2085781330/32594 [
>> 80.510752] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.511463] uvcvideo: frame 2087 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2081456144/2081456144/32784 [
>> 80.511471] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.511474] uvcvideo: Frame complete (FID bit toggled).
>> [   80.511480] uvcvideo: frame 2088 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102493775/2102559313/33362 [
>> 80.511483] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.513895] uvcvideo: frame 2089 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102493775/2102559313/33362 [
>> 80.513904] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.513907] uvcvideo: Frame complete (FID bit toggled).
>> [   80.513913] uvcvideo: frame 2090 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2086567773/2086502238/32605 [
>> 80.513916] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.514608] uvcvideo: frame 2091 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2086567773/2086502238/32605 [
>> 80.514617] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.514620] uvcvideo: Frame complete (FID bit toggled).
>> [   80.514626] uvcvideo: frame 2092 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102754901/2102754901/32341 [
>> 80.514629] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.517141] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.517858] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.520396] uvcvideo: frame 2093 stats: 0/0/3 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2098429971/2098692119/32792 [
>> 80.520404] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.520407] uvcvideo: Frame complete (FID bit toggled).
>> [   80.520413] uvcvideo: frame 2094 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2081456656/2081456656/33296 [
>> 80.520416] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.521111] uvcvideo: frame 2095 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2081456656/2081456656/33296 [
>> 80.521119] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.521122] uvcvideo: Frame complete (FID bit toggled).
>> [   80.521128] uvcvideo: frame 2096 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102951768/2102820696/32598 [
>> 80.521131] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.523496] uvcvideo: frame 2097 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102951768/2102820696/32598 [
>> 80.523505] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.523508] uvcvideo: Frame complete (FID bit toggled).
>> [   80.523514] uvcvideo: frame 2098 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119794008/2119728472/32088 [
>> 80.523517] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.523831] uvcvideo: Frame complete (EOF found).
>> [   80.525463] uvcvideo: Dropping payload (out of sync).
>> [   80.526190] uvcvideo: frame 2099 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 96354447/97436625/437 [   80.526199]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.528590] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.530563] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.531249] uvcvideo: frame 2100 stats: 0/0/3 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2102558546/2102624083/32595 [
>> 80.531258] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.531261] uvcvideo: Frame complete (FID bit toggled).
>> [   80.531267] uvcvideo: frame 2101 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119401555/2119401555/32851 [
>> 80.531270] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.533319] uvcvideo: Frame complete (EOF found).
>> [   80.533683] uvcvideo: frame 2102 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119401555/2119401555/32851 [
>> 80.533692] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.535641] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.536353] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.538778] uvcvideo: frame 2103 stats: 0/0/3 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2102361937/2102361935/32591 [
>> 80.538787] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.538790] uvcvideo: Frame complete (FID bit toggled).
>> [   80.538796] uvcvideo: frame 2104 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2117435189/2100657973/32567 [
>> 80.538799] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.539116] uvcvideo: Frame complete (EOF found).
>> [   80.540751] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.540758] uvcvideo: Dropping payload (out of sync).
>> [   80.542582] uvcvideo: frame 2105 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2119270481/2119336018/32850 [
>> 80.542593] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.543286] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.545268] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.547699] uvcvideo: frame 2106 stats: 0/0/3 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2101378880/2101247806/32574 [
>> 80.547707] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.547710] uvcvideo: Frame complete (FID bit toggled).
>> [   80.547716] uvcvideo: frame 2107 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2118811466/2101903434/32840 [
>> 80.547719] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.548047] uvcvideo: Frame complete (EOF found).
>> [   80.548394] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.548401] uvcvideo: Dropping payload (out of sync).
>> [   80.550362] uvcvideo: frame 2108 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2085125960/2085060423/32582 [
>> 80.550371] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.552830] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.553372] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.561825] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.562162] uvcvideo: Frame complete (EOF found).
>> [   80.562497] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.562505] uvcvideo: Dropping payload (out of sync).
>> [   80.564927] uvcvideo: frame 2109 stats: 0/0/6 packets, 3/3/4 pts (!early
>> initial), 5/6 scr, last pts/stc/sof 97857347/2068480074/32842 [
>> 80.564935] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.566925] uvcvideo: frame 2110 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2069069907/2069069907/32851 [
>> 80.566934] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.566937] uvcvideo: Frame complete (FID bit toggled).
>> [   80.566943] uvcvideo: frame 2111 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102558546/2102493009/32593 [
>> 80.566946] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.567599] uvcvideo: frame 2112 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102558546/2102493009/32593 [
>> 80.567607] uvcvideo: Frame complete (FID bit toggled).
>> [   80.567613] uvcvideo: frame 2113 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/0 scr, last pts/stc/sof 0/0/0 [   80.570041] uvcvideo: frame
>> 2114 stats: 0/0/1 packets, 0/0/0 pts (!early !initial), 0/0 scr, last
>> pts/stc/sof 0/0/0 [   80.570050] uvcvideo: Marking buffer as bad (error bit
>> set).
>> [   80.570053] uvcvideo: Frame complete (FID bit toggled).
>> [   80.570059] uvcvideo: frame 2115 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2068938833/32849 [   80.570062]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.570379] uvcvideo: Frame complete (EOF found).
>> [   80.572032] uvcvideo: frame 2116 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2068938833/32849 [   80.572041]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.572713] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.575138] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.577804] uvcvideo: frame 2117 stats: 0/0/4 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2084667459/2084470848/32830 [
>> 80.577813] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.577816] uvcvideo: Frame complete (FID bit toggled).
>> [   80.577822] uvcvideo: frame 2118 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2069004371/32851 [   80.577825]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.578143] uvcvideo: Frame complete (EOF found).
>> [   80.580219] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.580223] uvcvideo: Dropping payload (out of sync).
>> [   80.582212] uvcvideo: frame 2119 stats: 0/0/2 packets, 0/0/0 pts (!early
>> !initial), 1/2 scr, last pts/stc/sof 0/2069266518/32854 [   80.582221]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.582896] uvcvideo: frame 2120 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2086371163/2086371163/32604 [
>> 80.582904] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.582907] uvcvideo: Frame complete (FID bit toggled).
>> [   80.582913] uvcvideo: frame 2121 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102951768/2102951768/32600 [
>> 80.582916] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.584748] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.586723] uvcvideo: frame 2122 stats: 0/0/2 packets, 0/0/1 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2102951768/2036039771/32859 [
>> 80.586731] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.586734] uvcvideo: Frame complete (FID bit toggled).
>> [   80.586740] uvcvideo: frame 2123 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2052489304/32856 [   80.586743]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.587067] uvcvideo: Frame complete (EOF found).
>> [   80.588555] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.588564] uvcvideo: Dropping payload (out of sync).
>> [   80.590556] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.590564] uvcvideo: Dropping payload (out of sync).
>> [   80.591231] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.591239] uvcvideo: Dropping payload (out of sync).
>> [   80.593662] uvcvideo: frame 2124 stats: 0/0/4 packets, 2/3/3 pts (!early
>> !initial), 3/4 scr, last pts/stc/sof 2086240088/2086240089/32601 [
>> 80.593670] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.593995] uvcvideo: Frame complete (EOF found).
>> [   80.595639] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.595646] uvcvideo: Dropping payload (out of sync).
>> [   80.596344] uvcvideo: frame 2125 stats: 0/0/2 packets, 0/0/1 pts (!early
>> !initial), 1/2 scr, last pts/stc/sof 2081456144/2081456144/32784 [
>> 80.596353] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.598768] uvcvideo: frame 2126 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2086371161/2086240091/32601 [
>> 80.598776] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.598779] uvcvideo: Frame complete (FID bit toggled).
>> [   80.598785] uvcvideo: frame 2127 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2103213916/2103279453/32605 [
>> 80.598788] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.600741] uvcvideo: frame 2128 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2103213916/2103279453/32605 [
>> 80.600749] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.600753] uvcvideo: Frame complete (FID bit toggled).
>> [   80.600758] uvcvideo: frame 2129 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102755157/2102624085/32595 [
>> 80.600761] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.601436] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.603280] uvcvideo: frame 2130 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2086502237/2086502237/32605 [
>> 80.603288] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.603291] uvcvideo: Frame complete (FID bit toggled).
>> [   80.603297] uvcvideo: frame 2131 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2066711095/33331 [   80.603300]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.604922] uvcvideo: Frame complete (EOF found).
>> [   80.605261] uvcvideo: frame 2132 stats: 0/0/1 packets, 0/0/0 pts (!early
>> !initial), 0/1 scr, last pts/stc/sof 0/2066711095/33331 [   80.605270]
>> uvcvideo: Marking buffer as bad (error bit set).
>> [   80.605627] uvcvideo: Frame complete (EOF found).
>> [   80.605982] uvcvideo: frame 2133 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119532117/2119597654/32342 [
>> 80.605990] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.608029] uvcvideo: Frame complete (EOF found).
>> [   80.608384] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.608391] uvcvideo: Dropping payload (out of sync).
>> [   80.610344] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.610353] uvcvideo: Dropping payload (out of sync).
>> [   80.612192] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.612196] uvcvideo: Dropping payload (out of sync).
>> [   80.612941] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.612948] uvcvideo: Dropping payload (out of sync).
>> [   80.615462] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.615469] uvcvideo: Dropping payload (out of sync).
>> [   80.616182] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.616190] uvcvideo: Dropping payload (out of sync).
>> [   80.618717] uvcvideo: frame 2134 stats: 0/0/7 packets, 4/6/5 pts (!early
>> initial), 6/7 scr, last pts/stc/sof 2102296398/2102165324/32588 [
>> 80.618726] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.619425] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.621815] uvcvideo: frame 2135 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2081456656/2081456656/33296 [
>> 80.621824] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.621827] uvcvideo: Frame complete (FID bit toggled).
>> [   80.621834] uvcvideo: frame 2136 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2102820693/2102820694/32600 [
>> 80.621837] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.623785] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.626895] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.628846] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.630705] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.632698] uvcvideo: frame 2137 stats: 0/0/6 packets, 5/5/6 pts (!early
>> initial), 5/6 scr, last pts/stc/sof 2102558546/2102558546/32594 [
>> 80.632706] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.632709] uvcvideo: Frame complete (FID bit toggled).
>> [   80.632715] uvcvideo: frame 2138 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119336019/2102558802/32850 [
>> 80.632718] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.633058] uvcvideo: Frame complete (EOF found).
>> [   80.633403] uvcvideo: frame 2139 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2119336019/2102558802/32850 [
>> 80.633412] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.635832] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.637813] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.638509] uvcvideo: frame 2140 stats: 0/0/3 packets, 2/2/3 pts (!early
>> initial), 2/3 scr, last pts/stc/sof 2102493009/2102493009/32593 [
>> 80.638523] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.638527] uvcvideo: Frame complete (FID bit toggled).
>> [   80.638537] uvcvideo: frame 2141 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2117435445/2100723765/32824 [
>> 80.638541] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.638817] uvcvideo: Frame complete (EOF found).
>> [   80.641019] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.641028] uvcvideo: Dropping payload (out of sync).
>> [   80.641709] uvcvideo: frame 2142 stats: 0/0/2 packets, 1/1/2 pts (!early
>> initial), 1/2 scr, last pts/stc/sof 2102362191/2102493265/32847 [
>> 80.641719] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.644143] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.646129] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.646798] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.649234] uvcvideo: frame 2143 stats: 0/0/4 packets, 3/3/4 pts (!early
>> initial), 3/4 scr, last pts/stc/sof 2101903432/2102034506/32844 [
>> 80.649243] uvcvideo: Marking buffer as bad (error bit set).
>> [   80.649247] uvcvideo: Frame complete (FID bit toggled).
>> [   80.649254] uvcvideo: frame 2144 stats: 0/0/1 packets, 0/0/1 pts (!early
>> initial), 0/1 scr, last pts/stc/sof 2085060423/2084994887/32582 [
>> 80.649256] uvcvideo: Marking buffer as bad (error bit set).
>


  reply	other threads:[~2014-02-26 20:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-25 21:49 Dell XPS 12 USB camera bulk mode issues Sarah Sharp
2014-02-26 10:20 ` Ryan, Mark D
2014-02-26 15:40   ` Laurent Pinchart
2014-02-26 20:52     ` Mark Ryan [this message]
2014-02-28  9:34     ` Mark Ryan
2014-03-04 11:11       ` Laurent Pinchart
2014-03-04 16:16         ` Mark Ryan
2014-02-26 14:36 ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=530E5412.8040500@linux.intel.com \
    --to=mark.d.ryan@linux.intel.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=m.chehab@samsung.com \
    --cc=mark.d.ryan@intel.com \
    --cc=sarah.a.sharp@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.