Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MLK-24465-1 usb: chipidea: udc: update vbus flag for struct usb_udc c…
…orrectly At udc core, it sets vbus flag as true and call usb_gadget_connect by default. But for chipidea udc driver, it depends on VBUS status to call usb_gadget_connect, so it needs to set vbus flag according to VBUS at the .udc_start. With this change, the un-necessary usb_gadget_connect when load gadget function could be avoided. It could fix below oops as well: [ 17.175905] BUG: scheduling while atomic: v4l_id/649/0x00000002 [ 17.182016] Modules linked in: crct10dif_ce brcmfmac brcmutil synaptics_dsx_i2c fsl_imx8_ddr_perf galcore(O) [ 17.191893] CPU: 1 PID: 649 Comm: v4l_id Tainted: G O 5.4.3-lts-lf-5.4.y+gf8118585ee3c #1 [ 17.201369] Hardware name: FSL i.MX8MM DDR4 EVK RevB board (DT) [ 17.207286] Call trace: [ 17.209739] dump_backtrace+0x0/0x140 [ 17.213401] show_stack+0x14/0x20 [ 17.216717] dump_stack+0xb4/0xf8 [ 17.220033] __schedule_bug+0x5c/0x70 [ 17.223695] __schedule+0x4b4/0x560 [ 17.227181] schedule+0x40/0xe0 [ 17.230321] schedule_hrtimeout_range_clock+0x9c/0x118 [ 17.235455] schedule_hrtimeout_range+0x10/0x18 [ 17.239985] usleep_range+0x74/0xa0 [ 17.243473] ci_controller_resume+0x90/0xd8 [ 17.247652] ci_runtime_resume+0xc/0x18 [ 17.251488] pm_generic_runtime_resume+0x28/0x40 [ 17.256103] __rpm_callback+0x88/0x140 [ 17.259848] rpm_callback+0x20/0x80 [ 17.263334] rpm_resume+0x39c/0x580 [ 17.266819] __pm_runtime_resume+0x38/0x80 [ 17.270914] ci_udc_pullup+0x40/0xf8 [ 17.274489] usb_gadget_activate+0x48/0x78 [ 17.278582] usb_function_activate+0x68/0xb8 [ 17.282851] uvc_function_connect+0x18/0x50 [ 17.287031] uvc_v4l2_open+0x5c/0x78 [ 17.290607] v4l2_open+0xa0/0x118 [ 17.293922] chrdev_open+0xa0/0x198 [ 17.297408] do_dentry_open+0x110/0x3b0 [ 17.301240] vfs_open+0x28/0x30 [ 17.304381] path_openat+0x4a0/0x1240 [ 17.308040] do_filp_open+0x74/0xf8 [ 17.311525] do_sys_open+0x168/0x218 [ 17.315097] __arm64_sys_openat+0x20/0x28 [ 17.319107] el0_svc_common.constprop.0+0x68/0x160 [ 17.323898] el0_svc_handler+0x20/0x80 [ 17.327647] el0_svc+0x8/0xc Reviewed-by: Jun Li <[email protected]> Signed-off-by: Peter Chen <[email protected]>
- Loading branch information