It will be failed when xhci device set the dma mask, if the xhci device
dma_ops is dummy. Thus set the xhci device dma_ops from the parent device.

Signed-off-by: Baolin Wang <[email protected]>
---
 drivers/usb/dwc3/host.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
index c679f63..7ce55c9 100644
--- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c
@@ -32,6 +32,9 @@ int dwc3_host_init(struct dwc3 *dwc)
                return -ENOMEM;
        }
 
+       if (get_dma_ops(&xhci->dev) == get_dma_ops(NULL))
+               xhci->dev.archdata.dma_ops = get_dma_ops(dwc->dev);
+
        dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask);
 
        xhci->dev.parent        = dwc->dev;
-- 
1.7.9.5

Reply via email to