On Fri, Sep 23, 2022 at 11:58 AM Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> wrote: > > +Stephen to help to realize what the mess we have now... > > On Fri, Sep 23, 2022 at 08:35:13PM +0200, Sven Peter wrote: > > On Fri, Sep 23, 2022, at 20:23, Andrey Smirnov wrote: > > > On Fri, Sep 23, 2022 at 9:42 AM Andy Shevchenko > > > <andriy.shevchenko@xxxxxxxxx> wrote: > > >> > > >> On Thu, Sep 22, 2022 at 04:32:55PM -0700, Andrey Smirnov wrote: > > >> > On Thu, Sep 22, 2022 at 3:23 AM Ferry Toth <fntoth@xxxxxxxxx> wrote: > > >> > > On 22-09-2022 12:08, Andy Shevchenko wrote: > > >> > > On Sun, Apr 03, 2022 at 09:49:07AM -0700, Andrey Smirnov wrote: > > >> > > >> FYI: For now I sent a revert, but if we got a solution quicker we always > > >> can choose the course of actions. > > >> > > > > > > I think we have another problem. This patch happened in parallel to mine > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v6.0-rc6&id=ab7aa2866d295438dc60522f85c5421c6b4f1507 > > > > > > so my changes didn't have that fix in mind and I think your revert > > > will not preserve that fix. Can you update your revert to take care of > > > that too, please? > > > > > > I'm really confused how the above commit could be followed up by: > > > > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/dwc3/drd.c?h=v6.0-rc6&id=0f01017191384e3962fa31520a9fd9846c3d352f > > > > > > the diffs in dwc3_drd_init seem contradictory > > > > I noticed this a while ago when I finally rebased the M1 USB3 PHY WIP branch > > and have been meaning to send a fix. Then life unfortunately got in the way and > > I completely forgot about it again. > > > > Both patches were sent at approximately the same time and I think got merged into > > two separate branches. The conflict resolution [1] then went bad but I didn't notice > > until weeks later :( > > Folks, I have no idea what you are talking about. Can you check that revert > series [2] gets your change still in? Because I have no clue how it's involved at > all into discussion. > > > [1] https://lore.kernel.org/lkml/20220426150842.473be40e@xxxxxxxxxxxxxxxx/ > > [2]: https://lore.kernel.org/linux-usb/20220923163051.36288-1-andriy.shevchenko@xxxxxxxxxxxxxxx/ > Here's Sven's diff: diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c index b60b5f7b6dff4..8cad9e7d33687 100644 --- a/drivers/usb/dwc3/drd.c +++ b/drivers/usb/dwc3/drd.c @@ -584,16 +584,15 @@ int dwc3_drd_init(struct dwc3 *dwc) { int ret, irq; + if (ROLE_SWITCH && + device_property_read_bool(dwc->dev, "usb-role-switch")) + return dwc3_setup_role_switch(dwc); + dwc->edev = dwc3_get_extcon(dwc); if (IS_ERR(dwc->edev)) return PTR_ERR(dwc->edev); - if (ROLE_SWITCH && - device_property_read_bool(dwc->dev, "usb-role-switch")) { - ret = dwc3_setup_role_switch(dwc); - if (ret < 0) - return ret; - } else if (dwc->edev) { + if (dwc->edev) { Here's your revert of my patch: @@ -538,6 +584,10 @@ int dwc3_drd_init(struct dwc3 *dwc) { int ret, irq; + dwc->edev = dwc3_get_extcon(dwc); + if (IS_ERR(dwc->edev)) + return PTR_ERR(dwc->edev); + if (ROLE_SWITCH && device_property_read_bool(dwc->dev, "usb-role-switch")) return dwc3_setup_role_switch(dwc); There's an order of operations difference. Dwc3_get_extcon() Needs to be happening after if (ROLE_SWITCH