Realsense R200 camera enabling on chromium-os v3.18 kernel
Reported by
gs0...@gmail.com,
Apr 6 2016
|
||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; CrOS x86_64 8129.0.2016) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2693.2 Safari/537.36 Platform: 8129.0.2016_04_05_2247 (Test Build - harrypan) developer-build chell Example URL: https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md Steps to reproduce the problem: With David's 'crouton' gadget I could play around w/ R200 camera in 'unity-desktop', however the chromium-os v3.18 has some bugs easy to crash in UVC driver, hence it need some tinkering to enable R200 on chromebook w/ 3.18 kernel steps to : 1. install 'crouton' w/ unity-desktop; reference: https://github.com/dnschneid/crouton/blob/master/README.md 2. follow 'librealsense' installation guide; reference: https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md 3. launch demonstration programs of librealsense, it either malfunctions or crashes thereof What is the expected behavior? no malfunction, nor crash What went wrong? Bugs in Linux UVC driver require to be patched Did this work before? N/A Is it a problem with Flash or HTML5? N/A Does this work in other browsers? N/A Chrome version: 51.0.2693.2 Channel: n/a OS Version: 8129.0.2016 Flash Version:
,
Apr 6 2016
Snapshots of sanity tests using librealsense demonstration programs, w/ R200 camera.
,
Apr 6 2016
amd64-generic board users might need additional commit for build break when selecting v3.18 kernel: https://chromium-review.googlesource.com/#/c/337543/
,
Apr 7 2016
supplement of step-1 crouton installation: $ cd <crouton_download_path> $ sudo sh ./crouton -t unity-desktop -r trusty then go to step-2 for librealsense github project
,
Apr 7 2016
what's your question? if you are filing a bug, what's the expected and actual behavior?
,
Apr 8 2016
The bug is in Linux UVC driver, with current chromium-os v3.18 kernel, it causes the librealsense demonstration programs either malfunction, or crash directly, I will upload crash log later
,
Apr 8 2016
log attached malfunction log: [ 560.327378] uvcvideo: Failed to set UVC commit control : -32 (exp. 34). [ 560.327409] uvcvideo 2-3:1.1: resume error -5 crash log: [ 578.052161] BUG: unable to handle kernel NULL pointer dereference at (null) [ 578.052192] IP: [<ffffffffc062f31a>] uvc_queue_next_buffer+0x284a/0x3744 [uvcvideo] [ 578.052222] PGD 0 [ 578.052233] Oops: 0002 [#1] PREEMPT SMP [ 578.054628] gsmi: Log Shutdown Reason 0x03 [ 578.054640] Modules linked in: uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core ccm uinput i2c_dev snd_soc_dmic snd_soc_skl_nau88l25_ssm4567 snd_soc_hdac_hdmi rfcomm snd_soc_skl snd_soc_skl_ipc snd_hda_ext_core snd_hda_core memconsole_x86 memconsole zram snd_soc_nau8825 snd_soc_ssm4567 fuse nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iwlmvm iwl7000_mac80211 iwlwifi cfg80211 btusb btrtl btbcm btintel bluetooth joydev snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device ppp_async ppp_generic slhc tun [ 578.054811] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W 3.18.0 #2 [ 578.054826] Hardware name: Hewlett-Packard Chell/Chell, BIOS Google_Chell.7894.0.0 02/04/2016 [ 578.054844] task: ffff8802758ce300 ti: ffff880275994000 task.ti: ffff880275994000 [ 578.054860] RIP: 0010:[<ffffffffc062f31a>] [<ffffffffc062f31a>] uvc_queue_next_buffer+0x284a/0x3744 [uvcvideo] [ 578.054886] RSP: 0018:ffff88027ec83c68 EFLAGS: 00010046 [ 578.054899] RAX: 0000000000000000 RBX: ffff880209288000 RCX: 0000000000000240 [ 578.054914] RDX: 0000000000003335 RSI: 0000000000000002 RDI: 0000000000000240 [ 578.054928] RBP: ffff88027ec83cd8 R08: ffff8802752e0680 R09: ffffffffa723703f [ 578.054943] R10: 0000000000000000 R11: 000000005ad97000 R12: 0000000000000000 [ 578.054958] R13: ffff880257f2de30 R14: 0000000000000006 R15: ffff880257f2d800 [ 578.054974] FS: 0000000000000000(0000) GS:ffff88027ec80000(0000) knlGS:0000000000000000 [ 578.054991] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 578.055003] CR2: 0000000000000000 CR3: 0000000027a1a000 CR4: 00000000003407e0 [ 578.055018] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 578.055032] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 578.055046] Stack: [ 578.055052] ffff88020c634800 0000332d024070f0 0000024000003329 0000800001000001 [ 578.055075] 00000001810000c6 0000000000000241 000000002cc56ecc f2b35d3847abde40 [ 578.055097] 0000000000000400 ffff880257f2d800 ffff880209288000 ffff88006f2a3c00 [ 578.055118] Call Trace: [ 578.055126] <IRQ> [ 578.055133] [<ffffffffc062f747>] uvc_queue_next_buffer+0x2c77/0x3744 [uvcvideo] [ 578.055162] [<ffffffffc062eb40>] uvc_queue_next_buffer+0x2070/0x3744 [uvcvideo] [ 578.055184] [<ffffffffa720cc45>] __usb_hcd_giveback_urb+0xa8/0xe7 [ 578.055201] [<ffffffffa720cd98>] usb_hcd_giveback_urb+0x3d/0xcc [ 578.055219] [<ffffffffa723cc72>] xhci_irq+0x1050/0x1255 [ 578.055235] [<ffffffffa723ce88>] xhci_msi_irq+0x11/0x13 [ 578.055252] [<ffffffffa6e7cb46>] handle_irq_event_percpu+0x51/0x1b4 [ 578.055269] [<ffffffffa6e7ccea>] handle_irq_event+0x41/0x61 [ 578.055285] [<ffffffffa6e2c250>] ? apic_eoi+0x18/0x1a [ 578.055301] [<ffffffffa6e7f774>] handle_edge_irq+0xa1/0xba [ 578.055317] [<ffffffffa6e044d6>] handle_irq+0x10f/0x117 [ 578.055334] [<ffffffffa742bf4e>] do_IRQ+0x4e/0xc4 [ 578.055356] [<ffffffffa742a4aa>] common_interrupt+0x6a/0x6a [ 578.055369] <EOI> [ 578.055376] [<ffffffffa72c0f78>] ? cpuidle_enter_state+0x81/0xea [ 578.055402] [<ffffffffa72c0f74>] ? cpuidle_enter_state+0x7d/0xea [ 578.055418] [<ffffffffa72c100d>] cpuidle_enter+0x17/0x19 [ 578.055434] [<ffffffffa6e7117a>] cpu_startup_entry+0x216/0x2e4 [ 578.055452] [<ffffffffa6e29aea>] start_secondary+0x16b/0x198 [ 578.055465] Code: 06 00 00 4c 89 ef e8 d1 9f df e6 48 89 c6 41 8b 87 20 06 00 00 42 8b 14 33 8b 7d a4 66 8b 4d 9a 48 c1 e0 05 49 03 87 18 06 00 00 <89> 10 66 89 48 04 31 d2 66 89 78 18 4c 8b 4d b8 4c 8b 55 c0 4c [ 578.055621] RIP [<ffffffffc062f31a>] uvc_queue_next_buffer+0x284a/0x3744 [uvcvideo] [ 578.055642] RSP <ffff88027ec83c68> [ 578.055651] CR2: 0000000000000000 [ 578.055661] ---[ end trace 87a6b02d4c319165 ]--- [ 578.077570] Kernel panic - not syncing: Fatal exception in interrupt [ 578.077628] Kernel Offset: 0x25e00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
,
Apr 8 2016
rewind to UVC unpatched kernel and capture malfunction again.
(forgive me I did not clean log so don't confuse with ramoops and kcrash files)
userspace log:
(trusty)harrypan@localhost:~/github/librealsense/bin$ ./cpp-enumerate-devices
RealSense error calling rs_create_context(api_version:4):
UVCIOC_CTRL_QUERY:UVC_SET_CUR error 2, No such file or directory
kernel message log:
2016-04-08T10:39:57.667789+08:00 INFO kernel: [ 246.689347] usb 2-3: new SuperSpeed USB device number 2 using xhci_hcd
2016-04-08T10:39:57.681710+08:00 INFO kernel: [ 246.703672] usb 2-3: New USB device found, idVendor=8086, idProduct=0a80
2016-04-08T10:39:57.681754+08:00 INFO kernel: [ 246.703696] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2016-04-08T10:39:57.681763+08:00 INFO kernel: [ 246.703713] usb 2-3: Product: Intel RealSense 3D Camera R200
2016-04-08T10:39:57.681772+08:00 INFO kernel: [ 246.703727] usb 2-3: Manufacturer: Intel Corp
2016-04-08T10:39:57.681779+08:00 INFO kernel: [ 246.703738] usb 2-3: SerialNumber: SN_2101000066
2016-04-08T10:39:57.684740+08:00 INFO kernel: [ 246.705850] uvcvideo: Unknown video format 49323159-0000-0010-8000-00aa00389b71
2016-04-08T10:39:57.684769+08:00 INFO kernel: [ 246.705879] uvcvideo: Unknown video format 20493859-0000-0010-8000-00aa00389b71
2016-04-08T10:39:57.684774+08:00 INFO kernel: [ 246.705906] uvcvideo: Found UVC 1.10 device Intel RealSense 3D Camera R200 (8086:0a80)
2016-04-08T10:39:57.686696+08:00 INFO kernel: [ 246.708608] uvcvideo: Unknown video format 2036315a-0000-0010-8000-00aa00389b71
2016-04-08T10:39:57.686720+08:00 INFO kernel: [ 246.708632] uvcvideo: Found UVC 1.10 device Intel RealSense 3D Camera R200 (8086:0a80)
2016-04-08T10:39:57.688741+08:00 INFO kernel: [ 246.710735] uvcvideo: Unable to create debugfs 2-2 directory.
2016-04-08T10:39:57.690730+08:00 INFO kernel: [ 246.711906] uvcvideo: Unknown video format 30315752-0000-0010-8000-00aa00389b71
2016-04-08T10:39:57.690754+08:00 INFO kernel: [ 246.711931] uvcvideo: Found UVC 1.10 device Intel RealSense 3D Camera R200 (8086:0a80)
2016-04-08T10:39:57.691733+08:00 INFO kernel: [ 246.713714] uvcvideo: Unable to create debugfs 2-2 directory.
...
2016-04-08T10:40:01.890842+08:00 ERR kernel: [ 250.913975] uvcvideo: Failed to set UVC commit control : -32 (exp. 34).
2016-04-08T10:40:01.890886+08:00 ERR kernel: [ 250.914011] uvcvideo 2-3:1.1: resume error -5
2016-04-08T10:40:01.892818+08:00 ERR kernel: [ 250.916485] uvcvideo: Failed to set UVC commit control : -32 (exp. 34).
2016-04-08T10:40:01.892860+08:00 ERR kernel: [ 250.916518] uvcvideo 2-3:1.3: resume error -5
2016-04-08T10:40:02.028836+08:00 ERR kernel: [ 251.052130] uvcvideo: Failed to query (GET_LEN) UVC control 1 on unit 2: -32 (exp. 2).
,
Apr 8 2016
Thank you for providing more feedback. Adding requester "yiningc@chromium.org" for another review and adding "Needs-Review" label for tracking. For more details visit https://sites.google.com/a/chromium.org/dev/issue-tracking/autotriage - Your friendly Sheriffbot
,
Apr 8 2016
crash in chromeos kernel as per comment #6
,
Apr 14 2016
Marc and Benson, these series may not be some important from your ken, but still add you guys as reviewers. It's about realsense camera enabling on 3.18 kernel w/ buggy uvcvideo driver.
,
Apr 14 2016
Thanks! We'll take a look at these.
,
Apr 14 2016
sorry for typo: some important -> so important
,
Apr 29 2016
,
May 4 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/a24d33c674cf6404ef90247e17be112531be6424 commit a24d33c674cf6404ef90247e17be112531be6424 Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Thu Sep 30 13:17:54 2010 UPSTREAM: [media] uvcvideo: Move to video_ioctl2 Simplify ioctl handling by using video_ioctl2. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit d5e90b7a6cd1ce9512f8a2c9b1be70155300d2da) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: If669870a0ac607b0b5d7619cfa69040ced1ba31b Reviewed-on: https://chromium-review.googlesource.com/337385 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/a24d33c674cf6404ef90247e17be112531be6424/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/a24d33c674cf6404ef90247e17be112531be6424/drivers/media/usb/uvc/uvc_v4l2.c [modify] https://crrev.com/a24d33c674cf6404ef90247e17be112531be6424/drivers/media/usb/uvc/uvc_driver.c
,
May 4 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6306a465c58a68e2d491c461b8c255b6c08b2d5c commit 6306a465c58a68e2d491c461b8c255b6c08b2d5c Author: Takashi Iwai <tiwai@suse.de> Date: Fri Oct 24 08:10:20 2014 UPSTREAM: [media] uvcvideo: Fix destruction order in uvc_delete() We've got a bug report at disconnecting a Webcam, where the kernel spews warnings like below: WARNING: CPU: 0 PID: 8385 at ../fs/sysfs/group.c:219 sysfs_remove_group+0x87/0x90() sysfs group c0b2350c not found for kobject 'event3' CPU: 0 PID: 8385 Comm: queue2:src Not tainted 3.16.2-1.gdcee397-default #1 Hardware name: ASUSTeK Computer INC. A7N8X-E/A7N8X-E, BIOS ASUS A7N8X-E Deluxe ACPI BIOS Rev 1013 11/12/2004 c08d0705 ddc75cbc c0718c5b ddc75ccc c024b654 c08c6d44 ddc75ce8 000020c1 c08d0705 000000db c03d1ec7 c03d1ec7 00000009 00000000 c0b2350c d62c9064 ddc75cd4 c024b6a3 00000009 ddc75ccc c08c6d44 ddc75ce8 ddc75cfc c03d1ec7 Call Trace: [<c0205ba6>] try_stack_unwind+0x156/0x170 [<c02046f3>] dump_trace+0x53/0x180 [<c0205c06>] show_trace_log_lvl+0x46/0x50 [<c0204871>] show_stack_log_lvl+0x51/0xe0 [<c0205c67>] show_stack+0x27/0x50 [<c0718c5b>] dump_stack+0x3e/0x4e [<c024b654>] warn_slowpath_common+0x84/0xa0 [<c024b6a3>] warn_slowpath_fmt+0x33/0x40 [<c03d1ec7>] sysfs_remove_group+0x87/0x90 [<c05a2c54>] device_del+0x34/0x180 [<c05e3989>] evdev_disconnect+0x19/0x50 [<c05e06fa>] __input_unregister_device+0x9a/0x140 [<c05e0845>] input_unregister_device+0x45/0x80 [<f854b1d6>] uvc_delete+0x26/0x110 [uvcvideo] [<f84d66f8>] v4l2_device_release+0x98/0xc0 [videodev] [<c05a25bb>] device_release+0x2b/0x90 [<c04ad8bf>] kobject_cleanup+0x6f/0x1a0 [<f84d5453>] v4l2_release+0x43/0x70 [videodev] [<c0372f31>] __fput+0xb1/0x1b0 [<c02650c1>] task_work_run+0x91/0xb0 [<c024d845>] do_exit+0x265/0x910 [<c024df64>] do_group_exit+0x34/0xa0 [<c025a76f>] get_signal_to_deliver+0x17f/0x590 [<c0201b6a>] do_signal+0x3a/0x960 [<c02024f7>] do_notify_resume+0x67/0x90 [<c071ebb5>] work_notifysig+0x30/0x3b [<b7739e60>] 0xb7739e5f ---[ end trace b1e56095a485b631 ]--- The cause is that uvc_status_cleanup() is called after usb_put_*() in uvc_delete(). usb_put_*() removes the sysfs parent and eventually removes the children recursively, so the later device_del() can't find its sysfs. The fix is simply rearrange the call orders in uvc_delete() so that the child is removed before the parent. Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=897736 Reported-and-tested-by: Martin Pluskal <mpluskal@suse.com> BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 2228d80dd05a4fc5a410fde847677b8fb3eb23d7) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I16d5fb77592fb32a586218edc1dd2ca10a11f75e Reviewed-on: https://chromium-review.googlesource.com/337384 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/6306a465c58a68e2d491c461b8c255b6c08b2d5c/drivers/media/usb/uvc/uvc_driver.c
,
May 5 2016
Okay, I see one of these commits break the patchset due to aggressively backport newer commits, it looks potentially break other platform/combination, I might need to start over again: git lop -3 188e5b32e02d drivers/media/usb/uvc/ 188e5b32e02d 2015-09-22 Junghak Sung BACKPORT: [media] videobuf2: Restructure vb2_buffer 5d2cf82f4f14 2015-09-22 Junghak Sung BACKPORT: [media] videobuf2: Replace videobuf2-core with videobuf2-v4l2 db006d2f8aad 2015-10-06 Junghak Sung BACKPORT: [media] videobuf2: Change queue_setup argument At the meantime, if chromium-os developer has experience to deal w/ such scenario, kindly enlighten me as well.
,
May 5 2016
I integrated again, in order to respect commit of 188e5b32e02d, revised two UPSTREAM to BACKPORT, and skipped one UPSTREAM commit. Kindly review again, thanks.
,
May 11 2016
rebased again
,
May 16 2016
Hi Harry, I reviewed your patch series again. Looks ok, but looks like you ran git cherry-pick with "-sx" again, so there's some extra stuff in all of the commit messages that don't need to be there. Thanks, Benson
,
May 16 2016
appreciate review, will clean up soon.
,
May 16 2016
Looks good. Looks like the commit message changes didn't affect my +2. You're all LGTM'd to go for the whole series.
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ab1a1c5b13690b255241183b781af877a02e64b1 commit ab1a1c5b13690b255241183b781af877a02e64b1 Author: Aviv Greenberg <avivgr@gmail.com> Date: Wed Feb 03 17:08:52 2016 UPSTREAM: [media] UVC: Add support for R200 depth camera Add support for Intel R200 depth camera in uvc driver. This includes adding new uvc GUIDs for the new pixel formats, adding new V4L pixel format definition to user api headers, and updating the uvc driver GUID-to-4cc tables with the new formats. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Tested-by: Greenberg, Aviv D <aviv.d.greenberg@intel.com> Signed-off-by: Aviv Greenberg <aviv.d.greenberg@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 5d8d8db851ef81337e7026b32a9d5a9cfb2271d5) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I88395edee6ce8835900225448d0409fa0078ffd3 Reviewed-on: https://chromium-review.googlesource.com/337366 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/ab1a1c5b13690b255241183b781af877a02e64b1/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/ab1a1c5b13690b255241183b781af877a02e64b1/include/uapi/linux/videodev2.h [modify] https://crrev.com/ab1a1c5b13690b255241183b781af877a02e64b1/drivers/media/usb/uvc/uvc_driver.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/5edc92cffab7829660f5f3c2b0cf597f084ae4d1 commit 5edc92cffab7829660f5f3c2b0cf597f084ae4d1 Author: Aviv Greenberg <aviv.d.greenberg@intel.com> Date: Wed Dec 03 11:14:09 2014 UPSTREAM: [media] v4l: Add packed Bayer raw10 pixel formats These formats are just like 10-bit raw bayer formats that exist already, but the pixels are not padded to byte boundaries. Instead, the eight high order bits of four consecutive pixels are stored in four bytes, followed by a byte of two low order bits of each of the four pixels. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Aviv Greenberg <aviv.d.greenberg@intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 4353e36ee84d936859eb6d65ecd9d3076edd11bc) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I9846d5858d269a8cbed75d17ae6cca989553f3b6 Reviewed-on: https://chromium-review.googlesource.com/339299 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [add] https://crrev.com/5edc92cffab7829660f5f3c2b0cf597f084ae4d1/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml [modify] https://crrev.com/5edc92cffab7829660f5f3c2b0cf597f084ae4d1/Documentation/DocBook/media/v4l/pixfmt.xml [modify] https://crrev.com/5edc92cffab7829660f5f3c2b0cf597f084ae4d1/include/uapi/linux/videodev2.h
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/565aa30da166b7aa3bc8f828fb47aa5ef708b84f commit 565aa30da166b7aa3bc8f828fb47aa5ef708b84f Author: Sakari Ailus <sakari.ailus@iki.fi> Date: Sun Dec 07 23:17:49 2014 UPSTREAM: [media] DocBook: v4l: Rearrange raw bayer format definitions, remove bad comment Rearrange 12-bit raw bayer format definitions after 10-bit ones. Also remove the comment related to 16-bit bayer formats, it was simply wrong. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit cbb77bc281d697764dbb035157b643a8cbc9df30) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I3a8d1cc1ea217b16dc3b9c8112ef4b69abab888c Reviewed-on: https://chromium-review.googlesource.com/339298 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/565aa30da166b7aa3bc8f828fb47aa5ef708b84f/include/uapi/linux/videodev2.h
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/c0979a5d8475c228be4c63f61cdbd1f38944581c commit c0979a5d8475c228be4c63f61cdbd1f38944581c Author: Aviv Greenberg <aviv.d.greenberg@intel.com> Date: Tue Sep 02 06:16:28 2014 UPSTREAM: [media] uvcvideo: Remove extra commit on resume() 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. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Aviv Greenberg <aviv.d.greenberg@intel.com> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 9fae30acdeefb8955c9f90d4d18a3d1dc599a1ff) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I6bd63e5293b4cdc2824b4891d682900e6507479d Reviewed-on: https://chromium-review.googlesource.com/337466 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/c0979a5d8475c228be4c63f61cdbd1f38944581c/drivers/media/usb/uvc/uvc_video.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ea138225648b2f13fcbb9652d20a685e5e1f3af7 commit ea138225648b2f13fcbb9652d20a685e5e1f3af7 Author: William Manley <will@williammanley.net> Date: Mon Dec 08 18:57:58 2014 UPSTREAM: [media] uvcvideo: Add GUID for BGR 8:8:8 The Magewell XI100DUSB-HDMI[1] video capture device reports the pixel format "e436eb7d-524f-11ce-9f53-0020af0ba770". This is its GUID for BGR 8:8:8. The UVC 1.5 spec[2] only defines GUIDs for YUY2, NV12, M420 and I420. This seems to be an extension documented in the Microsoft Windows Media Format SDK[3] - or at least the Media Format SDK was the only hit that Google gave when searching for the GUID. This Media Format SDK defines this GUID as corresponding to `MEDIASUBTYPE_RGB24`. Note though, the XI100DUSB outputs BGR e.g. byte-reversed. I don't know if its the capture device in error or Microsoft mean BGR when they say RGB. [1]: http://www.magewell.com/hardware/dongles/xi100dusb-hdmi/xi100dusb-hdmi_features.html?lang=en [2]: http://www.usb.org/developers/docs/devclass_docs/USB_Video_Class_1_5.zip [3]: http://msdn.microsoft.com/en-gb/library/windows/desktop/dd757532(v=vs.85).aspx BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: William Manley <will@williammanley.net> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 1b8dc32286a1a4fb73cfc7793ef103f3993a6478) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: If3bb3a00476adce0d4051f9f89e3f0aee85680f1 Reviewed-on: https://chromium-review.googlesource.com/337465 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/ea138225648b2f13fcbb9652d20a685e5e1f3af7/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/ea138225648b2f13fcbb9652d20a685e5e1f3af7/drivers/media/usb/uvc/uvc_driver.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/be7c60eab3736f6e4f889ef8a06f7f5d67859e8e commit be7c60eab3736f6e4f889ef8a06f7f5d67859e8e Author: Lad, Prabhakar <prabhakar.csengg@gmail.com> Date: Wed Nov 26 23:25:44 2014 UPSTREAM: [media] media: usb: uvc: use vb2_ops_wait_prepare/finish helper This patch drops driver specific wait_prepare() and wait_finish() callbacks from vb2_ops and instead uses the the helpers vb2_ops_wait_prepare/finish() provided by the vb2 core, the lock member of the queue needs to be initalized to a mutex so that vb2 helpers vb2_ops_wait_prepare/finish() can make use of it. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 5fb3f55504d5d9b6ca97131091707afd351fe1dc) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: If911bee68dadaf5f10ca94f46084cd64f2868e60 Reviewed-on: https://chromium-review.googlesource.com/337464 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/be7c60eab3736f6e4f889ef8a06f7f5d67859e8e/drivers/media/usb/uvc/uvc_queue.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/6aec754b02a297bf93931d2ac4203148d779cbfa commit 6aec754b02a297bf93931d2ac4203148d779cbfa Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 19:37:55 2014 BACKPORT: [media] uvcvideo: Return all buffers to vb2 at stream stop and start failure videobuf2 requires drivers to give back ownership of all queue buffers in the stop_streaming operation, as well as in the start_streaming operation in case of failure. Mark all queued buffers as done in the error or queued state. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit ef33d901db3026643f1c415562d633dfc6c5e9bb) Signed-off-by: Harry Pan <harry.pan@intel.com> Conflicts: drivers/media/usb/uvc/uvc_queue.c Backdrop: It conflicts w/ parent commit of 188e5b32e02d that aggressively chose newer commit from upstream, recursive merge is not working for this cherry-pick case, its sementatics is trivial yet breaks the build, manually resolve it. Change-Id: I32b3516439fa23cb85779bda519bf0e1a9835e08 Reviewed-on: https://chromium-review.googlesource.com/337463 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/6aec754b02a297bf93931d2ac4203148d779cbfa/drivers/media/usb/uvc/uvc_queue.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/557343e78f6c5e82dc77cf085f6907a70a68302e commit 557343e78f6c5e82dc77cf085f6907a70a68302e Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 19:19:04 2014 UPSTREAM: [media] uvcvideo: Rename and split uvc_queue_enable to uvc_queue_stream(on|off) This brings the function name in line with the V4L2 API terminology and allows removing the duplicate queue type check. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 0da4ab984b1753b160b5fa840ae98b87228ac3dc) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I465297dde65a5f3c92d82d02cde0fb9c4d781583 Reviewed-on: https://chromium-review.googlesource.com/337462 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/557343e78f6c5e82dc77cf085f6907a70a68302e/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/557343e78f6c5e82dc77cf085f6907a70a68302e/drivers/media/usb/uvc/uvc_queue.c [modify] https://crrev.com/557343e78f6c5e82dc77cf085f6907a70a68302e/drivers/media/usb/uvc/uvc_v4l2.c [modify] https://crrev.com/557343e78f6c5e82dc77cf085f6907a70a68302e/drivers/media/usb/uvc/uvc_driver.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/bf8074fbf29efb5e2d557892048b3115f3dd84cf commit bf8074fbf29efb5e2d557892048b3115f3dd84cf Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 19:02:00 2014 UPSTREAM: [media] uvcvideo: Rename uvc_alloc_buffers to uvc_request_buffers This brings the function name in line with the V4L2 API terminology. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 1b7f9c989ee7684dc70f0a75a037ecb1d437d3c2) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: Id790d24cd55c6d0b0e1eee8f9f4311fbded870b7 Reviewed-on: https://chromium-review.googlesource.com/337461 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/bf8074fbf29efb5e2d557892048b3115f3dd84cf/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/bf8074fbf29efb5e2d557892048b3115f3dd84cf/drivers/media/usb/uvc/uvc_queue.c [modify] https://crrev.com/bf8074fbf29efb5e2d557892048b3115f3dd84cf/drivers/media/usb/uvc/uvc_v4l2.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/648b7ba7c187b71ee7c8e9871f44b9b0e665d24a commit 648b7ba7c187b71ee7c8e9871f44b9b0e665d24a Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 19:07:15 2014 UPSTREAM: [media] uvcvideo: Don't stop the stream twice at file handle release When releasing the file handle the driver calls the vb2_queue_release which turns the stream off. There's thus no need to turn the stream off explicitly beforehand. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit 3f02de275e5c4374ffeba554c7b9fa85ea13ecc5) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: I86829b22b92a07a9c981f1bfc9f5bb604c4cc666 Reviewed-on: https://chromium-review.googlesource.com/337460 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/648b7ba7c187b71ee7c8e9871f44b9b0e665d24a/drivers/media/usb/uvc/uvcvideo.h [modify] https://crrev.com/648b7ba7c187b71ee7c8e9871f44b9b0e665d24a/drivers/media/usb/uvc/uvc_queue.c [modify] https://crrev.com/648b7ba7c187b71ee7c8e9871f44b9b0e665d24a/drivers/media/usb/uvc/uvc_v4l2.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b3bc5114310d413ef64f6767940655a8e25ae32d commit b3bc5114310d413ef64f6767940655a8e25ae32d Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 16:03:08 2014 UPSTREAM: [media] uvcvideo: Implement vb2 queue start and stop stream operations To work propertly the videobuf2 core code needs to be in charge of stream start/stop control. Implement the start_streaming and stop_streaming vb2 operations and move video enable/disable code to them. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit a11a03e50b73234444f7d439fb8ee6eaec3cffd1) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: Ib46e12f77e23ba456ba43fcb9a068f5a6bca039b Reviewed-on: https://chromium-review.googlesource.com/337389 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/b3bc5114310d413ef64f6767940655a8e25ae32d/drivers/media/usb/uvc/uvc_queue.c [modify] https://crrev.com/b3bc5114310d413ef64f6767940655a8e25ae32d/drivers/media/usb/uvc/uvc_v4l2.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/b83cd3b933997b09014a1d3c851a5556b1de1051 commit b83cd3b933997b09014a1d3c851a5556b1de1051 Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Tue Oct 21 15:58:35 2014 BACKPORT: [media] uvcvideo: Add function to convert from queue to stream Factorize the container_of() call into an inline function and update callers. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit bc75d5a0097b4100b4a4e06db62b2afb80d96393) Signed-off-by: Harry Pan <harry.pan@intel.com> (Conflict in drivers/media/usb/uvc/uvc_queue.c due to parent commit leading out of order) Change-Id: I5eb6c3b328112eed8537fd31a79804974e353b7e Reviewed-on: https://chromium-review.googlesource.com/337388 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/b83cd3b933997b09014a1d3c851a5556b1de1051/drivers/media/usb/uvc/uvc_queue.c
,
May 16 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/47daa89792920e6b675c9915583d5679df01f420 commit 47daa89792920e6b675c9915583d5679df01f420 Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Date: Mon Oct 13 13:11:35 2014 UPSTREAM: [media] uvcvideo: Separate video and queue enable/disable operations In order to make use of the vb2 queue start/stop_streaming operations the video and queue enable/disable operations need to be split, as the vb2 queue will need to enable and disable video instead of the other way around. Also move buffer queue disable outside of uvc_video_resume() to remove all queue disable operations out of uvc_video.c. BUG= chromium:600944 TEST=manually launch librealsense demonstration programs without malfunction nor crash Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> (cherry picked from commit b83bba24a29c44b696b5977e3874bc07b13dc3c0) Signed-off-by: Harry Pan <harry.pan@intel.com> Change-Id: Idd2550be675882503942a4ab35f689dea0e88b29 Reviewed-on: https://chromium-review.googlesource.com/337387 Commit-Ready: Harry Pan <harry.pan@intel.com> Tested-by: Harry Pan <harry.pan@intel.com> Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/47daa89792920e6b675c9915583d5679df01f420/drivers/media/usb/uvc/uvc_video.c [modify] https://crrev.com/47daa89792920e6b675c9915583d5679df01f420/drivers/media/usb/uvc/uvc_v4l2.c [modify] https://crrev.com/47daa89792920e6b675c9915583d5679df01f420/drivers/media/usb/uvc/uvc_driver.c
,
May 18 2016
,
May 18 2016
,
May 23 2016
Please proceed fixed and verified, I've evaluated chromium-os w/ crouton on SKL, BDW, BSW chips, all good. -Harry
,
May 23 2016
,
Jun 1 2016
|
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by gs0...@gmail.com
, Apr 6 2016