From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/9] dmaengine: st_fdma: Add STMicroelectronics FDMA DT binding documentation
Date: Tue, 29 Sep 2015 14:30:46 +0200 [thread overview]
Message-ID: <1842713.tkjrhSVazj@wuerfel> (raw)
In-Reply-To: <20150929121155.GA17986@griffinp-ThinkPad-X1-Carbon-2nd>
On Tuesday 29 September 2015 13:11:55 Peter Griffin wrote:
> Hi Arnd,
>
> On Tue, 29 Sep 2015, Arnd Bergmann wrote:
>
> > On Tuesday 29 September 2015 11:04:40 Peter Griffin wrote:
> > >
> > > "The hardware is identical, and different firmware is used to apply
> > > it in different ways."
> > >
> > > Which is the case with fdma. By encoding the "way you wish to apply it" into the
> > > compatible string, it causes problems if you want to change for example fdma0
> > > to do some other function other than audio.
> > >
> > > You then require a DT update, (when the hardware hasn't changed, just the
> > > firmware) which is the same problem as using the filename directly in DT.
> > >
> > > Therefore I believe it is important that the DT binding does *not* encode the
> > > way the hardware is to be applied into the binding in *any* way, and defers this
> > > decision to the driver.
> > > That is the rationale / reasoning behind choosing the fdma instance number.
> > >
> > > Assuming you agree with my arguments above, then the choice becomes between
> > > having a fdma instance DT property, or having lots of compatibles where the only
> > > difference is the appending of the instance number. I think out of the two I prefer
> > > my original approach.
> > >
> > > Any thoughts from the DT folks?
> >
> > To me both approaches sound wrong: basing the firmware name on the instance
> > number requires that each instance is always used in the same way, which
> > is not guaranteed to be the case,
>
> Does it? I didn't think it did.
>
> Using the instance number as a DT property defers the decision over what firmware to
> load to the driver, which can choose whatever firmware name it wishes.
>
> e.g. in v4.3 it could load xyz.elf, in v4.4 it could choose abc.elf. The DT will remain
> unchanged, but the use of that fdma instance has changed.
>
> We currently only have one firmware for each instance with the "use" compiled into it.
> If in the future we had two firmwares with different "uses" for the same instance some extra
> logic would be required in the driver to make a decision on which firmware to load.
Ok, I probably need some more background about what the firmware on this
device does, and what it could do with a different firmware. Could you
elaborate?
> > and you correctly describe the problem with
> > using the compatible string for the firmware name if the driver for the FDMA
> > does not actually care what firmware is being used here.
> >
> > Whatever code makes the decision as to how the FDMA is used should also
> > decide on the name of the firmware file.
>
> The code which makes this decision currently is the st_fdma.c driver. However it does
> need to know which fdma controller it is operating on to make this decision correctly.
>
> Apart from passing the fdma instance number in DT, how else can we determine which
> controller we are?
>
> I guess we could infer it by having a table in the driver containing the base addresses
> of the controllers for a given SoC, and match that against what DT passes us in the
> reg property. But that seems ugly, and is encoding the same information in two
> different places.
>
> I'm open to suggestions if there is a better way to do this.
Using the address would be the same thing, that doesn't change the
fundamental logic. Can you explain why it matters which instance
a firmware is used on for this driver?
Arnd
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Peter Griffin <peter.griffin@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
Lee Jones <lee.jones@linaro.org>,
devicetree@vger.kernel.org, vinod.koul@intel.com,
srinivas.kandagatla@gmail.com, patrice.chotard@st.com,
linux-kernel@vger.kernel.org, robh+dt@kernel.org,
Ludovic Barre <ludovic.barre@st.com>,
dmaengine@vger.kernel.org, maxime.coquelin@st.com
Subject: Re: [PATCH v2 1/9] dmaengine: st_fdma: Add STMicroelectronics FDMA DT binding documentation
Date: Tue, 29 Sep 2015 14:30:46 +0200 [thread overview]
Message-ID: <1842713.tkjrhSVazj@wuerfel> (raw)
In-Reply-To: <20150929121155.GA17986@griffinp-ThinkPad-X1-Carbon-2nd>
On Tuesday 29 September 2015 13:11:55 Peter Griffin wrote:
> Hi Arnd,
>
> On Tue, 29 Sep 2015, Arnd Bergmann wrote:
>
> > On Tuesday 29 September 2015 11:04:40 Peter Griffin wrote:
> > >
> > > "The hardware is identical, and different firmware is used to apply
> > > it in different ways."
> > >
> > > Which is the case with fdma. By encoding the "way you wish to apply it" into the
> > > compatible string, it causes problems if you want to change for example fdma0
> > > to do some other function other than audio.
> > >
> > > You then require a DT update, (when the hardware hasn't changed, just the
> > > firmware) which is the same problem as using the filename directly in DT.
> > >
> > > Therefore I believe it is important that the DT binding does *not* encode the
> > > way the hardware is to be applied into the binding in *any* way, and defers this
> > > decision to the driver.
> > > That is the rationale / reasoning behind choosing the fdma instance number.
> > >
> > > Assuming you agree with my arguments above, then the choice becomes between
> > > having a fdma instance DT property, or having lots of compatibles where the only
> > > difference is the appending of the instance number. I think out of the two I prefer
> > > my original approach.
> > >
> > > Any thoughts from the DT folks?
> >
> > To me both approaches sound wrong: basing the firmware name on the instance
> > number requires that each instance is always used in the same way, which
> > is not guaranteed to be the case,
>
> Does it? I didn't think it did.
>
> Using the instance number as a DT property defers the decision over what firmware to
> load to the driver, which can choose whatever firmware name it wishes.
>
> e.g. in v4.3 it could load xyz.elf, in v4.4 it could choose abc.elf. The DT will remain
> unchanged, but the use of that fdma instance has changed.
>
> We currently only have one firmware for each instance with the "use" compiled into it.
> If in the future we had two firmwares with different "uses" for the same instance some extra
> logic would be required in the driver to make a decision on which firmware to load.
Ok, I probably need some more background about what the firmware on this
device does, and what it could do with a different firmware. Could you
elaborate?
> > and you correctly describe the problem with
> > using the compatible string for the firmware name if the driver for the FDMA
> > does not actually care what firmware is being used here.
> >
> > Whatever code makes the decision as to how the FDMA is used should also
> > decide on the name of the firmware file.
>
> The code which makes this decision currently is the st_fdma.c driver. However it does
> need to know which fdma controller it is operating on to make this decision correctly.
>
> Apart from passing the fdma instance number in DT, how else can we determine which
> controller we are?
>
> I guess we could infer it by having a table in the driver containing the base addresses
> of the controllers for a given SoC, and match that against what DT passes us in the
> reg property. But that seems ugly, and is encoding the same information in two
> different places.
>
> I'm open to suggestions if there is a better way to do this.
Using the address would be the same thing, that doesn't change the
fundamental logic. Can you explain why it matters which instance
a firmware is used on for this driver?
Arnd
next prev parent reply other threads:[~2015-09-29 12:30 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-11 14:14 [PATCH v2 0/9] Add support for FDMA DMA controller found on STi chipsets Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` [PATCH v2 1/9] dmaengine: st_fdma: Add STMicroelectronics FDMA DT binding documentation Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 20:36 ` Arnd Bergmann
2015-09-11 20:36 ` Arnd Bergmann
2015-09-12 12:07 ` Peter Griffin
2015-09-12 12:07 ` Peter Griffin
2015-09-14 8:19 ` Lee Jones
2015-09-14 8:19 ` Lee Jones
2015-09-29 10:04 ` Peter Griffin
2015-09-29 10:04 ` Peter Griffin
2015-09-29 10:04 ` Peter Griffin
2015-09-29 11:17 ` Arnd Bergmann
2015-09-29 11:17 ` Arnd Bergmann
2015-09-29 11:17 ` Arnd Bergmann
2015-09-29 12:11 ` Peter Griffin
2015-09-29 12:11 ` Peter Griffin
2015-09-29 12:11 ` Peter Griffin
2015-09-29 12:30 ` Arnd Bergmann [this message]
2015-09-29 12:30 ` Arnd Bergmann
2015-09-29 13:42 ` Peter Griffin
2015-09-29 13:42 ` Peter Griffin
2015-09-29 14:15 ` Arnd Bergmann
2015-09-29 14:15 ` Arnd Bergmann
2015-09-29 14:15 ` Arnd Bergmann
2015-10-13 11:18 ` Peter Griffin
2015-10-13 11:18 ` Peter Griffin
2015-10-13 11:18 ` Peter Griffin
2015-09-11 14:14 ` [PATCH v2 2/9] dmaengine: st_fdma: Add st fdma platform specific header Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 20:32 ` Arnd Bergmann
2015-09-11 20:32 ` Arnd Bergmann
2015-09-29 9:24 ` Peter Griffin
2015-09-29 9:24 ` Peter Griffin
2015-09-29 11:10 ` Arnd Bergmann
2015-09-29 11:10 ` Arnd Bergmann
2015-09-29 11:10 ` Arnd Bergmann
2015-09-11 14:14 ` [PATCH v2 3/9] dmaengine: st_fdma: Add STMicroelectronics FDMA driver header file Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-10-08 15:43 ` Koul, Vinod
2015-10-08 15:43 ` Koul, Vinod
2015-10-08 15:43 ` Koul, Vinod
2015-10-13 10:41 ` Peter Griffin
2015-10-13 10:43 ` Peter Griffin
2015-10-13 10:43 ` Peter Griffin
2015-10-13 10:43 ` Peter Griffin
2015-09-11 14:14 ` [PATCH v2 4/9] dmaengine: st_fdma: Add STMicroelectronics FDMA engine driver support Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 20:30 ` Arnd Bergmann
2015-09-11 20:30 ` Arnd Bergmann
2015-09-29 10:23 ` Peter Griffin
2015-09-29 10:23 ` Peter Griffin
2015-09-29 10:23 ` Peter Griffin
2015-10-07 11:15 ` Vinod Koul
2015-10-07 11:15 ` Vinod Koul
2015-09-11 14:14 ` [PATCH v2 5/9] dmaengine: st_fdma: Add xp70 firmware loading mechanism Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-10-07 11:22 ` Vinod Koul
2015-10-07 11:22 ` Vinod Koul
2015-10-13 10:53 ` Peter Griffin
2015-10-13 10:53 ` Peter Griffin
2015-09-11 14:14 ` [PATCH v2 6/9] dmaengine: st_fdma: Add fdma suspend and resume callbacks Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-10-07 11:23 ` Vinod Koul
2015-10-07 11:23 ` Vinod Koul
2015-10-13 11:19 ` Peter Griffin
2015-10-13 11:19 ` Peter Griffin
2015-10-13 11:19 ` Peter Griffin
2015-10-13 11:33 ` Koul, Vinod
2015-10-13 11:33 ` Koul, Vinod
2015-10-13 11:33 ` Koul, Vinod
2015-09-11 14:14 ` [PATCH v2 7/9] ARM: STi: DT: STiH407: Add FDMA driver dt nodes Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 16:27 ` Lee Jones
2015-09-11 16:27 ` Lee Jones
2015-09-11 16:48 ` Peter Griffin
2015-09-11 16:48 ` Peter Griffin
2015-09-11 16:48 ` Peter Griffin
2015-09-11 17:55 ` Lee Jones
2015-09-11 17:55 ` Lee Jones
2015-09-11 17:55 ` Lee Jones
2015-09-11 18:06 ` Peter Griffin
2015-09-11 18:06 ` Peter Griffin
2015-09-11 18:06 ` Peter Griffin
2015-09-11 19:33 ` Lee Jones
2015-09-11 19:33 ` Lee Jones
2015-09-12 12:23 ` Peter Griffin
2015-09-12 12:23 ` Peter Griffin
2015-09-11 14:14 ` [PATCH v2 8/9] MAINTAINERS: Add FDMA driver files to STi section Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 16:22 ` Lee Jones
2015-09-11 16:22 ` Lee Jones
2015-09-11 14:14 ` [PATCH v2 9/9] ARM: multi_v7_defconfig: Enable STi FDMA driver Peter Griffin
2015-09-11 14:14 ` Peter Griffin
2015-09-11 16:22 ` Lee Jones
2015-09-11 16:22 ` Lee Jones
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=1842713.tkjrhSVazj@wuerfel \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.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.