From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: Peter Chen <Peter.Chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
Cc: "Antoine Ténart"
<antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
"sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
<sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"balbi-l0cyMroinI0@public.gmane.org"
<balbi-l0cyMroinI0@public.gmane.org>,
"p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
<p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
"alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org"
<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
"thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org"
<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
"zmxu-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org"
<zmxu-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
"jszhang-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org"
<jszhang-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH v3 07/12] usb: chipidea: add a usb2 driver for ci13xxx
Date: Wed, 16 Jul 2014 14:12:46 +0200 [thread overview]
Message-ID: <22032517.gk8PRUMaIU@wuerfel> (raw)
In-Reply-To: <cd73d8a384cc4040a0bbc6afc1f3063d-Cwg/PA1lyPm/cNt3X/Hc6pwN6zqB+hSMnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
On Wednesday 16 July 2014 11:58:14 Peter Chen wrote:
> > >
> > > Some people wanted the possibility to set the DMA mask as this USB2 CI
> > > driver does not do specific Berlin operation and can be reused later.
> > > I don't particularly need to call dma_coerce_mask_and_coherent() in my
> > > case, as far as I know.
> >
> > Ok, just remove the call then and rely on the default mask.
> >
> > > They can maybe give the restrictions they might want to put on the DMA
> > > mask.
> >
> > If the restriction is from the bus, it should get handled automatically
> > by the device probe as long as the correct dma-ranges property is there
> > (though we have a small bug there at the moment). If there is a variation
> > of ci13xxx that can't do 32-bit DMA, that should use a different
> > compatible string and pass a fixed mask into dma_set_mask_and_coherent()
> > based on the device.
> >
>
> Correct me if my below understanding is wrong please.
>
> For three chipidea users:
> user_a: don't need dma mask
> user_b: dma mask value is dma_mask_b
> user_c: dma mask value is dma_mask_c
>
> We don't need to call dma_coerce_mask_and_coherent() at generic chipidea
> glue driver, and set dma-ranges as dma_mask_b at user_b's dts, and set
> dma-ranges as dma_mask_c at user_c's dts.
The dma-ranges property doesn't just encode a dma-mask for a device, but
rather how the children of a bus see the memory address space of the parent.
For traditional reasons we default to assuming that a 32-bit dma_mask
is correct, but there may be multiple reasons why this is not true:
- you have a device connected to a bus that is smaller than 32-bit wide
(and that would have a dma-ranges property describing that)
- you have a device that has fewer than 32 address lines but is connected
to a 32-bit upstream bus (hence the dma-ranges describe all 32 bit,
but the driver must set a smaller mask)
- you have a 64-bit capable device connected to a 32-bit bus: the driver
will ask for a 64-bit mask, but the dma_set_mask() call refuses this
because of the bus capabilities.
- you have a 64-bit capable device on a 64-bit capable bus, and the
dma_set_mask call should succeed.
The mask is definitely never "user" specific, but is a combination of
the device you have and the bus it is connected to.
Things get more complicated when you add in IOMMUs to this, but I'm
skipping this for the sake of limiting the confusion.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-07-16 12:12 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
[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: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 [this message]
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
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
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=22032517.gk8PRUMaIU@wuerfel \
--to=arnd-r2ngtmty4d4@public.gmane.org \
--cc=Peter.Chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=antoine.tenart-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=jszhang-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=zmxu-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox