From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Peter Chen <peter.chen@freescale.com>
Cc: "Arnd Bergmann" <arnd@arndb.de>,
"thomas.petazzoni@free-electrons.com"
<thomas.petazzoni@free-electrons.com>,
"zmxu@marvell.com" <zmxu@marvell.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"Antoine Ténart" <antoine.tenart@free-electrons.com>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"balbi@ti.com" <balbi@ti.com>,
"alexandre.belloni@free-electrons.com"
<alexandre.belloni@free-electrons.com>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"jszhang@marvell.com" <jszhang@marvell.com>,
linux-arm-kernel@lists.infradead.org,
"sebastian.hesselbarth@gmail.com"
<sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH v3 07/12] usb: chipidea: add a usb2 driver for ci13xxx
Date: Thu, 17 Jul 2014 13:20:00 +0100 [thread overview]
Message-ID: <20140717122000.GV21766@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20140717111912.GA16025@shlinux1.ap.freescale.net>
On Thu, Jul 17, 2014 at 07:19:15PM +0800, Peter Chen wrote:
> Currently, we are designing a generic driver, we don't know what's the
> hardware architecture, we are trying to find a solution how to set
> dma mask for all possible devices which will use this driver, Antoine's
> this patch is trying to cover this feature.
>
> For example,
>
> Marvell Berlin doesn't need to set dma mask specific.
> http://marc.info/?l=linux-arm-kernel&m=140205228507045&w=2
> http://www.spinics.net/lists/linux-usb/msg110598.html
I can't make sense of those messages.
What are you saying - that ci_hdrc on Berlin does not use DMA at all?
Or that it doesn't care what the DMA mask is set to?
> Xilinx zynq needs to set dma mask as 0xFFFFFFF0
> http://marc.info/?l=linux-usb&m=140384129921706&w=2
Why? The DMA mask does /not/ convey the DMA alignment requirements of
the transfers. If you need it to be aligned to 16-bytes, then that's
something which is internal to the driver. This is no different from
devices which require 32-bit alignment or 64-bit alignment.
You can't really expect the DMA subsystem to take care of that for you.
The DMA mask is about indicating what memory ranges are acceptable for
DMA, and not the alignment.
So, in this case, your DMA mask should be DMA_BIT_MASK(32), the same as
iMX.
However, if your driver does receive memory which is not appropriately
aligned, it is the driver's responsibility, not the DMA API, to deal
with that appropriately.
So, it sounds to me like:
- The DT code should be setting the DMA mask appropriately already.
- If the driver is using streaming DMA, should call:
err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
if (err)
handle error;
- If the driver is using coherent DMA only:
err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
if (err)
handle error;
- If the driver uses both coherent DMA and streaming DMA:
err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
if (err)
handle error;
Where the _bus_ has restrictions on the available memory (iow, the
higher address bits), these should be dealt with inside the DMA API.
--
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.
next prev parent reply other threads:[~2014-07-17 12:20 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-16 8:25 [PATCH v3 00/12] ARM: berlin: USB support Antoine Ténart
2014-07-16 8:25 ` [PATCH v3 01/12] reset: add the Berlin reset controller driver Antoine Ténart
[not found] ` <1405499166-6726-2-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-07-16 16:39 ` Andrew Lunn
2014-07-16 8:25 ` [PATCH v3 03/12] ARM: Berlin: select the reset controller Antoine Ténart
2014-07-16 8:25 ` [PATCH v3 04/12] ARM: dts: berlin: add a required reset property in the chip controller node Antoine Ténart
2014-07-16 8:25 ` [PATCH v3 05/12] phy: add the Berlin USB PHY driver Antoine Ténart
[not found] ` <1405499166-6726-6-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-07-16 9:19 ` Varka Bhadram
[not found] ` <53C64389.3050705-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-07-16 9:25 ` Antoine Ténart
2014-07-16 9:33 ` Varka Bhadram
2014-07-16 9:47 ` Antoine Ténart
2014-07-16 9:50 ` Varka Bhadram
2014-07-16 8:26 ` [PATCH v3 06/12] Documentation: bindings: add doc for the Berlin USB PHY Antoine Ténart
2014-07-16 8:26 ` [PATCH v3 07/12] usb: chipidea: add a usb2 driver for ci13xxx Antoine Ténart
[not found] ` <1405499166-6726-8-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-07-16 8:41 ` Arnd Bergmann
2014-07-16 9:15 ` Antoine Ténart
2014-07-16 10:14 ` Arnd Bergmann
2014-07-16 11:58 ` Peter Chen
[not found] ` <cd73d8a384cc4040a0bbc6afc1f3063d-Cwg/PA1lyPm/cNt3X/Hc6pwN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2014-07-16 12:12 ` Arnd Bergmann
2014-07-17 1:20 ` Peter Chen
[not found] ` <93903d5fdf85427bb8a418894540c122-RQSpjbwlmjS6oBnG8T5U3ZwN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2014-07-17 10:21 ` Arnd Bergmann
2014-07-17 11:19 ` Peter Chen
2014-07-17 11:34 ` Arnd Bergmann
2014-07-17 12:20 ` Russell King - ARM Linux [this message]
2014-07-25 2:18 ` Peter Chen
[not found] ` <20140725021853.GA11052-KgLukfWpBlCctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2014-07-25 8:07 ` Antoine Ténart
2014-07-25 8:22 ` Peter Chen
2014-07-16 8:26 ` [PATCH v3 08/12] Documentation: bindings: add doc for the USB2 ChipIdea USB driver Antoine Ténart
[not found] ` <1405499166-6726-9-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-07-16 8:39 ` Arnd Bergmann
2014-07-16 8:59 ` Antoine Ténart
2014-07-16 8:26 ` [PATCH v3 09/12] ARM: dts: berlin: add BG2Q nodes for USB support Antoine Ténart
2014-07-16 8:26 ` [PATCH v3 10/12] ARM: dts: Berlin: enable USB on the BG2Q DMP Antoine Ténart
[not found] ` <1405499166-6726-1-git-send-email-antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-07-16 8:25 ` [PATCH v3 02/12] Documentation: bindings: add reset bindings docs for Marvell Berlin SoCs Antoine Ténart
2014-07-16 8:26 ` [PATCH v3 11/12] ARM: dts: berlin: add BG2CD nodes for USB support Antoine Ténart
2014-07-16 8:26 ` [PATCH v3 12/12] ARM: dts: berlin: enable USB on the Google Chromecast Antoine Ténart
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=20140717122000.GV21766@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=alexandre.belloni@free-electrons.com \
--cc=antoine.tenart@free-electrons.com \
--cc=arnd@arndb.de \
--cc=balbi@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=jszhang@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=peter.chen@freescale.com \
--cc=sebastian.hesselbarth@gmail.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=zmxu@marvell.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).