Hi, Baolin Wang writes: > On ARM64 platform, it will set 'dummy_dma_ops' for device dma_ops if > it did not call 'arch_setup_dma_ops' at device creation time, that will > cause failure when setting the dma mask for device. > > Thus this patch set the xhci device dma_ops from the parent device if > the xhci device dma_ops is 'dummy_dma_ops'. > > Changes since v1: > - Add CONFIG_ARM64 macro. > > Signed-off-by: Baolin Wang > --- > drivers/usb/dwc3/host.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c > index c679f63..edb666d 100644 > --- a/drivers/usb/dwc3/host.c > +++ b/drivers/usb/dwc3/host.c > @@ -32,6 +32,11 @@ int dwc3_host_init(struct dwc3 *dwc) > return -ENOMEM; > } > > +#ifdef CONFIG_ARM64 > + if (get_dma_ops(&xhci->dev) == get_dma_ops(NULL)) > + xhci->dev.archdata.dma_ops = get_dma_ops(dwc->dev); > +#endif I don't like the ifdef and also don't like that this is done in dwc3 itself. Seems like we need something like this done from the platform_bus core. -- balbi