From: Vinod Koul <vinod.koul@intel.com>
To: Michal Suchanek <hramrach@gmail.com>
Cc: "Brian Norris" <computersforpeace@gmail.com>,
"Marek Vasut" <marex@denx.de>,
"Richard Cochran" <richardcochran@gmail.com>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Krzysztof Kozlowski" <k.kozlowski@samsung.com>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"MTD Maling List" <linux-mtd@lists.infradead.org>,
"Alison Chaiken" <alison_chaiken@mentor.com>,
"Bean Huo 霍斌斌 (beanhuo)" <beanhuo@micron.com>,
"linux-samsung-soc@vger.kernel.org"
<linux-samsung-soc@vger.kernel.org>,
"Russell King" <linux@arm.linux.org.uk>,
"Rafał Miłecki" <zajec5@gmail.com>,
"Kukjin Kim" <kgene@kernel.org>,
"Ben Hutchings" <ben@decadent.org.uk>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"Pawel Moll" <pawel.moll@arm.com>,
"Ian Campbell" <ijc+devicetree@hellion.org.uk>,
"Kumar Gala" <galak@codeaurora.org>
Subject: Re: [PATCH 08/11] MTD: m25p80: Add option to limit SPI transfer size.
Date: Tue, 21 Jul 2015 09:59:32 +0530 [thread overview]
Message-ID: <20150721042932.GF23525@localhost> (raw)
In-Reply-To: <CAOMqctTJEg7EauKfrqW-6rUQ-QOmtkTfkgOyz0rCuyh_-XrW5w@mail.gmail.com>
On Sun, Jul 19, 2015 at 09:01:34PM +0200, Michal Suchanek wrote:
> Hello,
>
> On 15 July 2015 at 17:59, Brian Norris <computersforpeace@gmail.com> wrote:
> > Hi Michal,
> >
> > On Wed, Jul 15, 2015 at 01:52:27PM +0200, Marek Vasut wrote:
> >> The problem is, if you add a new DT binding, you'd have to support it
> >> forever, no matter how bad idea that binding turned out to be.
> >
> > Agreed, and a solid NAK to this patch. I could have sworn I gave such a
> > response when this was originally being discussed a month ago.
> >
> > AFAICT, you have one of two general approaches available to you:
> >
> > 1. Fix up the SPI driver so that it knows how to break large SPI
> > transfers up into smaller segments that its constituent hardware (DMA
> > controllers, fast clocks, etc.) can handle.
> >
> > 2. Utilize/create a parameter within the SPI subsystem to communicate
> > that the SPI master has a limited max transfer size (notably: NOT a
> > per-device DT property, but a SPI API property), and modify SPI device
> > drivers (like m25p80) to honor it. Mark Brown seemed open to this, and I
> > thought he suggested it somewhere.
>
> It is not known what exactly is limited here.
>
> It seems that the pl330 fails but it is not possible to transfer that
> much data over the spi bus in one go without the help of the pl330.
>
> With either approach the limit depends on the SPI transfer settings
> which are known the the SPI driver. The pl330 driver is oblivious to
> these because it just transfers data from one port to another port and
> has no idea that the port is wired to SPI in the SoC.
>
> On the other hand, AFAICT the SPI driver only allocates a DMA channel
> which it receives through DT binding and is oblivious to the fact the
> DMA channel lives on a pl330. It could probably determine that the
> channel is indeed driven by a pl330. I don't think it's a great idea
> to add device-specific handling to a generic dmaengine driver or a
> dmaengine-spiecific handling to a SPI driver.
>
> It's technically possible to pass SPI transfer parameters to the
> dmaengine driver prior to transfer and the dmaengine could impose some
> limitation based on those parameters. However, generalising this to
> drivers other than SPI might be problematic. Should this interface
> also handle i2c parameters, VE parameters, audio parameters, ethernet
> parameters, etc?
Or alternatively we could publish the limitations of the channel using
capabilities so SPI knows I have a dmaengine channel and it can transfer max N
length transfers so would be able to break rather than guessing it or coding
in DT. Yes it may come from DT but that should be dmaengine driver rather
than client driver :)
This can be done by dma_get_slave_caps(chan, &caps)
And we add max_length as one more parameter to existing set
Also all this could be handled in generic SPI-dmaengine layer so that
individual drivers don't have to code it in
Let me know if this idea is okay, I can push the dmaengine bits...
Thanks
--
~Vinod
next prev parent reply other threads:[~2015-07-21 4:29 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 21:26 [PATCH 00/11] Enable access to SPI NOR flash on Samsung Snow board Michal Suchanek
2015-06-03 21:26 ` [PATCH 01/11] ARM: dt: Add SPI CS " Michal Suchanek
[not found] ` <d47abe28c751b54b839d9340269a2c06a6e23a6c.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-04 2:05 ` Krzysztof Kozlowski
2015-06-04 6:52 ` Javier Martinez Canillas
2015-06-03 21:26 ` [PATCH 03/11] mtd: add debug prints to mtdpart partition parser Michal Suchanek
2015-06-03 21:26 ` [PATCH 04/11] mtd: ofpart: do not fail probe when no partitions exist Michal Suchanek
[not found] ` <36e315552c849a4d22ac0fcff7958f6ffcafb160.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-03 22:58 ` Marek Vasut
[not found] ` <201506040058.52882.marex-ynQEQJNshbs@public.gmane.org>
2015-06-04 4:54 ` Michal Suchanek
[not found] ` <CAOMqctTB2AYOQZUc9o-R4PF1DQ-HY0RfSw5T-T28r5uP2s=qZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-04 15:28 ` Marek Vasut
2015-06-04 15:40 ` Michal Suchanek
2015-06-05 14:13 ` Marek Vasut
2015-06-23 18:26 ` Brian Norris
2015-06-03 21:26 ` [PATCH 02/11] mtd: spi-nor: Add GD25LQ32C 1.8V SPI NOR flash ID Michal Suchanek
2015-06-03 21:26 ` [PATCH 05/11] mtd: mtdpart: Do not fail mtd probe when parsing partitions fails Michal Suchanek
2015-06-03 21:26 ` [PATCH 09/11] dma: pl330: fix wording in mcbufsz message Michal Suchanek
[not found] ` <14872fc6f86b7f4976d539b47a7899904cd954f6.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-04 2:10 ` Krzysztof Kozlowski
2015-06-08 11:07 ` Vinod Koul
2015-06-03 21:26 ` [PATCH 08/11] MTD: m25p80: Add option to limit SPI transfer size Michal Suchanek
2015-06-03 23:03 ` Marek Vasut
[not found] ` <201506040103.09555.marex-ynQEQJNshbs@public.gmane.org>
2015-06-04 4:31 ` Michal Suchanek
2015-06-04 15:15 ` Marek Vasut
[not found] ` <8fc4b9f5291a509c4c35782a1337bf536f1019af.1433364398.git.hramrach-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-06-04 6:42 ` Geert Uytterhoeven
2015-06-04 8:31 ` Michal Suchanek
2015-06-04 17:15 ` Richard Cochran
[not found] ` <20150604171547.GA1530-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-07-15 9:45 ` Michal Suchanek
2015-07-15 11:52 ` Marek Vasut
[not found] ` <201507151352.27689.marex-ynQEQJNshbs@public.gmane.org>
2015-07-15 15:59 ` Brian Norris
2015-07-15 17:15 ` Marek Vasut
2015-07-16 1:19 ` Brian Norris
2015-07-16 1:44 ` Marek Vasut
2015-07-19 19:01 ` Michal Suchanek
2015-07-21 4:29 ` Vinod Koul [this message]
2015-07-21 8:14 ` Michal Suchanek
[not found] ` <CAOMqctSzzUV1J8Vj03XJ3Y70R9ynVErP4RZVtbjarDcZ9JLnaw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-22 4:49 ` Vinod Koul
2015-07-22 7:30 ` Michal Suchanek
[not found] ` <CAOMqctQH4MnKMthOnuPgB-A5k6PCOAmhwHzJfn7gE3R4w8bufg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-22 7:33 ` Marek Vasut
2015-07-22 7:45 ` Michal Suchanek
[not found] ` <CAOMqctTmRy0gOchdUQ+VnoV-oJz0v9NpUPLi1pxO_O9QrLXsZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-22 7:58 ` Marek Vasut
2015-07-22 8:18 ` Michal Suchanek
[not found] ` <CAOMqctQ13JE+GHyj+hU4XL3Uz4+Yt_X6BFU=NO8jXcpRtzMyzQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-22 8:24 ` Marek Vasut
[not found] ` <201507221024.05496.marex-ynQEQJNshbs@public.gmane.org>
2015-07-22 8:38 ` Michal Suchanek
2015-07-22 9:01 ` Marek Vasut
2015-06-03 21:26 ` [PATCH 06/11] mtd: spi-nor: rework spi nor read and write Michal Suchanek
2015-06-03 21:26 ` [PATCH 07/11] mtd: spi-nor: rework write loop Michal Suchanek
2015-06-03 21:26 ` [PATCH 11/11] dt: Exynos: add Snow SPI NOR node Michal Suchanek
2015-06-04 2:04 ` Krzysztof Kozlowski
2015-06-04 15:20 ` Marek Vasut
[not found] ` <201506041720.54666.marex-ynQEQJNshbs@public.gmane.org>
2015-06-17 12:19 ` Pavel Machek
2015-06-03 21:26 ` [PATCH 10/11] spi: add more debug prints in s3c64xx Michal Suchanek
2015-06-03 23:04 ` Marek Vasut
2015-06-04 9:16 ` Mark Brown
2015-06-04 9:30 ` Geert Uytterhoeven
[not found] ` <CAMuHMdWHPm6exq4O3CNvVuiZOgLHuxyCrR548BFmbOPikvNRLw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-04 9:42 ` Mark Brown
[not found] ` <20150604091634.GY14071-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-06-04 9:33 ` Michal Suchanek
2015-06-04 10:26 ` Mark Brown
2015-06-04 10:52 ` Michal Suchanek
[not found] ` <CAOMqctRFXWT3m8H4YBH0tzQAL3Y2NUs6XCo2LiF1R0Xz+iWUzw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-04 10:56 ` Mark Brown
2015-06-03 22:53 ` [PATCH 00/11] Enable access to SPI NOR flash on Samsung Snow board Marek Vasut
2015-06-04 4:21 ` Michal Suchanek
[not found] ` <CAOMqctRkoQrP7wAgXfWXHb2fbi2-6VayHRx5DgUKn6Djz0qtQQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-04 15:29 ` Marek Vasut
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=20150721042932.GF23525@localhost \
--to=vinod.koul@intel.com \
--cc=alison_chaiken@mentor.com \
--cc=beanhuo@micron.com \
--cc=ben@decadent.org.uk \
--cc=computersforpeace@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=geert+renesas@glider.be \
--cc=geert@linux-m68k.org \
--cc=hramrach@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=k.kozlowski@samsung.com \
--cc=kgene@kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=marex@denx.de \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=richardcochran@gmail.com \
--cc=zajec5@gmail.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).