diff options
author | Olof Johansson <olof@lixom.net> | 2008-02-05 01:27:34 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:08 -0500 |
commit | ecb8a8472f6d314096f20885722f2033d2071719 (patch) | |
tree | 1b945f833ecceffc7e786c7a5e1efe55cb7d8867 | |
parent | 7852375bbbfc7fb9c1117d73914aeb3baf917539 (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.c | 17 | ||||
-rw-r--r-- | drivers/pcmcia/pcmcia_resource.c | 14 | ||||
-rw-r--r-- | drivers/scsi/pcmcia/fdomain_stub.c | 2 | ||||
-rw-r--r-- | include/pcmcia/cs.h | 8 |
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 | ||
311 | static unsigned short io_read_num_rec_bytes(ioaddr_t iobase, unsigned short *s) | 311 | static 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[] = { | |||
426 | static void set_cardparameter(struct cm4000_dev *dev) | 427 | static 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 | ||
613 | static int io_detect_cm4000(ioaddr_t iobase, struct cm4000_dev *dev) | 614 | static 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) | |||
671 | static void monitor_card(unsigned long p) | 672 | static 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 | ||
68 | static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, | 68 | static 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 | ||
135 | static void release_io_space(struct pcmcia_socket *s, ioaddr_t base, | 135 | static 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 */ |
149 | typedef struct io_req_t { | 149 | typedef 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; |