Hi, Greg KH <greg@xxxxxxxxx> writes: > On Mon, Jun 28, 2021 at 05:53:07PM +0200, Michael Grzeschik wrote: >> In case of dwc3 it is possible that the sysdev is the parent of the >> controller. To ensure the right dev is set to the gadget's dev parent we >> will hand over sysdev instead of dev, which will always point to the >> controller. >> >> Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> >> >> --- >> -> v2: first version of patch >> -> v3: - >> --- >> drivers/usb/dwc3/gadget.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c >> index af6d7f157989d..8a1b1daff2e97 100644 >> --- a/drivers/usb/dwc3/gadget.c >> +++ b/drivers/usb/dwc3/gadget.c >> @@ -3990,7 +3990,7 @@ int dwc3_gadget_init(struct dwc3 *dwc) >> } >> >> >> - usb_initialize_gadget(dwc->dev, dwc->gadget, dwc_gadget_release); >> + usb_initialize_gadget(dwc->sysdev, dwc->gadget, dwc_gadget_release); > > Does this change how the device shows up in sysfs? it might, but not in all instances of dwc3 > Why does the parent not always work properly here? This is a really old commit by Arnd from back in 2016 (d64ff406e51e) where it was noticed that dwc3's dma ops weren't properly setup. Arnd decided to pass a property to tell dwc3 core to use the parent device for dma operations. This is not required in all instances of dwc3, though. -- balbi
Attachment:
signature.asc
Description: PGP signature