Hi all,
I’ve changed the USB gadget driver to request bulk endpoints instead of isochronous, such that it would (hopefully) be compatible with the TX1 hardware. Upon trying to open the webcam gadget driver the kernel is throwing a backtrace / BUG inside the tegra xudc code. The backtrace doesn’t make it to disk so the below has been OCR’d from a photo of the screen. Please forgive the 0/O/< and I/1 confusion below.
Suggestions?
[ 45.36E1859] g_webcam gadget: g_webcam ready
[ 45.375749] tegra-xudc-new 700d0000.xudc: tegra_xudc_gadget_start
I 45.384564] tegra-xudc-new 700d0000.xudc: exiting ELPG
[ 45.393018] tegra-xudc-new 700d0000.xudc: exiting ELPG done
I 45.401173] tegra-xudc-new 700d0000.xudc: ep 0 (type: 0, dir: out) enabled
I 45.410733] tegra-xudc-new 700d0000.xudc: entering ELPG
I 45.410944] tegra-xudc-new 700d0000.xudc: tegra_xudc_gadget_start done
I 45.425465] BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:955
I 45.425467] in_atomic(): 1, irqs_disabled(): 128, pid: 2203, name: uvc-gadget
I 45.425472] CPU: 0 PID: 2203 Comm: uvc-gadget Not tainted 4.4.38 #3
I 45.425473] Hardware name: jetson_tx1 (DT)
I 45.425474] Call trace:
45.4254E12] I] dump_backtrace+Ox0/0xe8
I 45.425485] [] show_stack+0x14/0x20
I 45.425489] [Offfffc0003B9c9c>] dump_stack+Oxb4/0xe8
I 45.425493] I] might_sleep+Oxl3c/0x148
I 45.425495] [Offfffc0000c9508>] __might_sleep+0x70/0x98
I 45.425499] [] __pm_runtime_resume40x38/0x98
I 45.425511] [Offfffbffc012bcBA tegra_xudc_gadget_pullup+Ox30/0x100 [tegra_xudc]
I 45.425525] [Offfffbffcf60b2o] usb_function_activate+Ox8c/OxdO Elibcompositel
[ 45.425537] [] uvc_function_connect+0x20/0x50 [usb_f_uvc]
[ 45.425547] [Offfffbffcf7beec>] uvc_v412_open+0x64/0x90 [usb_f_uvc]
[ 45.425552] [Offfffc00077f880>] v412_open+048/0x108
[ 45.425556] [Offfffc0001d99fc>] chrdev_open+0x104/0x190
[ 45.425560] [Offfffc0001d32ac>] do_dentry_open+Oxlfc/0x310
[ 45.425563] [Offfffc0001d4520>] vfs_open+0x68/0x70
[ 45.425565] [Offfffc0001e3514>] do_last+Ox91c/Oxca
[ 45.425567] [Offfffc0001e3ad8A path_openat+0x218/0x2b0
[ 45.425569] [dfffffc0001e4c78>] do_filp_open+0x68/0xc0
[ 45.425572] [] do_sys_open+0x160/0x200
[ 45.425574] [Offfffc0001d49a0>] SyS_openat+Ox10/0x18
[ 45.425577] [Offfffc0000847f0>] el0_svc_naked+0x24/0x28
[ 45.4255E10] BUG: scheduling while atomic: uvc-gadget/2203/0x00000002
[ 45.425590] Modules linked in: g_webcam usb_f_uvc libcomposite xt_addrtype br_netfilter bcmdhd tegra_xudc udc_core bluedroid_pm
[ 45.425592] CPU: 0 PIO: 2203 Comm: uvc-gadget Not tainted 4.4.38 #3
[ 45.425593] Hardware name: jetson_tx1 (DT)
[ 45.425594] Call trace:
[ 45.425596] [Offfffc000089238>] dump_backtrace+OxO/OxeB
[ 45.425599] [] show_stack+0x14/0x20
[ 45.4256011 [dfffffc000389c9c>] dump_stack+Oxb4/0xe8
[ 45.425604] [] __schedule_bug+0x54/0x78
I 45.4256081 [Offfffc000b3b8dc>] __schedule+0x94/0x728
I 45.425610] [] schedule+048/0xa8
I 45.425612] [dfffffc000618264>] rpm_resume+Oxl9c/0x658
I 45.425614] [Offfffc000619848>] __pm_runtime_resume+Ox70/0x98
I 45.425623] [1 tegra_xudc_gadget_pullup+0x30/0x100 [tegra_xudc]
I 45.425634] [Offfffbffcf60b2c>] usb_function_activate+OxBc/OxdO [libcomposite]
I 45.425644] [] uvc_function_connect+Ox20/0x50 [usb_f_uvc]
I 45.425654] [dfffffbffcf7bac>] uvc_v412_open+0x64/0x90 [usb_f_uvc]
I 45.425656] f] v412_open+048/0x108
I 45.425658] [1 chrdev_open+0x104/0x198
45.425661] kffffffc0001d32ac>7 do_dentry_open+Oxlfc/0x310
I 45.4256631 [] vfs_open+Ox60/0x7B
[ 45.4256651 [] do_last+Ox91c/OxccB
[ 45.425666] [dfffffc0001e3ad8A path_openat+Ox218/0x2b0
45.42566B] [dfffffc0001e4c7BA do_filp_open+Ox6B/Oxc0
45.4256701 [dfffffc0001d4Bc8>] do_sys_open+Ox160/0x200
45.4256731 Uffffffc0001d49a0A SyS_openat+Ox10/0x18
45.4255751 Edfffffc0000847f0A elO_svc_naked+0x24/0x28
45.873491] tegra-xudc-new 700d0000.xudc: entering ELPG done
45.885589] tegra-xudc-new 700d0000.xudc: exiting ELPG
45.893864] tegra-xudc-new 700d0000.xudc: exiting ELPG done
45.901849] BUG: scheduling while atomic: uvc-gadget/2203/040000000
45.9106664 Nodules linked in: g_webcam usb_f_uvc libcomposite xt_addrtype br_netfilter bcmdhd tegra_xudc udc_core bluedroid_pm
45.924765] CPU: 0 PID: 2203 Comm: uvc-gadget Tainted: G N 4.4.38 #3
45.934788] Hardware name: jetson_tx1 (DT)
45.941408] Call trace:
45.946373] Idfffffc000089230>1 dump_backtrace+Ox0/0xe8
45.9542051 (Offfffc000089334>l show_stack+0x14/0x20
45.9617581 [<ffffffc000389c90] dump_stack4Oxb4/0xee
45.9693031 Idfffffc0000c9584>l __schedule_bug+0x54/0x7B
45.9771933 [dfffffc000b3b8dol _schedule40x94/0x728
45.984811] Idfffffc000b3b1f8A schedule+048/0x88
45.992428] Wiffifffc001X184700>1 ret_to_user40x0/0x24
46.0023921 tegra-xudc-ne 700d0000.xudc: entering ELPG
46.022517] tegra-xudc-n 700d0000,mdc: entering ELPG done
644.064483] tegradc tegradc.1: blank - normal
750.1955821 tegradc tegradc.1: blank - powerdown
750.212175] tegradc tegradc.l: unblank
750.258169] tegradc tegradc.l: nominal-pclk:241699200 parent:241696875 d1v:1.0 pclk:241696875 2392E12208-263452128
750.2594957 tegradc tegradc.1: hdmi: pclk:241699K, set prod-setting:prod_c_hdmi_150m_300m
750.316844] tegradc tegradc.1: hdmi: plugged
1350.622339] tegradc tegradc.1: blank - norm’
1374.157834] tegradc tegradc.1: blank - powerdoen
1374.174410] tegradc tegradc.1: unblank
1374.221895] tegradc tegradc.l: nominal-D1k:241699200 parent:241696875 div:1.0 pclk:241696875 239282208-263452128
1374.224399] tegradc tegradc.l: hdmi: pc1X:241699K, set prod-setting:prod_c_7dmi_150m_300m
1374.282621] tegradc teg•adc.1: hdmi: plugged