Re: [PATCH v5 4/6] usb: xhci: use bus->sysdev for DMA configuration

From: Alan Stern
Date: Wed Jan 11 2017 - 10:08:50 EST


On Wed, 11 Jan 2017, Mathias Nyman wrote:

> On 17.11.2016 13:43, Sriram Dash wrote:
> > From: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > For xhci-hcd platform device, all the DMA parameters are not
> > configured properly, notably dma ops for dwc3 devices. So, set
> > the dma for xhci from sysdev. sysdev is pointing to device that
> > is known to the system firmware or hardware.
> >
> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> > Signed-off-by: Sriram Dash <sriram.dash@xxxxxxx>
> > Tested-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
> > ---
>
> ...
>
> > + /*
> > + * sysdev must point to a device that is known to the system firmware
> > + * or PCI hardware. We handle these three cases here:
> > + * 1. xhci_plat comes from firmware
> > + * 2. xhci_plat is child of a device from firmware (dwc3-plat)
> > + * 3. xhci_plat is grandchild of a pci device (dwc3-pci)
> > + */
> > + sysdev = &pdev->dev;
> > + if (sysdev->parent && !sysdev->of_node && sysdev->parent->of_node)
> > + sysdev = sysdev->parent;
> > +#ifdef CONFIG_PCI
> > + else if (sysdev->parent && sysdev->parent->parent &&
> > + sysdev->parent->parent->bus == &pci_bus_type)
> > + sysdev = sysdev->parent->parent;
> > +#endif
> > +
>
> Not maybe the the ideal situation here, and looks really tailored to make PCI dwc3
> controllers with xhci support work.
>
> Was there some reason child devices can't automatically inherit the dma mask from the parents,
> forcing us to dig it from grandparents?
>
> Anyway, looks like the dwc3 part is already in 4.10-rc,
> If Greg and Alan want to take this series that's fine by me

I have no objections.

Alan Stern

> I haven't tested that it won't break anything on PCI XHCI controllers though
>
> -Mathias