Hi Anand, On Tue, Jan 29, 2019 at 11:25 AM Anand Moon <linux.amoon@xxxxxxxxx> wrote: > > Override the dr_mode from "host" to "otg" for USB_HOST controller (usb0) > changes help usb_phy0->usb0 initialization of OTG bus port. > > Changes fix the below warning. > > [ 1.183681] dwc2 c9000000.usb: c9000000.usb supply vusb_d not found, using dummy regulator > [ 1.190627] dwc2 c9000000.usb: Linked as a consumer to regulator.0 > [ 1.196696] dwc2 c9000000.usb: c9000000.usb supply vusb_a not found, using dummy regulator > [ 1.206094] phy phy-c0000000.phy.0: USB ID detect failed! > [ 1.210243] phy phy-c0000000.phy.0: phy poweron failed --> -22 I wonder if the warning below are a side-effect of "phy poweron failed"... > [ 1.216072] WARNING: CPU: 0 PID: 78 at drivers/regulator/core.c:2054 _regulator_put.part.11+0xf0/0xf8 > [ 1.225147] Modules linked in: > [ 1.228169] CPU: 0 PID: 78 Comm: kworker/0:1 Not tainted 5.0.0-rc4-xc2ml #1 > [ 1.235066] Hardware name: Hardkernel ODROID-C2 (DT) > [ 1.239987] Workqueue: events deferred_probe_work_func > [ 1.245072] pstate: 80000005 (Nzcv daif -PAN -UAO) > [ 1.249816] pc : _regulator_put.part.11+0xf0/0xf8 > [ 1.254473] lr : regulator_put+0x34/0x48 > [ 1.258353] sp : ffff0000117b3b00 > [ 1.261630] x29: ffff0000117b3b00 x28: 0000000000000000 > [ 1.266891] x27: ffff80007ec1a7b8 x26: ffff000010eec280 > [ 1.272153] x25: 0000000000000000 x24: 0000000000000009 > [ 1.277414] x23: ffff0000117b3bc8 x22: ffff80007ecd3c00 > [ 1.282675] x21: ffff0000111ad6c8 x20: ffff80007ecd3e00 > [ 1.287936] x19: ffff80007ecd3e00 x18: 0000000000000124 > [ 1.293198] x17: 0000000000000000 x16: 0000000000000000 > [ 1.298459] x15: 0000000000000400 x14: 0000000000000400 > [ 1.303720] x13: ff00000000000000 x12: ffffffffffffffff > [ 1.308981] x11: 0000000000000038 x10: 0000000000000040 > [ 1.314243] x9 : ffff0000111c58b0 x8 : ffff0000111c58a8 > [ 1.319504] x7 : ffff80006b055200 x6 : ffff80007edd2880 > [ 1.324765] x5 : ffff80007f400248 x4 : ffff80007fb92b00 > [ 1.330026] x3 : ffff0000112c9d58 x2 : ffff80007edd2880 > [ 1.335288] x1 : 0000000000000000 x0 : 0000000000000001 > [ 1.340549] Call trace: > [ 1.342966] _regulator_put.part.11+0xf0/0xf8 > [ 1.347278] regulator_put+0x34/0x48 > [ 1.350814] regulator_bulk_free+0x30/0x50 > [ 1.354868] devm_regulator_bulk_release+0x18/0x20 > [ 1.359612] release_nodes+0x1b0/0x220 > [ 1.363320] devres_release_all+0x34/0x50 > [ 1.367288] really_probe+0xec/0x290 > [ 1.370824] driver_probe_device+0x54/0xe8 > [ 1.374878] __device_attach_driver+0xb8/0xe8 > [ 1.379190] bus_for_each_drv+0x78/0xc8 > [ 1.382985] __device_attach+0xd4/0x130 > [ 1.386780] device_initial_probe+0x10/0x18 > [ 1.390920] bus_probe_device+0x90/0x98 > [ 1.394715] deferred_probe_work_func+0x6c/0xa0 > [ 1.399203] process_one_work+0x1e0/0x318 > [ 1.403168] worker_thread+0x228/0x428 > [ 1.406877] kthread+0x124/0x128 > [ 1.410070] ret_from_fork+0x10/0x18 > [ 1.413603] ---[ end trace 498aca4cb07e5377 ]--- phy_power_on fails above with -EINVAL and then something else breaks (it seems like you're hitting the WARN_ON in drivers/regulator/core.c below the comment which states: "Docs say you must disable before calling regulator_put()") so this looks like a bug in either the dwc2 driver or the PHY framework. can you please report that to the dwc2 and PHY maintainers so it can be fixed independently? Regards Martin