From: Martin Guy <martinwguy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: H Hartley Sweeten
<hartleys-3FF4nKcrg1dE2c76skzGb0EOCMrvLtNR@public.gmane.org>
Cc: "spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
<spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
Mika Westerberg <mika.westerberg-X3B1VOXEql0@public.gmane.org>,
"ryan-7Wk5F4Od5/oYd5yxfr4S2w@public.gmane.org"
<ryan-7Wk5F4Od5/oYd5yxfr4S2w@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller
Date: Mon, 26 Apr 2010 15:35:35 +0100 [thread overview]
Message-ID: <k2l56d259a01004260735nb44e9dddy5b08668787070ac7@mail.gmail.com> (raw)
In-Reply-To: <0D753D10438DA54287A00B0270842697636D9B7E66-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
On 4/25/10, H Hartley Sweeten <hartleys-3FF4nKcrg1dE2c76skzGb0EOCMrvLtNR@public.gmane.org> wrote:
> During the 512+2+1 message that is sent when the mmc_spi driver is
> doing a block read, the 512 byte transfer goes like this:
>
> 1) 8 writes, prime the tx fifo
> SFRMOUT asserts when the first bit of the first byte starts
> transmitting
> 2) Interrupt
> 3) 8 reads, we must have emptied the tx fifo and filled the rx fifo
> SFRMOUT de-asserts after the the last bit of the last byte is
> received
Are you printk-ing the diagnostics in the irq routine?
If so, that slows it down enough to ensure every 8-word block underruns.
Here are stats for 512-word transfers from SD card at 3.7 MHz; figures are
number of underruns/total number of reads and the distribution of
words read per interrupt [0..8], collected during the transfer and
printed once the transfer is over)
1/102 [1,0,2,0,0,100,0,0,1]
1/102 [1,0,2,0,0,100,0,0,1]
1/102 [1,0,2,0,0,100,0,0,1]
2/104 [1,1,0,2,21,76,3,1,2]
3/102 [1,1,1,1,11,85,1,1,3]
4/100 [1,0,1,1,7,83,3,2,4]
while 1- and 2-word transfers seem to be caught on the second interrupt.
[1,2,0,0,0,0,0,0,0]
[1,1,0,0,0,0,0,0,0]
> I have modifed my board so that I now have an external GPIO for the chip
> select.
Yes, we'll have to do that too.
> > I'll run a few more tests, e.g. dropping the clock rate
>
> With a slow enough clock you can probably get to a point where SFRMOUT
> will stay deasserted during the entire 512 byte transfer
I've tried it down to 400kHz and transfers still underrun (!)
So it does seem that SFRMOUT cannot be used as a chip select unless we
revert to the old busy-wait-for-whole-transfer code, which causes 100%
CPU usage during transfers.
and 1ms-long pauses (for 512 words at 3.7MHz).
This suggests that we can only handle SFRMOUT used as chip select
correctly by reinstating polling mode, adding the continuous transfer
code and allowing the board definition code to specify that polling
mode be used for such devices.
(much as I hate polling mode :)
> But it would
> still de-assert during the switch to the next transfer in the message.
Am I right in thinking that the GPIO chip select currently remains
asserted as it should during a multi-transfer message?
M
------------------------------------------------------------------------------
next prev parent reply other threads:[~2010-04-26 14:35 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 15:11 [PATCH v4 0/2] spi: driver for Cirrus EP93xx SPI controller Mika Westerberg
[not found] ` <cover.1271774845.git.mika.westerberg-X3B1VOXEql0@public.gmane.org>
2010-04-20 15:11 ` [PATCH v4 1/2] spi: implemented " Mika Westerberg
[not found] ` <e96939d18bcbfb7a28ba4a925d7788884566db8c.1271774845.git.mika.westerberg-X3B1VOXEql0@public.gmane.org>
2010-04-20 17:24 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D7F4E7F-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-21 7:16 ` Mika Westerberg
[not found] ` <20100421071629.GL19534-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-21 16:47 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D8C84DA-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-21 16:54 ` Mika Westerberg
[not found] ` <20100421165420.GP19534-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-22 2:47 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D8C8CDD-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-22 5:53 ` Mika Westerberg
2010-04-22 14:11 ` Martin Guy
2010-04-22 14:28 ` Martin Guy
[not found] ` <x2g56d259a01004220728i7f07d492t4c4f63e0ef2e38d9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-22 17:39 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D940C95-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-22 20:19 ` Martin Guy
2010-04-20 22:16 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D85BCCC-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-20 23:54 ` Martin Guy
[not found] ` <z2h56d259a01004201654y93f6c533j11b5accd7e2f46e7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-21 0:11 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D85BDD8-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-21 0:43 ` H Hartley Sweeten
2010-04-21 1:10 ` Martin Guy
[not found] ` <n2u56d259a01004201810j22c17bcfn9fee59e9c65c4d7f-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-21 1:52 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D85BE26-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-21 7:00 ` Mika Westerberg
2010-04-21 10:46 ` Mika Westerberg
[not found] ` <20100421104651.GO19534-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-21 18:00 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D8C8672-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-22 5:45 ` Mika Westerberg
[not found] ` <20100422054519.GA26418-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-22 21:29 ` Ryan Mallon
2010-04-22 17:55 ` Mika Westerberg
2010-04-22 20:43 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D9410F0-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-23 5:20 ` Mika Westerberg
[not found] ` <20100423052003.GF26418-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-23 17:24 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D9419BC-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-23 23:01 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D9B794A-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-25 9:29 ` Martin Guy
[not found] ` <y2x56d259a01004250229he9cb2ee3pf69669c9226f80fb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-25 9:38 ` Martin Guy
[not found] ` <m2l56d259a01004250238s99d6c869s1ee084b36f9736a0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-25 20:25 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D9B7E66-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-26 10:02 ` Mika Westerberg
[not found] ` <20100426100258.GG26418-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-26 16:54 ` H Hartley Sweeten
2010-04-26 10:09 ` Mika Westerberg
2010-04-26 14:35 ` Martin Guy [this message]
[not found] ` <k2l56d259a01004260735nb44e9dddy5b08668787070ac7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-26 17:05 ` H Hartley Sweeten
2010-04-21 6:37 ` Mika Westerberg
[not found] ` <20100421063712.GJ19534-WfG2TfFPcQ9S6P4I59wummXnswh1EIUO@public.gmane.org>
2010-04-21 17:08 ` H Hartley Sweeten
2010-04-24 18:14 ` Martin Guy
[not found] ` <p2h56d259a01004241114qb1b1815em9657e5a857a9d4ee-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-04-25 19:55 ` H Hartley Sweeten
[not found] ` <0D753D10438DA54287A00B0270842697636D9B7E4F-gaq956PjLg32KbjnnMDalRurcAul1UnsRrxOEX5GOmysTnJN9+BGXg@public.gmane.org>
2010-04-26 10:34 ` Mika Westerberg
2010-04-26 12:58 ` Martin Guy
2010-04-20 15:11 ` [PATCH v4 2/2] ep93xx: SPI driver platform support code Mika Westerberg
[not found] ` <509a89ad62001de9de23129b4c34148aef28ef19.1271774845.git.mika.westerberg-X3B1VOXEql0@public.gmane.org>
2010-04-20 16:35 ` H Hartley Sweeten
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=k2l56d259a01004260735nb44e9dddy5b08668787070ac7@mail.gmail.com \
--to=martinwguy-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=hartleys-3FF4nKcrg1dE2c76skzGb0EOCMrvLtNR@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=mika.westerberg-X3B1VOXEql0@public.gmane.org \
--cc=ryan-7Wk5F4Od5/oYd5yxfr4S2w@public.gmane.org \
--cc=spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@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;
as well as URLs for NNTP newsgroup(s).