[RFC] usb: chipidea: set dma_ops for the created ci_hdrc platform_device

Arnd Bergmann arnd at arndb.de
Tue Apr 25 07:09:27 EDT 2017


On Tue, Apr 25, 2017 at 12:01 PM, Jisheng Zhang <jszhang at marvell.com> wrote:
> Hi all,
>
> After commit 1dccb598df549 ("arm64: simplify dma_get_ops"), the chipidea
> driver can't work any more on Marvell Berlin arm64 platforms, the reason
> is the created ci_hdrc platform_device's dma_ops is dummy_dma_ops, so all
> dma related operations will fail. The fix I can think of would be something
> as below:
>
> And I noticed that dwc3 has the same issue[1], and as pointed out in its
> discussion, the patch can't fix None-DT platforms, so could you please
> guide me what's the proper fix which can be mainlined?

I think the right solution is:

- Set the "sysdev" pointer tin the USB device o the device structure that
  was created by DT or the legacy board file and remove the manual
  setting of dma_mask,  parms and the dma_configure. This should
  make everything work as expected in case of DT

- For any legacy board files, set the mask/parms and map_ops at
  the point where the device originally created.

      Arnd



More information about the linux-arm-kernel mailing list