Commit ecb8a847 authored by Olof Johansson's avatar Olof Johansson Committed by Linus Torvalds

pcmcia: convert some internal-only ioaddr_t to unsigned int

Convert the io_req_t members to unsigned int, to allow use on machines with
more than 16 bits worth of IO ports (i.e.  secondary busses on ppc64, etc).

There was only a couple of places in drivers where a change was needed.  I
left printk formats alone (there are lots of %04x-style formats in there),
mostly to not change the format on the platforms that only have 16-bit io
addresses, but also because the padding doesn't really add all that much value
most of the time.

I found only one sprintf of an address, and upsized the string accordingly (I
doubt anyone will have anywhere near INT_MAX as irq value, but at least
there's room for it now).
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7852375b
...@@ -308,7 +308,8 @@ static unsigned int calc_baudv(unsigned char fidi) ...@@ -308,7 +308,8 @@ static unsigned int calc_baudv(unsigned char fidi)
return (wcrcf / wbrcf); return (wcrcf / wbrcf);
} }
static unsigned short io_read_num_rec_bytes(ioaddr_t iobase, unsigned short *s) static unsigned short io_read_num_rec_bytes(unsigned int iobase,
unsigned short *s)
{ {
unsigned short tmp; unsigned short tmp;
...@@ -426,7 +427,7 @@ static struct card_fixup card_fixups[] = { ...@@ -426,7 +427,7 @@ static struct card_fixup card_fixups[] = {
static void set_cardparameter(struct cm4000_dev *dev) static void set_cardparameter(struct cm4000_dev *dev)
{ {
int i; int i;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
u_int8_t stopbits = 0x02; /* ISO default */ u_int8_t stopbits = 0x02; /* ISO default */
DEBUGP(3, dev, "-> set_cardparameter\n"); DEBUGP(3, dev, "-> set_cardparameter\n");
...@@ -459,7 +460,7 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq) ...@@ -459,7 +460,7 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)
unsigned short num_bytes_read; unsigned short num_bytes_read;
unsigned char pts_reply[4]; unsigned char pts_reply[4];
ssize_t rc; ssize_t rc;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
rc = 0; rc = 0;
...@@ -610,7 +611,7 @@ exit_setprotocol: ...@@ -610,7 +611,7 @@ exit_setprotocol:
return rc; return rc;
} }
static int io_detect_cm4000(ioaddr_t iobase, struct cm4000_dev *dev) static int io_detect_cm4000(unsigned int iobase, struct cm4000_dev *dev)
{ {
/* note: statemachine is assumed to be reset */ /* note: statemachine is assumed to be reset */
...@@ -671,7 +672,7 @@ static void terminate_monitor(struct cm4000_dev *dev) ...@@ -671,7 +672,7 @@ static void terminate_monitor(struct cm4000_dev *dev)
static void monitor_card(unsigned long p) static void monitor_card(unsigned long p)
{ {
struct cm4000_dev *dev = (struct cm4000_dev *) p; struct cm4000_dev *dev = (struct cm4000_dev *) p;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
unsigned short s; unsigned short s;
struct ptsreq ptsreq; struct ptsreq ptsreq;
int i, atrc; int i, atrc;
...@@ -933,7 +934,7 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count, ...@@ -933,7 +934,7 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count,
loff_t *ppos) loff_t *ppos)
{ {
struct cm4000_dev *dev = filp->private_data; struct cm4000_dev *dev = filp->private_data;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
ssize_t rc; ssize_t rc;
int i, j, k; int i, j, k;
...@@ -1054,7 +1055,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf, ...@@ -1054,7 +1055,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
size_t count, loff_t *ppos) size_t count, loff_t *ppos)
{ {
struct cm4000_dev *dev = (struct cm4000_dev *) filp->private_data; struct cm4000_dev *dev = (struct cm4000_dev *) filp->private_data;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
unsigned short s; unsigned short s;
unsigned char tmp; unsigned char tmp;
unsigned char infolen; unsigned char infolen;
...@@ -1408,7 +1409,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, ...@@ -1408,7 +1409,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg) unsigned long arg)
{ {
struct cm4000_dev *dev = filp->private_data; struct cm4000_dev *dev = filp->private_data;
ioaddr_t iobase = dev->p_dev->io.BasePort1; unsigned int iobase = dev->p_dev->io.BasePort1;
struct pcmcia_device *link; struct pcmcia_device *link;
int size; int size;
int rc; int rc;
......
...@@ -65,23 +65,23 @@ extern int ds_pc_debug; ...@@ -65,23 +65,23 @@ extern int ds_pc_debug;
* Special stuff for managing IO windows, because they are scarce * Special stuff for managing IO windows, because they are scarce
*/ */
static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, static int alloc_io_space(struct pcmcia_socket *s, u_int attr,
ioaddr_t num, u_int lines) unsigned int *base, unsigned int num, u_int lines)
{ {
int i; int i;
kio_addr_t try, align; unsigned int try, align;
align = (*base) ? (lines ? 1<<lines : 0) : 1; align = (*base) ? (lines ? 1<<lines : 0) : 1;
if (align && (align < num)) { if (align && (align < num)) {
if (*base) { if (*base) {
ds_dbg(s, 0, "odd IO request: num %#x align %#lx\n", ds_dbg(s, 0, "odd IO request: num %#x align %#x\n",
num, align); num, align);
align = 0; align = 0;
} else } else
while (align && (align < num)) align <<= 1; while (align && (align < num)) align <<= 1;
} }
if (*base & ~(align-1)) { if (*base & ~(align-1)) {
ds_dbg(s, 0, "odd IO request: base %#x align %#lx\n", ds_dbg(s, 0, "odd IO request: base %#x align %#x\n",
*base, align); *base, align);
align = 0; align = 0;
} }
...@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, ...@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base,
} /* alloc_io_space */ } /* alloc_io_space */
static void release_io_space(struct pcmcia_socket *s, ioaddr_t base, static void release_io_space(struct pcmcia_socket *s, unsigned int base,
ioaddr_t num) unsigned int num)
{ {
int i; int i;
......
...@@ -130,7 +130,7 @@ static int fdomain_config(struct pcmcia_device *link) ...@@ -130,7 +130,7 @@ static int fdomain_config(struct pcmcia_device *link)
cisparse_t parse; cisparse_t parse;
int i, last_ret, last_fn; int i, last_ret, last_fn;
u_char tuple_data[64]; u_char tuple_data[64];
char str[16]; char str[22];
struct Scsi_Host *host; struct Scsi_Host *host;
DEBUG(0, "fdomain_config(0x%p)\n", link); DEBUG(0, "fdomain_config(0x%p)\n", link);
......
...@@ -147,11 +147,11 @@ typedef struct config_req_t { ...@@ -147,11 +147,11 @@ typedef struct config_req_t {
/* For RequestIO and ReleaseIO */ /* For RequestIO and ReleaseIO */
typedef struct io_req_t { typedef struct io_req_t {
ioaddr_t BasePort1; u_int BasePort1;
ioaddr_t NumPorts1; u_int NumPorts1;
u_int Attributes1; u_int Attributes1;
ioaddr_t BasePort2; u_int BasePort2;
ioaddr_t NumPorts2; u_int NumPorts2;
u_int Attributes2; u_int Attributes2;
u_int IOAddrLines; u_int IOAddrLines;
} io_req_t; } io_req_t;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment