Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1167665
| 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 | Next — Previous in thread | Find similar | Unroll 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