linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: martinwguy@gmail.com (Martin Guy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 1/2] spi: implemented driver for Cirrus EP93xx SPI controller
Date: Wed, 21 Apr 2010 02:10:08 +0100	[thread overview]
Message-ID: <n2u56d259a01004201810j22c17bcfn9fee59e9c65c4d7f@mail.gmail.com> (raw)
In-Reply-To: <0D753D10438DA54287A00B0270842697636D85BDD8@AUSP01VMBX24.collaborationhost.net>

On 4/21/10, H Hartley Sweeten <hartleys@visionengravers.com> wrote:
> On Tuesday, April 20, 2010 4:55 PM, Martin Guy wrote:
>  > On 4/20/10, H Hartley Sweeten <hartleys@visionengravers.com> wrote:
>  >> So, since each transfer does a wait_for_completion, all the data is transmitted
>  >> which causes the SFRMOUT pin to go HIGH between each transfer in the message.
>  >> ...
>  >> I would think the Sim.One board (Martin?) would have the same issue with the mmc
>  >> card since that design uses the SFRMOUT pin directly for the chip select.
>  >>
>  >> Is there anyway to keep the transfers going in a muiltipart message?
>
>  You should still be getting a chip select deassertion between every transfer
>  in a multipart message since the Sim.One uses the SFRM1 line for the chip select.
>  I haven't actually looked through the mmc_spi driver to see if this happens.

OK, can I see if understand what you're saying, that
ep93xx_spi_process_message() calls ep93xx_spi_process_transfer()
multiple times using:

        list_for_each_entry(t, &msg->transfers, transfer_list) {
                ep93xx_spi_process_transfer(espi, msg, t);
 ...
and process_transfer() waits for each message block to be completely
transmitted and received, so a transaction that consists of several
messages will (or may) cause the device to be deselected between parts
of the same message, which may cause a failure.

I have noticed on card insertion, the last line of:

mmc0: problem reading switch capabilities, performance might suffer.
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card on SPI
mmcblk0: mmc0:0000 SD    952 MiB
 mmcblk0: p1 p2 p4
mmcblk0: retrying using single block read

and the SDHC cards I have don't work at all, spewing tons of:
mmcblk0: error -38 sending status comand
mmcblk0: error -38 sending read/write command, response 0x4, card status 0xff04
end_request: I/O error, dev mmcblk0, sector 7744509

>  Is there any possibility you could look at the actual bus with a logic analyzer?
Not easily, but it seems a likely cause.
To prevent card deselection mid-message I think we would need to
handle multi-transfer messages by making the start of transfers 2..N
continuous with the end of transfers 1..N-1 instead of draining the
reply from each one before starting the next.

Am I on the right track?

    M

  parent reply	other threads:[~2010-04-21  1:10 UTC|newest]

Thread overview: 45+ 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
2010-04-20 15:11 ` [PATCH v4 1/2] spi: implemented " Mika Westerberg
2010-04-20 17:24   ` H Hartley Sweeten
2010-04-21  7:16     ` Mika Westerberg
2010-04-21 16:47       ` H Hartley Sweeten
2010-04-21 16:54         ` Mika Westerberg
2010-04-22  2:47           ` H Hartley Sweeten
2010-04-22  5:53             ` Mika Westerberg
2010-04-22 14:11             ` Martin Guy
2010-04-22 14:28             ` Martin Guy
2010-04-22 17:39               ` H Hartley Sweeten
2010-04-22 20:19                 ` Martin Guy
2010-04-20 22:16   ` H Hartley Sweeten
2010-04-20 23:54     ` Martin Guy
2010-04-21  0:11       ` H Hartley Sweeten
2010-04-21  0:43         ` [spi-devel-general] " H Hartley Sweeten
2010-04-21  1:10         ` Martin Guy [this message]
2010-04-21  1:52           ` H Hartley Sweeten
2010-04-21  7:00             ` Mika Westerberg
2010-04-21 10:46             ` Mika Westerberg
2010-04-21 18:00               ` H Hartley Sweeten
2010-04-22  5:45                 ` Mika Westerberg
2010-04-22 21:29                   ` Ryan Mallon
2010-04-22 17:55                 ` Mika Westerberg
2010-04-22 20:43                   ` H Hartley Sweeten
2010-04-23  5:20                     ` Mika Westerberg
2010-04-23 17:24                       ` H Hartley Sweeten
2010-04-23 23:01                         ` [spi-devel-general] " H Hartley Sweeten
2010-04-25  9:29                           ` Martin Guy
2010-04-25  9:38                             ` Martin Guy
2010-04-25 20:25                               ` H Hartley Sweeten
2010-04-26 10:02                                 ` Mika Westerberg
2010-04-26 16:54                                   ` H Hartley Sweeten
2010-04-26 10:09                                 ` Mika Westerberg
2010-04-26 14:35                                 ` Martin Guy
2010-04-26 17:05                                   ` H Hartley Sweeten
2010-04-29 18:30           ` Mika Westerberg
2010-04-21  6:37     ` Mika Westerberg
2010-04-21 17:08       ` H Hartley Sweeten
2010-04-24 18:14   ` Martin Guy
2010-04-25 19:55     ` H Hartley Sweeten
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
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=n2u56d259a01004201810j22c17bcfn9fee59e9c65c4d7f@mail.gmail.com \
    --to=martinwguy@gmail.com \
    --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 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).