From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: "David S. Miller" <davem@davemloft.net>,
matthew@wil.cx, SCSI Mailing List <linux-scsi@vger.kernel.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: iomapping a big endian area
Date: Tue, 05 Apr 2005 09:43:39 +1000 [thread overview]
Message-ID: <1112658219.26086.110.camel@gaston> (raw)
In-Reply-To: <1112623143.5813.5.camel@mulgrave>
On Mon, 2005-04-04 at 08:59 -0500, James Bottomley wrote:
> On Mon, 2005-04-04 at 17:50 +1000, Benjamin Herrenschmidt wrote:
> > I disagree. The driver will never "know" ...
>
> ? the driver has to know. Look at the 53c700 to see exactly how awful
> it is. This beast has byte and word registers. When used BE, all the
> byte registers alter their position (to both inb and readb).
What I mean is that the driver doesn't have "know" whatever CPU/bus
combo endianness will require it to use "native" or "swapped" access.
What the driver knows is wether the device it tries to access need BE or
LE accessors.
> > I don't think it's sane. You know that your device is BE or LE and use
> > the appropriate interface. "native" doesn't make sense to me in this
> > context.
>
> Well ... it's like this. Native means "pass through without swapping"
> and has an easy implementation on both BE and LE platforms. Logically
> io{read,write}{16,32}be would have to do byte swaps on LE platforms.
> Being lazy, I'm opposed to doing the work if there's no actual use for
> it, so can you provide an example of a BE bus (or device) used on a LE
> platform that would actually benefit from this abstraction?
I don't think drivers will benefit from "native" vs. "swapping". Taht
means that pretty much all drivers that care will end up with #ifdef
crap to pick up the right one based on the CPU endian, and some wil get
it wrong of course. No, I _do_ thing that this should be hidden in the
implementation, and we should provide "le" and "be" accessors (le beeing
the current ones, be new ones). Which one swap or not is in the
implementation of those accessors for the architecture, but the driver
shouldn't have to care.
Ben.
next prev parent reply other threads:[~2005-04-04 23:43 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-02 20:52 [PATCH] finally fix 53c700 to use the generic iomem infrastructure James Bottomley
2005-04-03 1:37 ` iomapping a big endian area Matthew Wilcox
2005-04-03 2:38 ` David S. Miller
2005-04-03 3:10 ` Matthew Wilcox
2005-04-03 3:40 ` James Bottomley
2005-04-03 4:08 ` David S. Miller
2005-04-03 4:27 ` James Bottomley
2005-04-04 7:50 ` Benjamin Herrenschmidt
2005-04-04 13:59 ` James Bottomley
2005-04-04 14:16 ` Christoph Hellwig
2005-04-04 14:25 ` James Bottomley
2005-04-07 23:57 ` Jesse Barnes
2005-04-04 14:22 ` Randy.Dunlap
2005-04-04 23:41 ` Benjamin Herrenschmidt
2005-04-04 23:43 ` Benjamin Herrenschmidt [this message]
2005-04-04 7:49 ` Benjamin Herrenschmidt
2005-04-05 7:42 ` Russell King
2005-04-05 14:05 ` James Bottomley
2005-04-05 18:55 ` Russell King
2005-04-05 20:02 ` Maciej W. Rozycki
2005-04-04 21:17 ` James Bottomley
2005-04-05 7:21 ` Christoph Hellwig
2005-04-05 14:05 ` James Bottomley
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=1112658219.26086.110.camel@gaston \
--to=benh@kernel.crashing.org \
--cc=James.Bottomley@SteelEye.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=matthew@wil.cx \
/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