From: Ralf Baechle <ralf@linux-mips.org>
To: Manuel Lauss <manuel.lauss@googlemail.com>
Cc: Linux-MIPS <linux-mips@linux-mips.org>
Subject: Re: Reason for PIO_MASK?
Date: Tue, 6 Oct 2009 16:25:31 +0200 [thread overview]
Message-ID: <20091006142531.GA27430@linux-mips.org> (raw)
In-Reply-To: <f861ec6f0910060511t3e95a089h63dc33e628349c11@mail.gmail.com>
On Tue, Oct 06, 2009 at 02:11:15PM +0200, Manuel Lauss wrote:
> I meant the result of ioremap() of the 36bit address of PCMCIA IO space:
> so the ioport base is somewhere at 0xc0000000, which pata_pcmcia
> tries to devm_iomap(), and this is rejected by the above mentioned file.
>
> The old ide-cs.c driver takes the given IO base as-is (without trying to
> do funky things to it) and just works. (i.e. there are 2 entries in the
> 0xc0000000-range per cf-card in /proc/ioports)
Feeding a virtual address as input to devm_ioremap or ioremap does not
make sense. Ioremap is only to be used for memory resources anyway.
> >> I've temporarily removed the PIO_MASK check and pata_pcmcia
> >> works as expected. Is there any way around this, other than
> >> creating an Alchemy-specific ioport_map() function?
> >
> > The provocative question - why would you want to have more than 64k I/O port
> > space?
>
> *I* don't want more; I want a smarter pata_pcmcia driver ;-) I'll go bug other
> people about this. I brought this up here because one of my SH boards has
> similar needs (need to do an ioremap() with special TLB flags to get access to
> pcmcia IO space) but pata_pcmcia does work there (because SH kernel
> either asks the board to translate an x86-IO port to memory address or
> simply returns the port plus an offset).
Well, Alchemy does this:
...
if (!virt_io_addr) {
printk(KERN_ERR "Unable to ioremap pci space\n");
return 1;
}
au1x_controller.io_map_base = virt_io_addr;
...
set_io_port_base(virt_io_addr);
...
Which sets up a mapping for the entire port space. Normally the PCMCIA
I/O port space should also be part of this range so inb, outb etc. for
the low 64k or so of port address range should just work without further
iomap calls of any sort.
Ralf
next prev parent reply other threads:[~2009-10-06 14:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-03 14:48 Reason for PIO_MASK? Manuel Lauss
2009-10-06 11:52 ` Ralf Baechle
2009-10-06 12:11 ` Manuel Lauss
2009-10-06 14:25 ` Ralf Baechle [this message]
2009-10-06 14:59 ` Manuel Lauss
2009-10-07 15:49 ` Sergei Shtylyov
2009-10-07 16:07 ` Manuel Lauss
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=20091006142531.GA27430@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=linux-mips@linux-mips.org \
--cc=manuel.lauss@googlemail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.