Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1167665

Re: [PATCH 2/3] spi: mediatek: Add spi bus for Mediatek MT8173

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Eddie Huang <eddie.huang@mediatek.com>
Newsgroups linux.kernel
Subject Re: [PATCH 2/3] spi: mediatek: Add spi bus for Mediatek MT8173
Date Thu, 18 Jun 2015 10:20:02 +0200
Message-ID <pCDdg-2KO-9@gated-at.bofh.it> (permalink)
References <pqinU-18Y-19@gated-at.bofh.it> <pqk6n-3Ig-23@gated-at.bofh.it> <pz2jT-3X6-9@gated-at.bofh.it> <pz9EK-6vU-17@gated-at.bofh.it> <pzoDM-3m3-17@gated-at.bofh.it> <pzpgu-46A-21@gated-at.bofh.it> <pzJfc-ar-25@gated-at.bofh.it> <pChw6-5hJ-9@gated-at.bofh.it> <pCkX0-1Db-25@gated-at.bofh.it> <pCmm6-3M8-17@gated-at.bofh.it> <pCoxB-6OS-37@gated-at.bofh.it>
X-Original-To Mark Brown <broonie@kernel.org>
X-Listener-Flag 11101
Content-Type text/plain; charset="UTF-8"
X-Mailer Evolution 3.2.3-0ubuntu6
Content-Transfer-Encoding 7bit
MIME-Version 1.0
X-Mtk N
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 51
Organization linux.* mail to news gateway
X-Original-Cc Leilk Liu (刘磊) <Leilk.Liu@mediatek.com>, Mark Rutland <mark.rutland@arm.com>, Matthias Brugger <matthias.bgg@gmail.com>, Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>, Ian Campbell <ijc+devicetree@hellion.org.uk>, "Kumar Gala" <galak@codeaurora.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, HongZhou Yang <hongzhou.yang@mediatek.com>, Sascha Hauer <s.hauer@pengutronix.de>, "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>, "linux-mediatek@lists.infradead.org" <linux-mediatek@lists.infradead.org>, srv_heupstream <srv_heupstream@mediatek.com>
X-Original-Date Thu, 18 Jun 2015 16:11:47 +0800
X-Original-Message-ID <1434615107.22739.1.camel@mtksdaap41>
X-Original-References <1431675522.2128.13.camel@mhfsdcap03> <20150515092543.GY2761@sirena.org.uk> <1433758546.19786.16.camel@mtksdaap41> <20150608175927.GO14071@sirena.org.uk> <1433844321.16178.6.camel@mtksdaap41> <20150609103951.GA14071@sirena.org.uk> <1433923569.22080.1.camel@mtksdaap41> <1434532083.19346.27.camel@mtksdaap41> <20150617124758.GE3214@sirena.org.uk> <1434550251.23617.38.camel@mtksdaap41> <20150617163531.GU14071@sirena.org.uk>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref aioe.org linux.kernel:1167665

Show key headers only | View raw


On Wed, 2015-06-17 at 17:35 +0100, Mark Brown wrote:
> On Wed, Jun 17, 2015 at 10:10:51PM +0800, Eddie Huang wrote:
> 
> > Our hardware limitation is: we don't have separate dma tx, rx channel
> > with transfer finish interrupt, only have spi trigger operation.So the
> > mediatek SPI dma full duplex operation steps are:
> > 1. Set TX DMA address.
> > 2. Set RX DMA address.
> > 3. Set length (this step assume TX, RX are the same size).
> > 4. Set TX DMA enable, RX DMA enable bit in spi config register. (not
> > trigger DMA, just told spi use dma)
> > 5. Trigger spi operations.
> > 6. Wait spi operations finish interrupt.
> 
> Sure, that's what I understood.
> 
> > If tx scatterlist per list data size are 128, 4096, 256. rx scatterlist
> > per list data size are 128, 4096, 256. So we need to go through above
> > steps three times. If tx scatterlists per list data size are 128, 4096,
> > 256. rx scatterlists per list data size are 256, 4096, 128. If we start
> > sending first entry, tx size is 128, rx size is 256, this will cause
> > hardware malfunction because tx, rx data length are not the same.
> 
> > The solution I think is copy scatterlist data into one single buffer in
> > mediatek spi transfer function, but I think this is odd because
> > __spi_map_msg() map single buffer into scatterlist, then our driver map
> > scatterlist into single buffer again. I hope this explaination is more
> > clear than before.
> 
> To repeat what I said in my last mail: there's no need to use the
> scatterlists as-is, your driver can do whatever set of DMA transfers it
> likes to keep the lengths of each transfer the same.  Attempting to
> linearise the transfers in memory isn't going to work unless you
> allocate physically contiguous memory (which could get painful) and will
> add substantial overhead.
> 
> For example with your above example you could split the transfers up to
> be 128, 128, 3968, 128, 128.

This is a workable way.
Thanks your suggestion.We will try to implement this,

Eddie
Thanks


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH 2/3] spi: mediatek: Add spi bus for Mediatek MT8173 Eddie Huang <eddie.huang@mediatek.com> - 2015-06-08 12:20 +0200
  Re: [PATCH 2/3] spi: mediatek: Add spi bus for Mediatek MT8173 Eddie Huang <eddie.huang@mediatek.com> - 2015-06-18 10:20 +0200

csiph-web