aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2008-02-05 01:27:34 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:08 -0500
commitecb8a8472f6d314096f20885722f2033d2071719 (patch)
tree1b945f833ecceffc7e786c7a5e1efe55cb7d8867
parent7852375bbbfc7fb9c1117d73914aeb3baf917539 (diff)
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: Olof 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/char/pcmcia/cm4000_cs.c17
-rw-r--r--drivers/pcmcia/pcmcia_resource.c14
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c2
-rw-r--r--include/pcmcia/cs.h8
4 files changed, 21 insertions, 20 deletions
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c
index 02518da6a386..454d7324ba40 100644
--- a/drivers/char/pcmcia/cm4000_cs.c
+++ b/drivers/char/pcmcia/cm4000_cs.c
@@ -308,7 +308,8 @@ static unsigned int calc_baudv(unsigned char fidi)
308 return (wcrcf / wbrcf); 308 return (wcrcf / wbrcf);
309} 309}
310 310
311static unsigned short io_read_num_rec_bytes(ioaddr_t iobase, unsigned short *s) 311static unsigned short io_read_num_rec_bytes(unsigned int iobase,
312 unsigned short *s)
312{ 313{
313 unsigned short tmp; 314 unsigned short tmp;
314 315
@@ -426,7 +427,7 @@ static struct card_fixup card_fixups[] = {
426static void set_cardparameter(struct cm4000_dev *dev) 427static void set_cardparameter(struct cm4000_dev *dev)
427{ 428{
428 int i; 429 int i;
429 ioaddr_t iobase = dev->p_dev->io.BasePort1; 430 unsigned int iobase = dev->p_dev->io.BasePort1;
430 u_int8_t stopbits = 0x02; /* ISO default */ 431 u_int8_t stopbits = 0x02; /* ISO default */
431 432
432 DEBUGP(3, dev, "-> set_cardparameter\n"); 433 DEBUGP(3, dev, "-> set_cardparameter\n");
@@ -459,7 +460,7 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)
459 unsigned short num_bytes_read; 460 unsigned short num_bytes_read;
460 unsigned char pts_reply[4]; 461 unsigned char pts_reply[4];
461 ssize_t rc; 462 ssize_t rc;
462 ioaddr_t iobase = dev->p_dev->io.BasePort1; 463 unsigned int iobase = dev->p_dev->io.BasePort1;
463 464
464 rc = 0; 465 rc = 0;
465 466
@@ -610,7 +611,7 @@ exit_setprotocol:
610 return rc; 611 return rc;
611} 612}
612 613
613static int io_detect_cm4000(ioaddr_t iobase, struct cm4000_dev *dev) 614static int io_detect_cm4000(unsigned int iobase, struct cm4000_dev *dev)
614{ 615{
615 616
616 /* note: statemachine is assumed to be reset */ 617 /* note: statemachine is assumed to be reset */
@@ -671,7 +672,7 @@ static void terminate_monitor(struct cm4000_dev *dev)
671static void monitor_card(unsigned long p) 672static void monitor_card(unsigned long p)
672{ 673{
673 struct cm4000_dev *dev = (struct cm4000_dev *) p; 674 struct cm4000_dev *dev = (struct cm4000_dev *) p;
674 ioaddr_t iobase = dev->p_dev->io.BasePort1; 675 unsigned int iobase = dev->p_dev->io.BasePort1;
675 unsigned short s; 676 unsigned short s;
676 struct ptsreq ptsreq; 677 struct ptsreq ptsreq;
677 int i, atrc; 678 int i, atrc;
@@ -933,7 +934,7 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count,
933 loff_t *ppos) 934 loff_t *ppos)
934{ 935{
935 struct cm4000_dev *dev = filp->private_data; 936 struct cm4000_dev *dev = filp->private_data;
936 ioaddr_t iobase = dev->p_dev->io.BasePort1; 937 unsigned int iobase = dev->p_dev->io.BasePort1;
937 ssize_t rc; 938 ssize_t rc;
938 int i, j, k; 939 int i, j, k;
939 940
@@ -1054,7 +1055,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf,
1054 size_t count, loff_t *ppos) 1055 size_t count, loff_t *ppos)
1055{ 1056{
1056 struct cm4000_dev *dev = (struct cm4000_dev *) filp->private_data; 1057 struct cm4000_dev *dev = (struct cm4000_dev *) filp->private_data;
1057 ioaddr_t iobase = dev->p_dev->io.BasePort1; 1058 unsigned int iobase = dev->p_dev->io.BasePort1;
1058 unsigned short s; 1059 unsigned short s;
1059 unsigned char tmp; 1060 unsigned char tmp;
1060 unsigned char infolen; 1061 unsigned char infolen;
@@ -1408,7 +1409,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
1408 unsigned long arg) 1409 unsigned long arg)
1409{ 1410{
1410 struct cm4000_dev *dev = filp->private_data; 1411 struct cm4000_dev *dev = filp->private_data;
1411 ioaddr_t iobase = dev->p_dev->io.BasePort1; 1412 unsigned int iobase = dev->p_dev->io.BasePort1;
1412 struct pcmcia_device *link; 1413 struct pcmcia_device *link;
1413 int size; 1414 int size;
1414 int rc; 1415 int rc;
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 0ce39de834c4..1d128fbd1a92 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -65,23 +65,23 @@ extern int ds_pc_debug;
65 * Special stuff for managing IO windows, because they are scarce 65 * Special stuff for managing IO windows, because they are scarce
66 */ 66 */
67 67
68static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, 68static int alloc_io_space(struct pcmcia_socket *s, u_int attr,
69 ioaddr_t num, u_int lines) 69 unsigned int *base, unsigned int num, u_int lines)
70{ 70{
71 int i; 71 int i;
72 kio_addr_t try, align; 72 unsigned int try, align;
73 73
74 align = (*base) ? (lines ? 1<<lines : 0) : 1; 74 align = (*base) ? (lines ? 1<<lines : 0) : 1;
75 if (align && (align < num)) { 75 if (align && (align < num)) {
76 if (*base) { 76 if (*base) {
77 ds_dbg(s, 0, "odd IO request: num %#x align %#lx\n", 77 ds_dbg(s, 0, "odd IO request: num %#x align %#x\n",
78 num, align); 78 num, align);
79 align = 0; 79 align = 0;
80 } else 80 } else
81 while (align && (align < num)) align <<= 1; 81 while (align && (align < num)) align <<= 1;
82 } 82 }
83 if (*base & ~(align-1)) { 83 if (*base & ~(align-1)) {
84 ds_dbg(s, 0, "odd IO request: base %#x align %#lx\n", 84 ds_dbg(s, 0, "odd IO request: base %#x align %#x\n",
85 *base, align); 85 *base, align);
86 align = 0; 86 align = 0;
87 } 87 }
@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base,
132} /* alloc_io_space */ 132} /* alloc_io_space */
133 133
134 134
135static void release_io_space(struct pcmcia_socket *s, ioaddr_t base, 135static void release_io_space(struct pcmcia_socket *s, unsigned int base,
136 ioaddr_t num) 136 unsigned int num)
137{ 137{
138 int i; 138 int i;
139 139
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 4b82b2021981..d8b99351b053 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -130,7 +130,7 @@ static int fdomain_config(struct pcmcia_device *link)
130 cisparse_t parse; 130 cisparse_t parse;
131 int i, last_ret, last_fn; 131 int i, last_ret, last_fn;
132 u_char tuple_data[64]; 132 u_char tuple_data[64];
133 char str[16]; 133 char str[22];
134 struct Scsi_Host *host; 134 struct Scsi_Host *host;
135 135
136 DEBUG(0, "fdomain_config(0x%p)\n", link); 136 DEBUG(0, "fdomain_config(0x%p)\n", link);
diff --git a/include/pcmcia/cs.h b/include/pcmcia/cs.h
index d5838c30d20f..87a260e3699e 100644
--- a/include/pcmcia/cs.h
+++ b/include/pcmcia/cs.h
@@ -147,11 +147,11 @@ typedef struct config_req_t {
147 147
148/* For RequestIO and ReleaseIO */ 148/* For RequestIO and ReleaseIO */
149typedef struct io_req_t { 149typedef struct io_req_t {
150 ioaddr_t BasePort1; 150 u_int BasePort1;
151 ioaddr_t NumPorts1; 151 u_int NumPorts1;
152 u_int Attributes1; 152 u_int Attributes1;
153 ioaddr_t BasePort2; 153 u_int BasePort2;
154 ioaddr_t NumPorts2; 154 u_int NumPorts2;
155 u_int Attributes2; 155 u_int Attributes2;
156 u_int IOAddrLines; 156 u_int IOAddrLines;
157} io_req_t; 157} io_req_t;