On Sun 21 Feb 22:02 PST 2016, Peter Chen wrote: > On Sun, Feb 21, 2016 at 09:32:13PM -0800, Bjorn Andersson wrote: > > On certain platforms (e.g. ARM64) the dma_ops needs to be explicitly set > > to be able to do DMA allocations, so use the of_dma_configure() helper > > to populate the dma properties and assign an appropriate dma_ops. > > > > Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> > > --- > > drivers/usb/chipidea/core.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c > > index 7404064b9bbc..047b9d4e67aa 100644 > > --- a/drivers/usb/chipidea/core.c > > +++ b/drivers/usb/chipidea/core.c > > @@ -62,6 +62,7 @@ > > #include <linux/usb/chipidea.h> > > #include <linux/usb/of.h> > > #include <linux/of.h> > > +#include <linux/of_device.h> > > #include <linux/phy.h> > > #include <linux/regulator/consumer.h> > > #include <linux/usb/ehci_def.h> > > @@ -834,6 +835,9 @@ struct platform_device *ci_hdrc_add_device(struct device *dev, > > pdev->dev.dma_parms = dev->dma_parms; > > dma_set_coherent_mask(&pdev->dev, dev->coherent_dma_mask); > > > > + if (IS_ENABLED(CONFIG_OF) && dev->of_node) > > + of_dma_configure(&pdev->dev, dev->of_node); > > + > > ret = platform_device_add_resources(pdev, res, nres); > > if (ret) > > goto err; > > Just would like to confirm, it will not affect the default behavior > which the "dma-ranges" is not set at those platforms? > If I read the code correctly, the only difference if you don't specify dma-ranges, dma-coherent or specify an iommu is that the dma_ops gets assigned. Regards, Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html