linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: Pierre Ossman <drzeus-mmc-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org>
Cc: Hans-Peter Nilsson
	<hans-peter.nilsson-VrBV9hrLPhE@public.gmane.org>,
	Mikael Starvik <mikael.starvik-VrBV9hrLPhE@public.gmane.org>,
	Mike Lavender
	<mike-UTnDXsALFwNjMdQLN6DIHgC/G2K4zDHf@public.gmane.org>,
	spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [patch 2.6.22-git5 4/4] mmc_spi host driver
Date: Thu, 2 Aug 2007 13:34:49 -0700	[thread overview]
Message-ID: <200708021334.50670.david-b@pacbell.net> (raw)
In-Reply-To: <20070802150615.36e073c6-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>

On Thursday 02 August 2007, Pierre Ossman wrote:
> On Wed, 1 Aug 2007 11:17:24 -0700
> David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org> wrote:
> 
> > On Wednesday 01 August 2007, Pierre Ossman wrote:
> > > 
> > > I'm more concerned with where you check this, rather than how. If
> > > you want to apply it broadly, the request handling functions in
> > > core.c would seem more sane.
> > 
> > That's not how any other host controller driver works though...
> > 
> 
> Other controllers don't care at all about status bits.

Maybe not, but they *do* report failures.  And in this case
there's no other way to report failures ... since SPI doesn't
have any integral error checks whatsoever.  The only way to
detect errors is to look at those bits after each transaction.

(Without hardware feedback, you can't even tell if there's a
device present on any given chipselect.  The SPI host can
fling bits out, and read back pulled-up/down bits in any
quantity, without error.)


> Except for omap, 
> which caused it to break in fun and interesting ways.

I think the only time I touched that code was to teach it
how to do SD ... 4wire support, writeprotect sensing, and
funky block sizes.

The intended design of an MMC/SD host driver has never
been all that clear.  It's becoming more clear with your
recent work ... but it's not there yet, and there aren't
even test scripts or suites for de-facto requirements
(and to facilitate regression testing).


> > I'm concerned with not becoming a guinea pig for experimenting
> > with deep MMC stack changes which are not directly related to
> > the SPI support.
> > 
> 
> You're the one who started poking the error handling bear ;)

Was I?  Didn't think so.  How was I to know that whiteboard
scribbles would animate themselves?  :)


> But we can ignore it for now.
> 
> > > > After all, if you really wanted to provide raw protocol
> > > > data to the mmc core, cmd->resp[] would be bytes, not
> > > > 32-bit words in cpu-order.
> > > > 
> > > 
> > > It should, as that's how it's used everywhere. And I'd gladly
> > > accept a patch that fixes this.
> > 
> > Erm, I don't follow.  It *is* used as 32-bit words
> > everywhere I've had occasion to check.
> > 
> 
> The only place it is used as that is when checking status bits (in the
> app cmd handling). In all other places it is treated as a data buffer.
> Just look at the UNSTUFF_BITS macro in mmc.c and sd.c.

And it all but ignores those status bits too, which seems kind
of problematic.  (Relies on controller hardware to mirror protocol
faults by hardware faults of some kind...)  But I see what you
mean about UNSTUFF_BITS.


> > > From my point of view, it's all data. :)
> > 
> > Which of your points of view, though?  Clearly at some
> > point the MMC stack recognizes the different semantics
> > associated with for example OCR vs the command response
> > codes.  Data isn't necessarily opaque ... 
> >  
> 
> Right. I'm talking about the layer the host driver handles. There things
> should be:
> 
> <header> <payload> <tail>

Fault handling being orthogonal to that.  And at this time,
like it or (clearly!) not, the mmc core does virtually no
fault checking ... it relies on reports from host drivers.

You're probably on to something with the notion that the
I/O wrappers should check the status codes.  But that's
a substantial change from how the stack has worked, ever
since it was written.


> > > I have committed that to -mm now. Could I bother you with an update
> > > of your patch to remove all MMC_ERR_ stuff? :)
> > 
> > You mean, git-mmc.patch from 2.6.23-rc1-mm2 which I see has
> > just come out?
> > 
> 
> Unfortunately I have little insight into Andrew's schedule for
> producing new -mm. I push stuff to my "for-andrew" branch and he
> eventually pulls from that.

That's no problem.


> > It really would have been easier all around if you had made
> > those changes *after* merging at least the core parts of the
> > SPI support.  It looks like most of the SPI patches won't even
> > apply any more, so I'm "gifted" with a needless quantity of
> > make-work.  The kind of stuff I've been trying to avoid by
> > submitting the SPI stuff *before* any of those newer patches
> > which jumped ahead of it in the queue ... :(
> > 
> 
> I don't see how it would have been easier. The only difference is that
> I'd get a merge problem when I applied the new stuff. So the difference
> is really whose lap it would have fallen in.

Not exactly ... you'd have been developing that new stuff against
current GIT, which would already have had some of those patches,
so there wouldn't even *be* a merge problem for that stuff.


> I can fix your patches if you'd like, but you'd probably have better
> insight into selecting relevant error codes now that the entire errno
> is available.

Patches #1 and #2 were easy fixes; about 2/3 of #3 is rejected,
and I've not yet looked at the details ... that's all the core
changes, which haven't previously cared about much more than
success-or-fault.  #4 should be easy to cope with.


> > That will be a trivial incremental patch.  You are aware
> > that almost all DMA mapping calls in the kernel don't check
> > for errors, right?  Because the ability to return errors is
> > quite new ... and last I checked, not even documented.
> > 
> 
> Somehow, that doesn't make me feel any better.

It's just an indication of how seldom DMA mapping errors
have ever made problems.

 
> > > > More significant are the two FIXMEs related to card reset.
> > > > One will require someone with relevant hardware (Jan?),
> > > > the other still needs investigation.
> > > > 
> > > 
> > > Ok.
> > 
> > I can't see those getting investigated before these patches
> > merge.
> > 
> 
> Sure, that's fine.
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

  parent reply	other threads:[~2007-08-02 20:34 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-14 22:04 [patch 2.6.22-git5 0/4] MMC-over-SPI David Brownell
     [not found] ` <200707141504.51950.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-14 22:05   ` [patch 2.6.22-git5 1/4] MMC headers learn about SPI David Brownell
     [not found]     ` <200707141506.00262.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 16:31       ` Pierre Ossman
     [not found]         ` <20070726183150.024930aa-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 16:55           ` David Brownell
     [not found]             ` <200707260955.22967.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 18:05               ` Pierre Ossman
     [not found]                 ` <20070726200525.6a5b7d72-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 20:08                   ` David Brownell
2007-07-14 22:06   ` [patch 2.6.22-git5 2/4] MMC block learns " David Brownell
     [not found]     ` <200707141506.42880.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 16:33       ` Pierre Ossman
     [not found]         ` <20070726183339.6631243f-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 17:00           ` David Brownell
     [not found]             ` <200707261000.17339.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 18:06               ` Pierre Ossman
     [not found]                 ` <20070726200639.06242858-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 20:15                   ` David Brownell
2007-07-14 22:07   ` [patch 2.6.22-git5 3/4] MMC core " David Brownell
     [not found]     ` <200707141507.17484.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 17:18       ` Pierre Ossman
     [not found]         ` <20070726191824.569542fd-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 21:58           ` David Brownell
     [not found]             ` <200707261458.55558.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 22:22               ` David Brownell
2007-08-01 15:02               ` Pierre Ossman
     [not found]                 ` <20070801170220.3c5ccff6-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-08-01 17:02                   ` David Brownell
     [not found]                     ` <200708011002.28801.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-08-02 12:54                       ` Pierre Ossman
     [not found]                         ` <20070802145445.1118d1e7-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-08-02 19:23                           ` David Brownell
2007-07-14 22:08   ` [patch 2.6.22-git5 4/4] mmc_spi host driver David Brownell
     [not found]     ` <200707141508.07555.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-26 18:02       ` Pierre Ossman
     [not found]         ` <20070726200202.5e5dcf62-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-26 23:32           ` David Brownell
     [not found]             ` <200707261632.37011.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-08-01 15:12               ` Pierre Ossman
     [not found]                 ` <20070801171217.1478267b-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-08-01 18:17                   ` David Brownell
     [not found]                     ` <200708011117.24664.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-08-02 13:06                       ` Pierre Ossman
     [not found]                         ` <20070802150615.36e073c6-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-08-02 20:34                           ` David Brownell [this message]
     [not found]                             ` <200708021334.50670.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-08-04 13:14                               ` Pierre Ossman
     [not found]                                 ` <20070804151452.0efaa5a9-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-08-04 17:32                                   ` David Brownell
     [not found]                                     ` <200708041032.10001.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-08-04 21:32                                       ` Pierre Ossman
2007-08-07 12:35                               ` Pierre Ossman
2007-08-01 18:40                   ` David Brownell
2007-07-16 16:48   ` [patch 2.6.22-git5 0/4] MMC-over-SPI Anton Vorontsov
     [not found]     ` <20070716164837.GA18707-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-07-16 18:54       ` David Brownell
     [not found]         ` <200707161154.54728.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-17 15:13           ` Anton Vorontsov
     [not found]             ` <20070717151350.GA3752-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-07-17 16:11               ` David Brownell
     [not found]                 ` <200707170911.16715.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-18  7:35                   ` Jan Nikitenko
     [not found]                     ` <469DC2BC.5070305-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-07-18 17:06                       ` David Brownell
2007-07-18 10:00                   ` Anton Vorontsov
     [not found]                     ` <20070718100047.GA9544-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-07-18 14:05                       ` Anton Vorontsov
2007-07-18 14:44                   ` Pierre Ossman
     [not found]                     ` <20070718164409.56ca0019-mgABNEgzgxm+PRNnhPf8W5YgPPQkE1Si@public.gmane.org>
2007-07-18 17:27                       ` David Brownell
     [not found]                         ` <200707181027.17819.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-19 16:15                           ` Anton Vorontsov
     [not found]                             ` <20070719161553.GA15756-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-07-19 20:28                               ` David Brownell
     [not found]                                 ` <200707191328.18846.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-23 14:29                                   ` Anton Vorontsov
     [not found]                                     ` <20070723142923.GA28979-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-07-23 17:33                                       ` David Brownell
     [not found]                                         ` <200707231033.31717.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-07-24 10:23                                           ` Anton Vorontsov
2007-08-07  3:21                                           ` David Brownell

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=200708021334.50670.david-b@pacbell.net \
    --to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
    --cc=drzeus-mmc-p3sGCRWkH8CeZLLa646FqQ@public.gmane.org \
    --cc=hans-peter.nilsson-VrBV9hrLPhE@public.gmane.org \
    --cc=mikael.starvik-VrBV9hrLPhE@public.gmane.org \
    --cc=mike-UTnDXsALFwNjMdQLN6DIHgC/G2K4zDHf@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).