From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753163AbcBVGO1 (ORCPT ); Mon, 22 Feb 2016 01:14:27 -0500 Received: from mail-pf0-f181.google.com ([209.85.192.181]:33897 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750744AbcBVGOZ (ORCPT ); Mon, 22 Feb 2016 01:14:25 -0500 Date: Sun, 21 Feb 2016 22:14:21 -0800 From: Bjorn Andersson To: Peter Chen Cc: Peter Chen , Greg Kroah-Hartman , Srinivas Kandagatla , linux-usb@vger.kernel.org, linux-arm-msm , linux-kernel@vger.kernel.org Subject: Re: [PATCH] usb: chipidea: Configure DMA properties and ops from DT Message-ID: <20160222061421.GH21240@tuxbot> References: <1456119133-16114-1-git-send-email-bjorn.andersson@linaro.org> <20160222060230.GA5097@shlinux2.ap.freescale.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160222060230.GA5097@shlinux2.ap.freescale.net> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > > --- > > 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 > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -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