From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Bjorn Andersson <bjorn.andersson@linaro.org>,
Peter Chen <Peter.Chen@nxp.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org,
linux-arm-msm <linux-arm-msm@vger.kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] usb: chipidea: Configure DMA properties and ops from DT
Date: Mon, 22 Feb 2016 10:03:21 +0000 [thread overview]
Message-ID: <56CADCE9.9090305@linaro.org> (raw)
In-Reply-To: <1456119133-16114-1-git-send-email-bjorn.andersson@linaro.org>
On 22/02/16 05:32, 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@linaro.org>
> ---
> 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);
> +
Would we hit the same issue if we are on non Device tree platforms like
ACPI or platform device style itself?
> ret = platform_device_add_resources(pdev, res, nres);
> if (ret)
> goto err;
>
I think this is the side effect of commit
1dccb598df549d892b6450c261da54cdd7af44b4(arm64: simplify dma_get_ops)
None of the drivers call of_dma_configure() explicitly, which makes me
feel that we are doing something wrong. TBH, this should be handled in
more generic way rather than driver like this having an explicit call to
of_dma_configure().
On the other hand, I think we could also solve the issue by using
correct device(parent device) while allocating dma/dma-pool.
------------------------>cut<-----------------------------
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index 6e53c24..0293ed5 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1844,13 +1844,13 @@ static int udc_start(struct ci_hdrc *ci)
INIT_LIST_HEAD(&ci->gadget.ep_list);
/* alloc resources */
- ci->qh_pool = dma_pool_create("ci_hw_qh", dev,
+ ci->qh_pool = dma_pool_create("ci_hw_qh", dev->parent,
sizeof(struct ci_hw_qh),
64, CI_HDRC_PAGE_SIZE);
if (ci->qh_pool == NULL)
return -ENOMEM;
- ci->td_pool = dma_pool_create("ci_hw_td", dev,
+ ci->td_pool = dma_pool_create("ci_hw_td", dev->parent,
sizeof(struct ci_hw_td),
64, CI_HDRC_PAGE_SIZE);
if (ci->td_pool == NULL) {
------------------------>cut<-----------------------------
--srini
next prev parent reply other threads:[~2016-02-22 10:03 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-22 5:32 [PATCH] usb: chipidea: Configure DMA properties and ops from DT Bjorn Andersson
2016-02-22 6:02 ` Peter Chen
2016-02-22 6:14 ` Bjorn Andersson
2016-02-22 10:03 ` Srinivas Kandagatla [this message]
2016-02-22 22:07 ` Bjorn Andersson
2016-02-23 1:31 ` Peter Chen
2016-03-02 22:59 ` Li Yang
2016-03-08 19:52 ` Li Yang
2016-03-08 19:52 ` Li Yang
2016-03-08 19:52 ` Li Yang
2016-03-09 3:40 ` Bjorn Andersson
2016-03-09 3:40 ` Bjorn Andersson
2016-03-09 23:16 ` Li Yang
2016-03-09 23:16 ` Li Yang
2016-03-09 23:16 ` Li Yang
2016-03-14 10:51 ` Peter Chen
2016-03-14 10:51 ` Peter Chen
2016-03-17 15:52 ` Arnd Bergmann
2016-03-17 15:52 ` Arnd Bergmann
2016-03-18 1:54 ` Peter Chen
2016-03-18 1:54 ` Peter Chen
2016-03-18 3:25 ` Rajesh Bhagat
2016-03-18 3:25 ` Rajesh Bhagat
2016-03-18 3:25 ` Rajesh Bhagat
2016-03-18 7:28 ` Arnd Bergmann
2016-03-18 7:28 ` Arnd Bergmann
2016-03-18 10:56 ` Russell King - ARM Linux
2016-03-18 10:56 ` Russell King - ARM Linux
2016-03-25 4:02 ` Peter Chen
2016-03-25 4:02 ` Peter Chen
2016-03-25 4:39 ` [PATCH 1/1] usb: chipidea: add DMA mask configuration API kbuild test robot
2016-03-25 4:39 ` kbuild test robot
2016-03-25 4:39 ` kbuild test robot
2016-10-21 16:59 ` [RESEND PATCH] usb: chipidea: Configure DMA properties and ops from DT Bjorn Andersson
[not found] ` <1477069159-12399-1-git-send-email-bjorn.andersson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-10-21 17:38 ` Stephen Boyd
2016-10-21 17:38 ` Stephen Boyd
[not found] ` <20161021173827.GJ26139-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2016-10-21 17:53 ` Bjorn Andersson
2016-10-21 17:53 ` Bjorn Andersson
2016-10-22 6:22 ` Sriram Dash
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56CADCE9.9090305@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=Peter.Chen@nxp.com \
--cc=bjorn.andersson@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.