pcmcia: Convert io_req_t to use kio_addr_t
Subsystems (10)
PATCH 1/1 pcmcia: Convert io_req_t to use kio_addr_t
Convert the io_req_t members to kio_addr_t, to allow use on machines with more than 16 bits worth of IO port address space (ppc64 in this case, but it applies to others as well).
---
I'm not at home in the PCMCIA stack, so I'd appreciate some extra eyes on it to avoid regressions. As far as I can tell, the io_req_t structure is not exported through any userspace interface and only used internally.
This supersedes the earlier (rejected) "increase ioaddr_t to 32-bits" patch (http://patchwork.ozlabs.org/linuxppc/patch?id=11908) for ppc64, since with this change that would not be needed.
Thanks,
Olof
drivers/pcmcia/pcmcia_resource.c +6 -6
@@ -65,8 +65,8 @@ extern int ds_pc_debug;* 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, -ioaddr_t num,u_int lines) +static int alloc_io_space (struct pcmcia_socket *s,u_int attr,kio_addr_t *base, +kio_addr_t num,u_int lines) {int i;kio_addr_t try, align;
@@ -74,14 +74,14 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, align = (*base) ? (lines ?1 <<lines :0 ) :1 ;if (align && (align < num)) {if (*base) { -ds_dbg (s,0 ,"odd IO request: num %#x align %#lx\n" , +ds_dbg (s,0 ,"odd IO request: num %#lx align %#lx\n" , num, align); align =0 ; }else while (align && (align < num)) 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 %#lx align %#lx\n" , *base, align); align =0 ; }
@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, }/* alloc_io_space */ -static void release_io_space (struct pcmcia_socket *s,ioaddr_t base, -ioaddr_t num) +static void release_io_space (struct pcmcia_socket *s,kio_addr_t base, +kio_addr_t num) {int i;
include/pcmcia/cs.h +4 -4
@@ -147,11 +147,11 @@ typedef struct config_req_t {/* For RequestIO and ReleaseIO */ typedef struct io_req_t { -ioaddr_t BasePort1; -ioaddr_t NumPorts1; +kio_addr_t BasePort1; +kio_addr_t NumPorts1;u_int Attributes1; -ioaddr_t BasePort2; -ioaddr_t NumPorts2; +kio_addr_t BasePort2; +kio_addr_t NumPorts2;u_int Attributes2;u_int IOAddrLines; }io_req_t ;
Quoted 3 lines · On Wed, 5 Sep 2007 09:27:43 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO port address space (ppc64 in this case, but it applies to others as well).
drivers/usb/host/sl811_cs.c: In function 'sl811_cs_config':drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 2 has type 'kio_addr_t' drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 3 has type 'long unsigned int'
That's not just a cosmetic thing - the printk can print junk and if there's a %s in the control string after the %x's, printk() will crash.
I don't know how many instances of this are in the tree, but they'll all need to be found and fixed.
Quoted 10 lines · Andrew Morton
Quoted 3 lines · On Wed, 5 Sep 2007 09:27:43 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO port address space (ppc64 in this case, but it applies to others as well).
drivers/usb/host/sl811_cs.c: In function 'sl811_cs_config':drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 2 has type 'kio_addr_t'drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 3 has type 'long unsigned int'
Quoted 5 lines
That's not just a cosmetic thing - the printk can print junk and if there's a %s in the control string after the %x's,
printk()will crash.I don't know how many instances of this are in the tree, but they'll all need to be found and fixed.
A crap, I completely forgot to check drivers/, and my default builds don't contain many of them. My bad.
I'll do a full pass and review all references to the changed variables. So far I've only noticed printk stuff, but I'm not done. There's a fair amount lot of places where they're cast into ints instead of longs, but that's a whole other ball of wax (and shouldn't cause regressions like the printk ones could).
-Olof
PATCH v2 1/1 pcmcia: Convert io_req_t to use kio_addr_t
In reply to Andrew MortonConvert the io_req_t members to kio_addr_t, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).
I've also gone through the drivers, changed the few occurrances of ioaddr_t to kio_addr_t where relevant, and changed format strings for printk() and friends.
There are still places where a kio_addr_t is casted to an int, but at the moment that's not causing problems. It should be cleaned up at some point in the future though.
---
Quoted 10 lines · Andrew Morton
Quoted 3 lines · On Wed, 5 Sep 2007 09:27:43 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO port address space (ppc64 in this case, but it applies to others as well).
drivers/usb/host/sl811_cs.c: In function 'sl811_cs_config':drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 2 has type 'kio_addr_t'drivers/usb/host/sl811_cs.c:263: warning: format '%04x' expects type 'unsigned int', but argument 3 has type 'long unsigned int'
Quoted 5 lines
That's not just a cosmetic thing - the printk can print junk and if there's a %s in the control string after the %x's,
printk()will crash.I don't know how many instances of this are in the tree, but they'll all need to be found and fixed.
I think I caught them all by now.
Thanks,
-Olof
drivers/char/pcmcia/cm4000_cs.c +8 -8
@@ -308,7 +308,7 @@ static unsigned int calc_baudv(unsigned char fidi)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 (kio_addr_t iobase,unsigned short *s) {unsigned short tmp;
@@ -426,7 +426,7 @@ static struct card_fixup card_fixups[] = {static void set_cardparameter (struct cm4000_dev *dev) {int i; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1;u_int8_t stopbits =0x02 ;/* ISO default */ DEBUGP (3 , dev,"-> set_cardparameter\n" );
@@ -459,7 +459,7 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)unsigned short num_bytes_read;unsigned char pts_reply[4 ];ssize_t rc; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1; rc =0 ;
@@ -610,7 +610,7 @@ exit_setprotocol:return rc; } -static int io_detect_cm4000 (ioaddr_t iobase,struct cm4000_dev *dev) +static int io_detect_cm4000 (kio_addr_t iobase,struct cm4000_dev *dev) {/* note: statemachine is assumed to be reset */
@@ -671,7 +671,7 @@ static void terminate_monitor(struct cm4000_dev *dev)static void monitor_card (unsigned long p) {struct cm4000_dev *dev = (struct cm4000_dev *) p; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1;unsigned short s;struct ptsreq ptsreq;int i, atrc;
@@ -933,7 +933,7 @@ static ssize_t cmm_read(struct file *filp, __user char *buf, size_t count, loff_t *ppos) {struct cm4000_dev *dev = filp->private_data; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1;ssize_t rc;int i, j, k;
@@ -1054,7 +1054,7 @@ static ssize_t cmm_write(struct file *filp, const char __user *buf, size_t count, loff_t *ppos) { struct cm4000_dev *dev = (struct cm4000_dev *) filp->private_data; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1;unsigned short s;unsigned char tmp;unsigned char infolen;
@@ -1408,7 +1408,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) {struct cm4000_dev *dev = filp->private_data; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +kio_addr_t iobase = dev->p_dev->io.BasePort1;struct pcmcia_device *link;int size;int rc;
drivers/char/pcmcia/cm4040_cs.c +1 -1
@@ -586,7 +586,7 @@ static int reader_config(struct pcmcia_device *link, int devno) dev->node.minor = devno; dev->node.next = &dev->node; -DEBUGP (2 , dev,"device " DEVICE_NAME "%d at 0x%.4x-0x%.4x\n" , devno, +DEBUGP (2 , dev,"device " DEVICE_NAME "%d at 0x%.4lx-0x%.4lx\n" , devno, link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1);DEBUGP (2 , dev,"<- reader_config (succ)\n" );
drivers/char/pcmcia/synclink_cs.c +1 -1
@@ -665,7 +665,7 @@ static int mgslpc_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );printk ("\n" );return 0 ;
drivers/isdn/hardware/avm/avm_cs.c +2 -2
@@ -211,7 +211,7 @@ static int avmcs_config(struct pcmcia_device *link) link->io.BasePort1 = cf->io.win[0 ].base; link->io.NumPorts1 = cf->io.win[0 ].len; link->io.NumPorts2 =0 ; -printk (KERN_INFO "avm_cs: testing i/o %#x-%#x\n" , +printk (KERN_INFO "avm_cs: testing i/o %#lx-%#lx\n" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 ); i =pcmcia_request_io (link, &link->io);
@@ -288,7 +288,7 @@ found_port:case AVM_CARDTYPE_B1 : addcard = b1pcmcia_addcard_b1;break ; }if ((i = (*addcard)(link->io.BasePort1, link->irq.AssignedIRQ)) <0 ) { -printk (KERN_ERR "avm_cs: failed to add AVM-%s-Controller at i/o %#x, irq %d\n" , +printk (KERN_ERR "avm_cs: failed to add AVM-%s-Controller at i/o %#lx, irq %d\n" , dev->node.dev_name, link->io.BasePort1, link->irq.AssignedIRQ);avmcs_release (link);return -ENODEV ;
drivers/isdn/hisax/avma1_cs.c +3 -3
@@ -233,7 +233,7 @@ static int avma1cs_config(struct pcmcia_device *link) link->io.BasePort1 = cf->io.win[0 ].base; link->io.NumPorts1 = cf->io.win[0 ].len; link->io.NumPorts2 =0 ; -printk (KERN_INFO "avma1_cs: testing i/o %#x-%#x\n" , +printk (KERN_INFO "avma1_cs: testing i/o %#lx-%#lx\n" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1 -1 ); i =pcmcia_request_io (link, &link->io);
@@ -285,7 +285,7 @@ found_port:return -ENODEV ; } -printk (KERN_NOTICE "avma1_cs: checking at i/o %#x, irq %d\n" , +printk (KERN_NOTICE "avma1_cs: checking at i/o %#lx, irq %d\n" , link->io.BasePort1, link->irq.AssignedIRQ); icard.para[0 ] = link->irq.AssignedIRQ;
@@ -295,7 +295,7 @@ found_port: i =hisax_init_pcmcia (link, &busy, &icard);if (i <0 ) { -printk (KERN_ERR "avma1_cs: failed to initialize AVM A1 PCMCIA %d at i/o %#x\n" , i, link->io.BasePort1); +printk (KERN_ERR "avma1_cs: failed to initialize AVM A1 PCMCIA %d at i/o %#lx\n" , i, link->io.BasePort1);avma1cs_release (link);return -ENODEV ; }
drivers/isdn/hisax/elsa_cs.c +3 -3
@@ -296,10 +296,10 @@ static int elsa_cs_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );printk ("\n" );
@@ -310,7 +310,7 @@ static int elsa_cs_config(struct pcmcia_device *link) i =hisax_init_pcmcia (link, &(((local_info_t *)link->priv)->busy), &icard);if (i <0 ) { -printk (KERN_ERR "elsa_cs: failed to initialize Elsa PCMCIA %d at i/o %#x\n" , +printk (KERN_ERR "elsa_cs: failed to initialize Elsa PCMCIA %d at i/o %#lx\n" , i, link->io.BasePort1);elsa_cs_release (link); }else
drivers/isdn/hisax/sedlbauer_cs.c +3 -3
@@ -381,10 +381,10 @@ static int sedlbauer_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );if (link->win) printk(", mem 0x%06lx-0x%06lx", req.Base,
@@ -398,7 +398,7 @@ static int sedlbauer_config(struct pcmcia_device *link) last_ret =hisax_init_pcmcia (link, &(((local_info_t *)link->priv)->stop), &icard);if (last_ret <0 ) { -printk (KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d at i/o %#x\n" , +printk (KERN_ERR "sedlbauer_cs: failed to initialize SEDLBAUER PCMCIA %d at i/o %#lx\n" , last_ret, link->io.BasePort1);sedlbauer_release (link);return -ENODEV ;
drivers/isdn/hisax/teles_cs.c +3 -3
@@ -286,10 +286,10 @@ static int teles_cs_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );printk ("\n" );
@@ -300,7 +300,7 @@ static int teles_cs_config(struct pcmcia_device *link) i =hisax_init_pcmcia (link, &(((local_info_t *)link->priv)->busy), &icard);if (i <0 ) { -printk (KERN_ERR "teles_cs: failed to initialize Teles PCMCIA %d at i/o %#x\n" , +printk (KERN_ERR "teles_cs: failed to initialize Teles PCMCIA %d at i/o %#lx\n" , i, link->io.BasePort1);teles_cs_release (link);return -ENODEV ;
drivers/net/pcmcia/com20020_cs.c +1 -1
@@ -259,7 +259,7 @@ static int com20020_config(struct pcmcia_device *link)DEBUG (0 ,"com20020_config(0x%p)\n" , link); -DEBUG (1 ,"arcnet: baseport1 is %Xh\n" , link->io.BasePort1); +DEBUG (1 ,"arcnet: baseport1 is %lXh\n" , link->io.BasePort1); i = !CS_SUCCESS ;if (!link->io.BasePort1) {
drivers/net/wireless/airo_cs.c +2 -2
@@ -356,10 +356,10 @@ static int airo_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );if (link->win) printk(", mem 0x%06lx-0x%06lx", req.Base,
drivers/net/wireless/hostap/hostap_cs.c +2 -2
@@ -721,10 +721,10 @@ static int prism2_config(struct pcmcia_device *link)if (link->conf.Attributes &CONF_ENABLE_IRQ )printk (", irq %d" , link->irq.AssignedIRQ);if (link->io.NumPorts1) -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );printk ("\n" );
drivers/net/wireless/orinoco_cs.c +1 -1
@@ -332,7 +332,7 @@ orinoco_cs_config(struct pcmcia_device *link)/* Finally, report what we've done */ printk (KERN_DEBUG "%s: " DRIVER_NAME " at %s, irq %d, io " -"0x%04x-0x%04x\n" , dev->name, dev->dev.parent->bus_id, +"0x%04lx-0x%04lx\n" , dev->name, dev->dev.parent->bus_id, link->irq.AssignedIRQ, link->io.BasePort1, link->io.BasePort1 + link->io.NumPorts1 -1 );
drivers/net/wireless/spectrum_cs.c +1 -1
@@ -806,7 +806,7 @@ spectrum_cs_config(struct pcmcia_device *link)/* Finally, report what we've done */ printk (KERN_DEBUG "%s: " DRIVER_NAME " at %s, irq %d, io " -"0x%04x-0x%04x\n" , dev->name, dev->dev.parent->bus_id, +"0x%04lx-0x%04lx\n" , dev->name, dev->dev.parent->bus_id, link->irq.AssignedIRQ, link->io.BasePort1, link->io.BasePort1 + link->io.NumPorts1 -1 );
drivers/parport/parport_cs.c +1 -1
@@ -203,7 +203,7 @@ static int parport_config(struct pcmcia_device *link) &link->dev);if (p ==NULL ) {printk (KERN_NOTICE "parport_cs: parport_pc_probe_port() at " -"0x%3x, irq %u failed\n" , link->io.BasePort1, +"0x%3lx, irq %u failed\n" , link->io.BasePort1, link->irq.AssignedIRQ); goto failed; }
drivers/pcmcia/pcmcia_resource.c +6 -6
@@ -65,8 +65,8 @@ extern int ds_pc_debug;* 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, -ioaddr_t num,u_int lines) +static int alloc_io_space (struct pcmcia_socket *s,u_int attr,kio_addr_t *base, +kio_addr_t num,u_int lines) {int i;kio_addr_t try, align;
@@ -74,14 +74,14 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, align = (*base) ? (lines ?1 <<lines :0 ) :1 ;if (align && (align < num)) {if (*base) { -ds_dbg (s,0 ,"odd IO request: num %#x align %#lx\n" , +ds_dbg (s,0 ,"odd IO request: num %#lx align %#lx\n" , num, align); align =0 ; }else while (align && (align < num)) 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 %#lx align %#lx\n" , *base, align); align =0 ; }
@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_socket *s, u_int attr, ioaddr_t *base, }/* alloc_io_space */ -static void release_io_space (struct pcmcia_socket *s,ioaddr_t base, -ioaddr_t num) +static void release_io_space (struct pcmcia_socket *s,kio_addr_t base, +kio_addr_t num) {int i;
drivers/scsi/pcmcia/fdomain_stub.c +1 -1
@@ -160,7 +160,7 @@ static int fdomain_config(struct pcmcia_device *link)release_region (link->io.BasePort1, link->io.NumPorts1);/* Set configuration options for the fdomain driver */ -sprintf (str,"%d,%d" , link->io.BasePort1, link->irq.AssignedIRQ); +sprintf (str,"%ld,%d" , link->io.BasePort1, link->irq.AssignedIRQ);fdomain_setup (str); host =__fdomain_16x0_detect (&fdomain_driver_template);
drivers/scsi/pcmcia/nsp_cs.c +2 -2
@@ -1896,11 +1896,11 @@ static int nsp_cs_config(struct pcmcia_device *link)printk (", irq %d" , link->irq.AssignedIRQ); }if (link->io.NumPorts1) { -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 ); }if (link->io.NumPorts2) -printk (" & 0x%04x-0x%04x" , link->io.BasePort2, +printk (" & 0x%04lx-0x%04lx" , link->io.BasePort2, link->io.BasePort2+link->io.NumPorts2-1 );if (link->win) printk(", mem 0x%06lx-0x%06lx", req.Base,
drivers/usb/host/sl811_cs.c +1 -1
@@ -259,7 +259,7 @@ next_entry:if (link->conf.Vpp)printk (", Vpp %d.%d" , link->conf.Vpp/10 , link->conf.Vpp%10 );printk (", irq %d" , link->irq.AssignedIRQ); -printk (", io 0x%04x-0x%04x" , link->io.BasePort1, +printk (", io 0x%04lx-0x%04lx" , link->io.BasePort1, link->io.BasePort1+link->io.NumPorts1-1 );printk ("\n" );
include/pcmcia/cs.h +4 -4
@@ -147,11 +147,11 @@ typedef struct config_req_t {/* For RequestIO and ReleaseIO */ typedef struct io_req_t { -ioaddr_t BasePort1; -ioaddr_t NumPorts1; +kio_addr_t BasePort1; +kio_addr_t NumPorts1;u_int Attributes1; -ioaddr_t BasePort2; -ioaddr_t NumPorts2; +kio_addr_t BasePort2; +kio_addr_t NumPorts2;u_int Attributes2;u_int IOAddrLines; }io_req_t ;
Quoted 2 lines · On Fri, 21 Sep 2007 17:15:16 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).
What about the formatting and field widths ?
ulong would probably be a lot saner than kio_addr_t and yet more type obfuscation.
Otherwise looks sensible to me
Quoted 10 lines · Alan Cox
Quoted 2 lines · On Fri, 21 Sep 2007 17:15:16 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).What about the formatting and field widths ?
ulong would probably be a lot saner than
kio_addr_tand yet more type obfuscation.
I don't think anyone uses ioports > 32bit. Certainly i386 takes an int port as parameter to {in,out}[bwl] (and it really only uses 16-bits). parisc uses 24 bits. I don't know what the various ppcs do, but pci bars can only be 32-bit for ioports. So my opinion is that ioports should be uint, not ulong.
Signature · 4 lines
Intel are signing my paycheques ... these opinions are still mine "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step."
Quoted 10 lines · Matthew Wilcox
Quoted 4 lines
What about the formatting and field widths ?
ulong would probably be a lot saner than
kio_addr_tand yet more type obfuscation.I don't think anyone uses ioports > 32bit. Certainly i386 takes an int port as parameter to {in,out}[bwl] (and it really only uses 16-bits). parisc uses 24 bits. I don't know what the various ppcs do, but pci bars can only be 32-bit for ioports. So my opinion is that ioports should be uint, not ulong.
The kernel seems to mostly use int, sometimes uint. I never quite got why pcmcia had to have it's own strange typedef for them.
PATCH v3 1/1 pcmcia: Convert io_req_t to use unsigned int
[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).
---
Quoted 6 lines · Christoph Hellwig
Quoted 5 lines · Matthew Wilcox
Quoted 4 lines
What about the formatting and field widths ?
ulong would probably be a lot saner than
kio_addr_tand yet more type obfuscation.
Quoted 8 lines
Quoted 5 lines
I don't think anyone uses ioports > 32bit. Certainly i386 takes an int port as parameter to {in,out}[bwl] (and it really only uses 16-bits). parisc uses 24 bits. I don't know what the various ppcs do, but pci bars can only be 32-bit for ioports. So my opinion is that ioports should be uint, not ulong.
The kernel seems to mostly use int, sometimes uint. I never quite got why pcmcia had to have it's own strange typedef for them.
Ok, so let's switch to unsigned int. Only exception I made was to stick to u_int in the struct itself to keep it common with the style in the rest of it.
This also resulted in a much smaller diff, since I didn't have to change any printk formats (see above about 0-padding).
-Olof
drivers/char/pcmcia/cm4000_cs.c +8 -8
@@ -308,7 +308,7 @@ static unsigned int calc_baudv(unsignedreturn (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;
@@ -426,7 +426,7 @@ static struct card_fixup card_fixups[] =static void set_cardparameter (struct cm4000_dev *dev) {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 */ DEBUGP (3 , dev,"-> set_cardparameter\n" );
@@ -459,7 +459,7 @@ static int set_protocol(struct cm4000_deunsigned short num_bytes_read;unsigned char pts_reply[4 ];ssize_t rc; -ioaddr_t iobase = dev->p_dev->io.BasePort1; +unsigned int iobase = dev->p_dev->io.BasePort1; rc =0 ;
@@ -610,7 +610,7 @@ exit_setprotocol: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 */
@@ -671,7 +671,7 @@ static void terminate_monitor(struct cm4static void monitor_card (unsigned long 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;struct ptsreq ptsreq;int i, atrc;
@@ -933,7 +933,7 @@ static ssize_t cmm_read(struct file *fil loff_t *ppos) {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;int i, j, k;
@@ -1054,7 +1054,7 @@ static ssize_t cmm_write(struct file *fi size_t count, loff_t *ppos) { 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 char tmp;unsigned char infolen;
@@ -1408,7 +1408,7 @@ static int cmm_ioctl(struct inode *inode unsigned long arg) {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;int size;int rc;
drivers/pcmcia/pcmcia_resource.c +7 -7
@@ -65,23 +65,23 @@ extern int ds_pc_debug;* 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, -ioaddr_t num,u_int lines) +static int alloc_io_space (struct pcmcia_socket *s,u_int attr, +unsigned int *base,unsigned int num,u_int lines) {int i; -kio_addr_t try, align; +unsigned int try, align; align = (*base) ? (lines ?1 <<lines :0 ) :1 ;if (align && (align < num)) {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); align =0 ; }else while (align && (align < num)) 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); align =0 ; }
@@ -132,8 +132,8 @@ static int alloc_io_space(struct pcmcia_ }/* alloc_io_space */ -static void release_io_space (struct pcmcia_socket *s,ioaddr_t base, -ioaddr_t num) +static void release_io_space (struct pcmcia_socket *s,unsigned int base, +unsigned int num) {int i;
include/pcmcia/cs.h +4 -4
@@ -147,11 +147,11 @@ typedef struct config_req_t {/* For RequestIO and ReleaseIO */ typedef struct io_req_t { -ioaddr_t BasePort1; -ioaddr_t NumPorts1; +u_int BasePort1; +u_int NumPorts1;u_int Attributes1; -ioaddr_t BasePort2; -ioaddr_t NumPorts2; +u_int BasePort2; +u_int NumPorts2;u_int Attributes2;u_int IOAddrLines; }io_req_t ;
drivers/scsi/pcmcia/fdomain_stub.c +1 -1
@@ -130,7 +130,7 @@ static int fdomain_config(struct pcmcia_cisparse_t parse;int i, last_ret, last_fn;u_char tuple_data[64 ]; -char str[16 ]; +char str[22 ];struct Scsi_Host *host;DEBUG (0 ,"fdomain_config(0x%p)\n" , link);
Dominik Brodowski
maintainerRe: [PATCH v3] pcmcia: Convert io_req_t to use unsigned int
Quoted 3 lines · Olof Johansson
Convert the
io_req_tmembers to unsigned int, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).
Agreed, though I'd prefer if we got rid of kio_addr_t at the same time, and convert its users to unsigned int as well -- as was pointed out earlier in this thread, there's no known usage of IO ports larger than 32 bits.
Dominik
PATCH 1/1 pcmcia: Remove replace kio_addr_t with unsigned int everywhere
pcmcia: Remove replace kio_addr_t with unsigned int everywhere
Remove kio_addr_t, and replace it with unsigned int. No known architecture needs more than 32 bits for IO addresses and ports and having a separate type for it is just messy.
This goes on top of the patch switching the io_req_t members from ioaddr_t to unsigned int.
---
Quoted 8 lines · Dominik Brodowski
Quoted 3 lines · Olof Johansson
Convert the
io_req_tmembers to unsigned int, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).Agreed, though I'd prefer if we got rid of
kio_addr_tat the same time, and convert its users to unsigned int as well -- as was pointed out earlier in this thread, there's no known usage of IO ports larger than 32 bits.
Ok. I prefer to do that as a separate patch though, the former is a functional change I need for my platform, the second is just janitorial. The first one still applies to mainline git, so I won't repost it.
-Olof
Documentation/pcmcia/driver-changes.txt +2 -2
@@ -33,8 +33,8 @@ This file details changes in 2.6 which affect PCMCIA card driver authors: and can be used (e.g. for SET_NETDEV_DEV) by using handle_to_dev(client_handle_t * handle). -* Convert internal I/O port addresses to unsigned long (as of 2.6.11) - ioaddr_t should be replaced by kio_addr_t in PCMCIA card drivers. +* Convert internal I/O port addresses to unsigned int (as of 2.6.11) + ioaddr_t should be replaced by unsigned int in PCMCIA card drivers. * irq_mask and irq_list parameters (as of 2.6.11) The irq_mask and irq_list parameters should no longer be used in
drivers/bluetooth/bt3c_cs.c +1 -1
@@ -704,7 +704,7 @@ static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *static int bt3c_config (struct pcmcia_device *link) { -static kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };bt3c_info_t *info = link->priv;tuple_t tuple;u_short buf[256 ];
drivers/bluetooth/btuart_cs.c +1 -1
@@ -634,7 +634,7 @@ static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *static int btuart_config (struct pcmcia_device *link) { -static kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };btuart_info_t *info = link->priv;tuple_t tuple;u_short buf[256 ];
drivers/char/pcmcia/cm4000_cs.c +1 -1
@@ -1408,7 +1408,7 @@ static int cmm_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) {struct cm4000_dev *dev = filp->private_data; -unsigned in iobase = dev->p_dev->io.BasePort1; +unsigned int iobase = dev->p_dev->io.BasePort1;struct pcmcia_device *link;int size;int rc;
drivers/net/pcmcia/3c574_cs.c +25 -24
164 lines not on this page · raw message
drivers/net/pcmcia/3c589_cs.c +15 -15
@@ -145,7 +145,7 @@ DRV_NAME ".c " DRV_VERSION " 2001/10/13 00:08:50 (David Hinds)";static int tc589_config (struct pcmcia_device *link);static void tc589_release (struct pcmcia_device *link); -static u16 read_eeprom (kio_addr_t ioaddr,int index); +static u16 read_eeprom (unsigned int ioaddr,int index);static void tc589_reset (struct net_device *dev);static void media_check (unsigned long arg);static int el3_config (struct net_device *dev,struct ifmap *map);
@@ -253,7 +253,7 @@ static int tc589_config(struct pcmcia_device *link)tuple_t tuple;u16 buf[32 ], *phys_addr;int last_fn, last_ret, i, j, multi =0 , fifo; -kio_addr_t ioaddr; +unsigned int ioaddr;char *ram_split[] = {"5:3" ,"3:1" ,"1:1" ,"3:5" };DECLARE_MAC_BUF (mac);
@@ -402,7 +402,7 @@ static void tc589_wait_for_completion(struct net_device *dev, int cmd)Read a word from the EEPROM using the regular EEPROM access register. Assume that we are in register window zero. */ -static u16 read_eeprom (kio_addr_t ioaddr,int index) +static u16 read_eeprom (unsigned int ioaddr,int index) {int i;outw (EEPROM_READ + index, ioaddr +10 );
@@ -420,7 +420,7 @@ static u16 read_eeprom(kio_addr_t ioaddr, int index)static void tc589_set_xcvr (struct net_device *dev,int if_port) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;EL3WINDOW (0 );switch (if_port) {
@@ -442,7 +442,7 @@ static void tc589_set_xcvr(struct net_device *dev, int if_port)static void dump_status (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;EL3WINDOW (1 ); printk(KERN_INFO " irq status %04x, rx status %04x, tx status " "%02x tx free %04x\n", inw(ioaddr+EL3_STATUS),
@@ -458,7 +458,7 @@ static void dump_status(struct net_device *dev)/* Reset and restore all of the 3c589 registers. */ static void tc589_reset (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;EL3WINDOW (0 );
@@ -566,7 +566,7 @@ static int el3_open(struct net_device *dev)static void el3_tx_timeout (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;printk (KERN_WARNING "%s: Transmit timed out!\n" , dev->name);dump_status (dev);
@@ -581,7 +581,7 @@ static void el3_tx_timeout(struct net_device *dev)static void pop_tx_status (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;/* Clear the Tx status stack. */
@@ -603,7 +603,7 @@ static void pop_tx_status(struct net_device *dev)static int el3_start_xmit (struct sk_buff *skb,struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;struct el3_private *priv =netdev_priv (dev);unsigned long flags;
@@ -640,7 +640,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) {struct net_device *dev = (struct net_device *) dev_id;struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;__u16 status;int i =0 , handled =1 ;
@@ -726,7 +726,7 @@ static void media_check(unsigned long arg) {struct net_device *dev = (struct net_device *)(arg);struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u16 media, errs;unsigned long flags;
@@ -827,7 +827,7 @@ static struct net_device_stats *el3_get_stats(struct net_device *dev)static void update_stats (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (2 ,"%s: updating the statistics.\n" , dev->name);/* Turn off statistics updates while reading. */
@@ -854,7 +854,7 @@ static void update_stats(struct net_device *dev)static int el3_rx (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int worklimit =32 ;short rx_status;
@@ -908,7 +908,7 @@ static void set_multicast_list(struct net_device *dev) {struct el3_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u16 opts = SetRxFilter | RxStation | RxBroadcast;if (!pcmcia_dev_present (link))return ;
@@ -923,7 +923,7 @@ static int el3_close(struct net_device *dev) {struct el3_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (1 ,"%s: shutting down ethercard.\n" , dev->name);
drivers/net/pcmcia/axnet_cs.c +13 -13
@@ -96,8 +96,8 @@ static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);static void ei_watchdog (u_long arg);static void axnet_reset_8390 (struct net_device *dev); -static int mdio_read (kio_addr_t addr,int phy_id,int loc); -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value); +static int mdio_read (unsigned int addr,int phy_id,int loc); +static void mdio_write (unsigned int addr,int phy_id,int loc,int value);static void get_8390_hdr (struct net_device *,struct e8390_pkt_hdr *,int );
@@ -203,7 +203,7 @@ static void axnet_detach(struct pcmcia_device *link)static int get_prom (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i, j;/* This is based on drivers/net/ne.c */
@@ -473,7 +473,7 @@ static int axnet_resume(struct pcmcia_device *link)#define MDIO_MASK 0x0f#define MDIO_ENB_IN 0x02 -static void mdio_sync (kio_addr_t addr) +static void mdio_sync (unsigned int addr) {int bits;for (bits =0 ; bits <32 ; bits++) {
@@ -482,7 +482,7 @@ static void mdio_sync(kio_addr_t addr) } } -static int mdio_read (kio_addr_t addr,int phy_id,int loc) +static int mdio_read (unsigned int addr,int phy_id,int loc) {u_int cmd = (0xf6 <<10 )|(phy_id<<5 )|loc;int i, retval =0 ;
@@ -501,7 +501,7 @@ static int mdio_read(kio_addr_t addr, int phy_id, int loc)return (retval>>1 ) &0xffff ; } -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value) +static void mdio_write (unsigned int addr,int phy_id,int loc,int value) {u_int cmd = (0x05 <<28 )|(phy_id<<23 )|(loc<<18 )|(1 <<17 )|value;int i;
@@ -575,7 +575,7 @@ static int axnet_close(struct net_device *dev)static void axnet_reset_8390 (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int i; ei_status.txing = ei_status.dmaing =0 ;
@@ -610,8 +610,8 @@ static void ei_watchdog(u_long arg) {struct net_device *dev = (struct net_device *)(arg);axnet_dev_t *info =PRIV (dev); -kio_addr_t nic_base = dev->base_addr; -kio_addr_t mii_addr = nic_base +AXNET_MII_EEP ; +unsigned int nic_base = dev->base_addr; +unsigned int mii_addr = nic_base +AXNET_MII_EEP ;u_short link;if (!netif_device_present (dev)) goto reschedule;
@@ -681,7 +681,7 @@ static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {axnet_dev_t *info =PRIV (dev);u16 *data = (u16 *)&rq->ifr_ifru; -kio_addr_t mii_addr = dev->base_addr +AXNET_MII_EEP ; +unsigned int mii_addr = dev->base_addr +AXNET_MII_EEP ;switch (cmd) {case SIOCGMIIPHY : data[0 ] = info->phy_id;
@@ -703,7 +703,7 @@ static void get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;outb_p (0 , nic_base +EN0_RSARLO );/* On page boundary */ outb_p (ring_page, nic_base +EN0_RSARHI );
@@ -721,7 +721,7 @@ static void get_8390_hdr(struct net_device *dev,static void block_input (struct net_device *dev,int count,struct sk_buff *skb,int ring_offset) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int xfer_count = count;char *buf = skb->data;
@@ -744,7 +744,7 @@ static void block_input(struct net_device *dev, int count,static void block_output (struct net_device *dev,int count,const u_char *buf,const int start_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;#ifdef PCMCIA_DEBUG if (ei_debug >4 )
drivers/net/pcmcia/fmvj18x_cs.c +12 -11
@@ -298,7 +298,8 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)static int mfc_try_io_port (struct pcmcia_device *link) {int i, ret; -static const kio_addr_t serial_base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static const unsigned int serial_base[5 ] = + {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };for (i =0 ; i <5 ; i++) { link->io.BasePort2 = serial_base[i];
@@ -316,7 +317,7 @@ static int mfc_try_io_port(struct pcmcia_device *link)static int ungermann_try_io_port (struct pcmcia_device *link) {int ret; -kio_addr_t ioaddr; +unsigned int ioaddr;/* Ungermann-Bass Access/CARD accepts 0x300,0x320,0x340,0x360 0x380,0x3c0 only for ioport.
@@ -342,7 +343,7 @@ static int fmvj18x_config(struct pcmcia_device *link)cisparse_t parse;u_short buf[32 ];int i, last_fn =0 , last_ret =0 , ret; -kio_addr_t ioaddr; +unsigned int ioaddr;cardtype_t cardtype;char *card_name ="unknown" ;u_char *node_id;
@@ -610,7 +611,7 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link)u_char __iomem *base;int i, j;struct net_device *dev = link->priv; -kio_addr_t ioaddr; +unsigned int ioaddr;/* Allocate a small memory window */ req.Attributes =WIN_DATA_WIDTH_8 |WIN_MEMORY_TYPE_AM |WIN_ENABLE ;
@@ -735,7 +736,7 @@ static irqreturn_t fjn_interrupt(int irq, void *dev_id) {struct net_device *dev = dev_id;local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;unsigned short tx_stat, rx_stat;if (lp ==NULL ) {
@@ -794,7 +795,7 @@ static irqreturn_t fjn_interrupt(int irq, void *dev_id)static void fjn_tx_timeout (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr; printk(KERN_NOTICE "%s: transmit timed out with status %04x, %s?\n", dev->name, htons(inw(ioaddr + TX_STATUS)),
@@ -824,7 +825,7 @@ static void fjn_tx_timeout(struct net_device *dev)static int fjn_start_xmit (struct sk_buff *skb,struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;short length = skb->len;if (length <ETH_ZLEN )
@@ -897,7 +898,7 @@ static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev)static void fjn_reset (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;DEBUG (4 ,"fjn_reset(%s) called.\n" ,dev->name);
@@ -976,7 +977,7 @@ static void fjn_reset(struct net_device *dev)static void fjn_rx (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int boguscount =10 ;/* 5 -> 10: by agy 19940922 */ DEBUG(4, "%s: in rx_packet(), rx_status %02x.\n",
@@ -1130,7 +1131,7 @@ static int fjn_close(struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (4 ,"fjn_close('%s').\n" , dev->name);
@@ -1173,7 +1174,7 @@ static struct net_device_stats *fjn_get_stats(struct net_device *dev)static void set_rx_mode (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u_char mc_filter[8 ];/* Multicast hash filter */ u_long flags;int i;
drivers/net/pcmcia/nmclan_cs.c +12 -12
@@ -518,7 +518,7 @@ mace_readassuming that during normal operation, the MACE is always in bank 0. ---------------------------------------------------------------------------- */ -static int mace_read (mace_private *lp,kio_addr_t ioaddr,int reg) +static int mace_read (mace_private *lp,unsigned int ioaddr,int reg) {int data =0xFF ;unsigned long flags;
@@ -545,7 +545,7 @@ mace_writeare assuming that during normal operation, the MACE is always in bank 0. ---------------------------------------------------------------------------- */ -static void mace_write (mace_private *lp,kio_addr_t ioaddr,int reg,int data) +static void mace_write (mace_private *lp,unsigned int ioaddr,int reg,int data) {unsigned long flags;
@@ -567,7 +567,7 @@ static void mace_write(mace_private *lp, kio_addr_t ioaddr, int reg, int data)mace_init Resets the MACE chip. ---------------------------------------------------------------------------- */ -static int mace_init (mace_private *lp,kio_addr_t ioaddr,char *enet_addr) +static int mace_init (mace_private *lp,unsigned int ioaddr,char *enet_addr) {int i;int ct =0 ;
@@ -657,7 +657,7 @@ static int nmclan_config(struct pcmcia_device *link)tuple_t tuple;u_char buf[64 ];int i, last_ret, last_fn; -kio_addr_t ioaddr; +unsigned int ioaddr;DECLARE_MAC_BUF (mac);DEBUG (0 ,"nmclan_config(0x%p)\n" , link);
@@ -839,7 +839,7 @@ mace_open---------------------------------------------------------------------------- */ static int mace_open (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev;
@@ -862,7 +862,7 @@ mace_close---------------------------------------------------------------------------- */ static int mace_close (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev;
@@ -935,7 +935,7 @@ static void mace_tx_timeout(struct net_device *dev)static int mace_start_xmit (struct sk_buff *skb,struct net_device *dev) {mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;netif_stop_queue (dev);
@@ -996,7 +996,7 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id) {struct net_device *dev = (struct net_device *) dev_id;mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;int status;int IntrCnt =MACE_MAX_IR_ITERATIONS ;
@@ -1140,7 +1140,7 @@ mace_rxstatic int mace_rx (struct net_device *dev,unsigned char RxCnt) {mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;unsigned char rx_framecnt;unsigned short rx_status;
@@ -1302,7 +1302,7 @@ update_statscard's SRAM fast enough. If this happens, something is seriously wrong with the hardware. ---------------------------------------------------------------------------- */ -static void update_stats (kio_addr_t ioaddr,struct net_device *dev) +static void update_stats (unsigned int ioaddr,struct net_device *dev) {mace_private *lp =netdev_priv (dev);
@@ -1448,7 +1448,7 @@ static void restore_multicast_list(struct net_device *dev)mace_private *lp =netdev_priv (dev);int num_addrs = lp->multicast_num_addrs;int *ladrf = lp->multicast_ladrf; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i; DEBUG(2, "%s: restoring Rx mode to %d addresses.\n",
@@ -1540,7 +1540,7 @@ static void set_multicast_list(struct net_device *dev)static void restore_multicast_list (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev); DEBUG(2, "%s: restoring Rx mode to %d addresses.\n", dev->name,
drivers/net/pcmcia/pcnet_cs.c +18 -18
@@ -348,7 +348,7 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)static hw_info_t *get_prom (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u_char prom[32 ];int i, j;
@@ -424,7 +424,7 @@ static hw_info_t *get_dl10019(struct pcmcia_device *link)static hw_info_t *get_ax88190 (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i, j;/* Not much of a test, but the alternatives are messy */
@@ -755,7 +755,7 @@ static int pcnet_resume(struct pcmcia_device *link)#define MDIO_DATA_READ 0x10#define MDIO_MASK 0x0f -static void mdio_sync (kio_addr_t addr) +static void mdio_sync (unsigned int addr) {int bits, mask =inb (addr) &MDIO_MASK ;for (bits =0 ; bits <32 ; bits++) {
@@ -764,7 +764,7 @@ static void mdio_sync(kio_addr_t addr) } } -static int mdio_read (kio_addr_t addr,int phy_id,int loc) +static int mdio_read (unsigned int addr,int phy_id,int loc) {u_int cmd = (0x06 <<10 )|(phy_id<<5 )|loc;int i, retval =0 , mask =inb (addr) &MDIO_MASK ;
@@ -783,7 +783,7 @@ static int mdio_read(kio_addr_t addr, int phy_id, int loc)return (retval>>1 ) &0xffff ; } -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value) +static void mdio_write (unsigned int addr,int phy_id,int loc,int value) {u_int cmd = (0x05 <<28 )|(phy_id<<23 )|(loc<<18 )|(1 <<17 )|value;int i, mask =inb (addr) &MDIO_MASK ;
@@ -817,10 +817,10 @@ static void mdio_write(kio_addr_t addr, int phy_id, int loc, int value)#define DL19FDUPLX 0x0400/* DL10019 Full duplex mode */ -static int read_eeprom (kio_addr_t ioaddr,int location) +static int read_eeprom (unsigned int ioaddr,int location) {int i, retval =0 ; -kio_addr_t ee_addr = ioaddr +DLINK_EEPROM ; +unsigned int ee_addr = ioaddr +DLINK_EEPROM ;int read_cmd = location | (EE_READ_CMD <<8 );outb (0 , ee_addr);
@@ -851,10 +851,10 @@ static int read_eeprom(kio_addr_t ioaddr, int location)In ASIC mode, EE_ADOT is used to output the data to the ASIC. */ -static void write_asic (kio_addr_t ioaddr,int location,short asic_data) +static void write_asic (unsigned int ioaddr,int location,short asic_data) {int i; -kio_addr_t ee_addr = ioaddr +DLINK_EEPROM ; +unsigned int ee_addr = ioaddr +DLINK_EEPROM ;short dataval;int read_cmd = location | (EE_READ_CMD <<8 );
@@ -896,7 +896,7 @@ static void write_asic(kio_addr_t ioaddr, int location, short asic_data)static void set_misc_reg (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;pcnet_dev_t *info =PRIV (dev);u_char tmp;
@@ -935,7 +935,7 @@ static void set_misc_reg(struct net_device *dev)static void mii_phy_probe (struct net_device *dev) {pcnet_dev_t *info =PRIV (dev); -kio_addr_t mii_addr = dev->base_addr +DLINK_GPIO ; +unsigned int mii_addr = dev->base_addr +DLINK_GPIO ;int i;u_int tmp, phyid;
@@ -1013,7 +1013,7 @@ static int pcnet_close(struct net_device *dev)static void pcnet_reset_8390 (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int i; ei_status.txing = ei_status.dmaing =0 ;
@@ -1073,8 +1073,8 @@ static void ei_watchdog(u_long arg) {struct net_device *dev = (struct net_device *)arg;pcnet_dev_t *info =PRIV (dev); -kio_addr_t nic_base = dev->base_addr; -kio_addr_t mii_addr = nic_base +DLINK_GPIO ; +unsigned int nic_base = dev->base_addr; +unsigned int mii_addr = nic_base +DLINK_GPIO ;u_short link;if (!netif_device_present (dev)) goto reschedule;
@@ -1176,7 +1176,7 @@ static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {pcnet_dev_t *info =PRIV (dev);u16 *data = (u16 *)&rq->ifr_ifru; -kio_addr_t mii_addr = dev->base_addr +DLINK_GPIO ; +unsigned int mii_addr = dev->base_addr +DLINK_GPIO ;switch (cmd) {case SIOCGMIIPHY : data[0 ] = info->phy_id;
@@ -1198,7 +1198,7 @@ static void dma_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;if (ei_status.dmaing) { printk(KERN_NOTICE "%s: DMAing conflict in dma_block_input."
@@ -1229,7 +1229,7 @@ static void dma_get_8390_hdr(struct net_device *dev,static void dma_block_input (struct net_device *dev,int count,struct sk_buff *skb,int ring_offset) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int xfer_count = count;char *buf = skb->data;
@@ -1284,7 +1284,7 @@ static void dma_block_input(struct net_device *dev, int count,static void dma_block_output (struct net_device *dev,int count,const u_char *buf,const int start_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;pcnet_dev_t *info =PRIV (dev);#ifdef PCMCIA_DEBUG int retries =0 ;
drivers/net/pcmcia/smc91c92_cs.c +31 -31
242 lines not on this page · raw message
drivers/net/pcmcia/xirc2ps_cs.c +26 -25
171 lines not on this page · raw message
drivers/net/wireless/netwave_cs.c +12 -12
@@ -195,7 +195,7 @@ static int netwave_pcmcia_config(struct pcmcia_device *arg); /* Runs after cardstatic void netwave_detach (struct pcmcia_device *p_dev);/* Destroy instance */ /* Hardware configuration */ -static void netwave_doreset (kio_addr_t iobase,u_char __iomem *ramBase); +static void netwave_doreset (unsigned int iobase,u_char __iomem *ramBase);static void netwave_reset (struct net_device *dev);/* Misc device stuff */
@@ -309,7 +309,7 @@ static inline void wait_WOC(unsigned int iobase) }static void netwave_snapshot (netwave_private *priv,u_char __iomem *ramBase, -kio_addr_t iobase) { +unsigned int iobase) {u_short resultBuffer;/* if time since last snapshot is > 1 sec. (100 jiffies?) then take
@@ -340,7 +340,7 @@ static void netwave_snapshot(netwave_private *priv, u_char __iomem *ramBase,static struct iw_statistics *netwave_get_wireless_stats (struct net_device *dev) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;struct iw_statistics * wstats;
@@ -471,7 +471,7 @@ static int netwave_set_nwid(struct net_device *dev, char *extra) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -518,7 +518,7 @@ static int netwave_set_scramble(struct net_device *dev, char *key) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -621,7 +621,7 @@ static int netwave_get_snap(struct net_device *dev, char *extra) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -874,7 +874,7 @@ static int netwave_resume(struct pcmcia_device *link)* * Proper hardware reset of the card. */ -static void netwave_doreset (kio_addr_t ioBase,u_char __iomem *ramBase) +static void netwave_doreset (unsigned int ioBase,u_char __iomem *ramBase) {/* Reset card */ wait_WOC (ioBase);
@@ -892,7 +892,7 @@ static void netwave_reset(struct net_device *dev) {/* u_char state; */ netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;DEBUG (0 ,"netwave_reset: Done with hardware reset\n" );
@@ -973,7 +973,7 @@ static int netwave_hw_xmit(unsigned char* data, int len,netwave_private *priv =netdev_priv (dev);u_char __iomem * ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;/* Disable interrupts & save flags */ spin_lock_irqsave (&priv->spinlock, flags);
@@ -1065,7 +1065,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {*/ static irqreturn_t netwave_interrupt (int irq,void * dev_id) { -kio_addr_t iobase; +unsigned int iobase;u_char __iomem *ramBase;struct net_device *dev = (struct net_device *)dev_id;struct netwave_private *priv =netdev_priv (dev);
@@ -1235,7 +1235,7 @@ static int netwave_rx(struct net_device *dev) {netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;u_char rxStatus;struct sk_buff *skb =NULL ; unsigned int curBuffer,
@@ -1388,7 +1388,7 @@ module_exit(exit_netwave_cs);*/ static void set_multicast_list (struct net_device *dev) { -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem * ramBase = priv->ramBase;u_char rcvMode =0 ;
drivers/net/wireless/wavelan_cs.c +28 -28
224 lines not on this page · raw message
drivers/pcmcia/i82092.c +1 -1
@@ -82,7 +82,7 @@ struct socket_info {1 = empty socket, 2 = card but not initialized, 3 = operational card */ -kio_addr_t io_base;/* base io address of the socket */ +unsigned int io_base;/* base io address of the socket */ struct pcmcia_socket socket;struct pci_dev *dev;/* The PCI device for the socket */
drivers/pcmcia/i82365.c +7 -7
@@ -164,7 +164,7 @@ struct i82365_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_short psock;u_char cs_irq, intr;union {
@@ -238,7 +238,7 @@ static u_char i365_get(u_short sock, u_short reg)unsigned long flags;spin_lock_irqsave (&bus_lock,flags); { -kio_addr_t port = socket[sock].ioaddr; +unsigned int port = socket[sock].ioaddr;u_char val; reg =I365_REG (socket[sock].psock, reg);outb (reg, port); val =inb (port+1 );
@@ -252,7 +252,7 @@ static void i365_set(u_short sock, u_short reg, u_char data)unsigned long flags;spin_lock_irqsave (&bus_lock,flags); { -kio_addr_t port = socket[sock].ioaddr; +unsigned int port = socket[sock].ioaddr;u_char val =I365_REG (socket[sock].psock, reg);outb (val, port);outb (data, port+1 );spin_unlock_irqrestore (&bus_lock,flags);
@@ -588,7 +588,7 @@ static int to_cycles(int ns)/*====================================================================*/ -static int __init identify (kio_addr_t port,u_short sock) +static int __init identify (unsigned int port,u_short sock) {u_char val;int type =-1 ;
@@ -659,7 +659,7 @@ static int __init identify(kio_addr_t port, u_short sock)static int __init is_alive (u_short sock) {u_char stat; -kio_addr_t start, stop; +unsigned int start, stop; stat =i365_get (sock,I365_STATUS ); start =i365_get_pair (sock,I365_IO (0 )+I365_W_START );
@@ -678,7 +678,7 @@ static int __init is_alive(u_short sock)/*====================================================================*/ -static void __init add_socket (kio_addr_t port,int psock,int type) +static void __init add_socket (unsigned int port,int psock,int type) { socket[sockets].ioaddr = port; socket[sockets].psock = psock;
@@ -772,7 +772,7 @@ static struct pnp_dev *i82365_pnpdev;static void __init isa_probe (void ) {int i, j, sock, k, ns, id; -kio_addr_t port; +unsigned int port;#ifdef CONFIG_PNP struct isapnp_device_id *devid;struct pnp_dev *dev;
drivers/pcmcia/m32r_cfc.c +4 -3
@@ -58,7 +58,7 @@ typedef struct pcc_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_long mapaddr;u_long base;/* PCC register base */ u_char cs_irq1, cs_irq2, intr;
@@ -298,7 +298,8 @@ static int __init is_alive(u_short sock)return 0 ; } -static void add_pcc_socket (ulong base,int irq,ulong mapaddr,kio_addr_t ioaddr) +static void add_pcc_socket (ulong base,int irq,ulong mapaddr, +unsigned int ioaddr) {pcc_socket_t *t = &socket[pcc_sockets];
@@ -738,7 +739,7 @@ static int __init init_m32r_pcc(void)#else /* CONFIG_PLAT_USRV */ {ulong base, mapaddr; -kio_addr_t ioaddr; +unsigned int ioaddr;for (i =0 ; i <M32R_MAX_PCC ; i++) { base = (ulong )PLD_CFRSTCR ;
drivers/pcmcia/m32r_pcc.c +3 -2
@@ -65,7 +65,7 @@ typedef struct pcc_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_long mapaddr;u_long base;/* PCC register base */ u_char cs_irq, intr;
@@ -310,7 +310,8 @@ static int __init is_alive(u_short sock)return 0 ; } -static void add_pcc_socket (ulong base,int irq,ulong mapaddr,kio_addr_t ioaddr) +static void add_pcc_socket (ulong base,int irq,ulong mapaddr, +unsigned int ioaddr) {pcc_socket_t *t = &socket[pcc_sockets];
drivers/pcmcia/rsrc_nonstatic.c +3 -2
@@ -186,11 +186,12 @@ static int sub_interval(struct resource_map *map, u_long base, u_long num)======================================================================*/ #ifdef CONFIG_PCMCIA_PROBE -static void do_io_probe (struct pcmcia_socket *s,kio_addr_t base,kio_addr_t num) +static void do_io_probe (struct pcmcia_socket *s,unsigned int base, +unsigned int num) {struct resource *res;struct socket_data *s_data = s->resource_data; -kio_addr_t i, j, bad; +unsigned int i, j, bad;int any;u_char *b, hole, most;
drivers/serial/serial_cs.c +3 -3
@@ -389,7 +389,7 @@ static void serial_detach(struct pcmcia_device *link)/*====================================================================*/ static int setup_serial (struct pcmcia_device *handle,struct serial_info * info, -kio_addr_t iobase,int irq) +unsigned int iobase,int irq) {struct uart_port port;int line;
@@ -456,7 +456,7 @@ next_tuple(struct pcmcia_device *handle, tuple_t * tuple, cisparse_t * parse)static int simple_config (struct pcmcia_device *link) { -static const kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static const unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };static const int size_table[2 ] = {8 ,16 };struct serial_info *info = link->priv;struct serial_cfg_mem *cfg_mem;
@@ -480,7 +480,7 @@ static int simple_config(struct pcmcia_device *link)/* If the card is already configured, look up the port and irq */ i =pcmcia_get_configuration_info (link, &config);if ((i ==CS_SUCCESS ) && (config.Attributes &CONF_VALID_CLIENT )) { -kio_addr_t port =0 ; +unsigned int port =0 ;if ((config.BasePort2 !=0 ) && (config.NumPorts2 ==8 )) { port = config.BasePort2; info->slave =1 ;
include/pcmcia/cs_types.h +0 -1
@@ -27,7 +27,6 @@ typedef u_int ioaddr_t;#else typedef u_short ioaddr_t ;#endif -typedef unsigned long kio_addr_t ;typedef u_short socket_t ;typedef u_int event_t ;
include/pcmcia/ss.h +3 -3
@@ -92,7 +92,7 @@ typedef struct pccard_io_map {u_char map;u_char flags;u_short speed; -kio_addr_t start, stop; +u_int start, stop; } pccard_io_map; typedef struct pccard_mem_map {
@@ -155,7 +155,7 @@ extern struct pccard_resource_ops pccard_iodyn_ops;struct pcmcia_socket ;typedef struct io_window_t { -kio_addr_t InUse, Config; +u_int InUse, Config;struct resource *res; }io_window_t ;
@@ -208,7 +208,7 @@ struct pcmcia_socket {u_int features;u_int irq_mask;u_int map_size; -kio_addr_t io_offset; +u_int io_offset;u_char pci_irq;struct pci_dev * cb_dev;
PATCH v2 1/1 pcmcia: Remove replace kio_addr_t with unsigned int everywhere
pcmcia: Remove replace kio_addr_t with unsigned int everywhere
Remove kio_addr_t, and replace it with unsigned int. No known architecture needs more than 32 bits for IO addresses and ports and having a separate type for it is just messy.
This goes on top of the patch switching the io_req_t members from ioaddr_t to unsigned int.
---
Quoted 2 lines · Olof Johansson
This goes on top of the patch switching the
io_req_tmembers fromioaddr_tto unsigned int.
Crap, I had an old version of that patch as base in my local tree when I did these edits. Here's a proper version.
-Olof
Documentation/pcmcia/driver-changes.txt +2 -2
@@ -33,8 +33,8 @@ This file details changes in 2.6 which affect PCMCIA card driver authors: and can be used (e.g. for SET_NETDEV_DEV) by using handle_to_dev(client_handle_t * handle). -* Convert internal I/O port addresses to unsigned long (as of 2.6.11) - ioaddr_t should be replaced by kio_addr_t in PCMCIA card drivers. +* Convert internal I/O port addresses to unsigned int (as of 2.6.11) + ioaddr_t should be replaced by unsigned int in PCMCIA card drivers. * irq_mask and irq_list parameters (as of 2.6.11) The irq_mask and irq_list parameters should no longer be used in
drivers/bluetooth/bt3c_cs.c +1 -1
@@ -704,7 +704,7 @@ static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *static int bt3c_config (struct pcmcia_device *link) { -static kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };bt3c_info_t *info = link->priv;tuple_t tuple;u_short buf[256 ];
drivers/bluetooth/btuart_cs.c +1 -1
@@ -634,7 +634,7 @@ static int next_tuple(struct pcmcia_device *handle, tuple_t *tuple, cisparse_t *static int btuart_config (struct pcmcia_device *link) { -static kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };btuart_info_t *info = link->priv;tuple_t tuple;u_short buf[256 ];
drivers/net/pcmcia/3c574_cs.c +25 -24
164 lines not on this page · raw message
drivers/net/pcmcia/3c589_cs.c +15 -15
@@ -145,7 +145,7 @@ DRV_NAME ".c " DRV_VERSION " 2001/10/13 00:08:50 (David Hinds)";static int tc589_config (struct pcmcia_device *link);static void tc589_release (struct pcmcia_device *link); -static u16 read_eeprom (kio_addr_t ioaddr,int index); +static u16 read_eeprom (unsigned int ioaddr,int index);static void tc589_reset (struct net_device *dev);static void media_check (unsigned long arg);static int el3_config (struct net_device *dev,struct ifmap *map);
@@ -253,7 +253,7 @@ static int tc589_config(struct pcmcia_device *link)tuple_t tuple;u16 buf[32 ], *phys_addr;int last_fn, last_ret, i, j, multi =0 , fifo; -kio_addr_t ioaddr; +unsigned int ioaddr;char *ram_split[] = {"5:3" ,"3:1" ,"1:1" ,"3:5" };DECLARE_MAC_BUF (mac);
@@ -402,7 +402,7 @@ static void tc589_wait_for_completion(struct net_device *dev, int cmd)Read a word from the EEPROM using the regular EEPROM access register. Assume that we are in register window zero. */ -static u16 read_eeprom (kio_addr_t ioaddr,int index) +static u16 read_eeprom (unsigned int ioaddr,int index) {int i;outw (EEPROM_READ + index, ioaddr +10 );
@@ -420,7 +420,7 @@ static u16 read_eeprom(kio_addr_t ioaddr, int index)static void tc589_set_xcvr (struct net_device *dev,int if_port) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;EL3WINDOW (0 );switch (if_port) {
@@ -442,7 +442,7 @@ static void tc589_set_xcvr(struct net_device *dev, int if_port)static void dump_status (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;EL3WINDOW (1 ); printk(KERN_INFO " irq status %04x, rx status %04x, tx status " "%02x tx free %04x\n", inw(ioaddr+EL3_STATUS),
@@ -458,7 +458,7 @@ static void dump_status(struct net_device *dev)/* Reset and restore all of the 3c589 registers. */ static void tc589_reset (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;EL3WINDOW (0 );
@@ -566,7 +566,7 @@ static int el3_open(struct net_device *dev)static void el3_tx_timeout (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;printk (KERN_WARNING "%s: Transmit timed out!\n" , dev->name);dump_status (dev);
@@ -581,7 +581,7 @@ static void el3_tx_timeout(struct net_device *dev)static void pop_tx_status (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;/* Clear the Tx status stack. */
@@ -603,7 +603,7 @@ static void pop_tx_status(struct net_device *dev)static int el3_start_xmit (struct sk_buff *skb,struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;struct el3_private *priv =netdev_priv (dev);unsigned long flags;
@@ -640,7 +640,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) {struct net_device *dev = (struct net_device *) dev_id;struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;__u16 status;int i =0 , handled =1 ;
@@ -726,7 +726,7 @@ static void media_check(unsigned long arg) {struct net_device *dev = (struct net_device *)(arg);struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u16 media, errs;unsigned long flags;
@@ -827,7 +827,7 @@ static struct net_device_stats *el3_get_stats(struct net_device *dev)static void update_stats (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (2 ,"%s: updating the statistics.\n" , dev->name);/* Turn off statistics updates while reading. */
@@ -854,7 +854,7 @@ static void update_stats(struct net_device *dev)static int el3_rx (struct net_device *dev) {struct el3_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int worklimit =32 ;short rx_status;
@@ -908,7 +908,7 @@ static void set_multicast_list(struct net_device *dev) {struct el3_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u16 opts = SetRxFilter | RxStation | RxBroadcast;if (!pcmcia_dev_present (link))return ;
@@ -923,7 +923,7 @@ static int el3_close(struct net_device *dev) {struct el3_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (1 ,"%s: shutting down ethercard.\n" , dev->name);
drivers/net/pcmcia/axnet_cs.c +13 -13
@@ -96,8 +96,8 @@ static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);static void ei_watchdog (u_long arg);static void axnet_reset_8390 (struct net_device *dev); -static int mdio_read (kio_addr_t addr,int phy_id,int loc); -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value); +static int mdio_read (unsigned int addr,int phy_id,int loc); +static void mdio_write (unsigned int addr,int phy_id,int loc,int value);static void get_8390_hdr (struct net_device *,struct e8390_pkt_hdr *,int );
@@ -203,7 +203,7 @@ static void axnet_detach(struct pcmcia_device *link)static int get_prom (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i, j;/* This is based on drivers/net/ne.c */
@@ -473,7 +473,7 @@ static int axnet_resume(struct pcmcia_device *link)#define MDIO_MASK 0x0f#define MDIO_ENB_IN 0x02 -static void mdio_sync (kio_addr_t addr) +static void mdio_sync (unsigned int addr) {int bits;for (bits =0 ; bits <32 ; bits++) {
@@ -482,7 +482,7 @@ static void mdio_sync(kio_addr_t addr) } } -static int mdio_read (kio_addr_t addr,int phy_id,int loc) +static int mdio_read (unsigned int addr,int phy_id,int loc) {u_int cmd = (0xf6 <<10 )|(phy_id<<5 )|loc;int i, retval =0 ;
@@ -501,7 +501,7 @@ static int mdio_read(kio_addr_t addr, int phy_id, int loc)return (retval>>1 ) &0xffff ; } -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value) +static void mdio_write (unsigned int addr,int phy_id,int loc,int value) {u_int cmd = (0x05 <<28 )|(phy_id<<23 )|(loc<<18 )|(1 <<17 )|value;int i;
@@ -575,7 +575,7 @@ static int axnet_close(struct net_device *dev)static void axnet_reset_8390 (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int i; ei_status.txing = ei_status.dmaing =0 ;
@@ -610,8 +610,8 @@ static void ei_watchdog(u_long arg) {struct net_device *dev = (struct net_device *)(arg);axnet_dev_t *info =PRIV (dev); -kio_addr_t nic_base = dev->base_addr; -kio_addr_t mii_addr = nic_base +AXNET_MII_EEP ; +unsigned int nic_base = dev->base_addr; +unsigned int mii_addr = nic_base +AXNET_MII_EEP ;u_short link;if (!netif_device_present (dev)) goto reschedule;
@@ -681,7 +681,7 @@ static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {axnet_dev_t *info =PRIV (dev);u16 *data = (u16 *)&rq->ifr_ifru; -kio_addr_t mii_addr = dev->base_addr +AXNET_MII_EEP ; +unsigned int mii_addr = dev->base_addr +AXNET_MII_EEP ;switch (cmd) {case SIOCGMIIPHY : data[0 ] = info->phy_id;
@@ -703,7 +703,7 @@ static void get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;outb_p (0 , nic_base +EN0_RSARLO );/* On page boundary */ outb_p (ring_page, nic_base +EN0_RSARHI );
@@ -721,7 +721,7 @@ static void get_8390_hdr(struct net_device *dev,static void block_input (struct net_device *dev,int count,struct sk_buff *skb,int ring_offset) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int xfer_count = count;char *buf = skb->data;
@@ -744,7 +744,7 @@ static void block_input(struct net_device *dev, int count,static void block_output (struct net_device *dev,int count,const u_char *buf,const int start_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;#ifdef PCMCIA_DEBUG if (ei_debug >4 )
drivers/net/pcmcia/fmvj18x_cs.c +12 -11
@@ -298,7 +298,8 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)static int mfc_try_io_port (struct pcmcia_device *link) {int i, ret; -static const kio_addr_t serial_base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static const unsigned int serial_base[5 ] = + {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };for (i =0 ; i <5 ; i++) { link->io.BasePort2 = serial_base[i];
@@ -316,7 +317,7 @@ static int mfc_try_io_port(struct pcmcia_device *link)static int ungermann_try_io_port (struct pcmcia_device *link) {int ret; -kio_addr_t ioaddr; +unsigned int ioaddr;/* Ungermann-Bass Access/CARD accepts 0x300,0x320,0x340,0x360 0x380,0x3c0 only for ioport.
@@ -342,7 +343,7 @@ static int fmvj18x_config(struct pcmcia_device *link)cisparse_t parse;u_short buf[32 ];int i, last_fn =0 , last_ret =0 , ret; -kio_addr_t ioaddr; +unsigned int ioaddr;cardtype_t cardtype;char *card_name ="unknown" ;u_char *node_id;
@@ -610,7 +611,7 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link)u_char __iomem *base;int i, j;struct net_device *dev = link->priv; -kio_addr_t ioaddr; +unsigned int ioaddr;/* Allocate a small memory window */ req.Attributes =WIN_DATA_WIDTH_8 |WIN_MEMORY_TYPE_AM |WIN_ENABLE ;
@@ -735,7 +736,7 @@ static irqreturn_t fjn_interrupt(int irq, void *dev_id) {struct net_device *dev = dev_id;local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;unsigned short tx_stat, rx_stat;if (lp ==NULL ) {
@@ -794,7 +795,7 @@ static irqreturn_t fjn_interrupt(int irq, void *dev_id)static void fjn_tx_timeout (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr; printk(KERN_NOTICE "%s: transmit timed out with status %04x, %s?\n", dev->name, htons(inw(ioaddr + TX_STATUS)),
@@ -824,7 +825,7 @@ static void fjn_tx_timeout(struct net_device *dev)static int fjn_start_xmit (struct sk_buff *skb,struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;short length = skb->len;if (length <ETH_ZLEN )
@@ -897,7 +898,7 @@ static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev)static void fjn_reset (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i;DEBUG (4 ,"fjn_reset(%s) called.\n" ,dev->name);
@@ -976,7 +977,7 @@ static void fjn_reset(struct net_device *dev)static void fjn_rx (struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int boguscount =10 ;/* 5 -> 10: by agy 19940922 */ DEBUG(4, "%s: in rx_packet(), rx_status %02x.\n",
@@ -1130,7 +1131,7 @@ static int fjn_close(struct net_device *dev) {struct local_info_t *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;DEBUG (4 ,"fjn_close('%s').\n" , dev->name);
@@ -1173,7 +1174,7 @@ static struct net_device_stats *fjn_get_stats(struct net_device *dev)static void set_rx_mode (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u_char mc_filter[8 ];/* Multicast hash filter */ u_long flags;int i;
drivers/net/pcmcia/nmclan_cs.c +12 -12
@@ -518,7 +518,7 @@ mace_readassuming that during normal operation, the MACE is always in bank 0. ---------------------------------------------------------------------------- */ -static int mace_read (mace_private *lp,kio_addr_t ioaddr,int reg) +static int mace_read (mace_private *lp,unsigned int ioaddr,int reg) {int data =0xFF ;unsigned long flags;
@@ -545,7 +545,7 @@ mace_writeare assuming that during normal operation, the MACE is always in bank 0. ---------------------------------------------------------------------------- */ -static void mace_write (mace_private *lp,kio_addr_t ioaddr,int reg,int data) +static void mace_write (mace_private *lp,unsigned int ioaddr,int reg,int data) {unsigned long flags;
@@ -567,7 +567,7 @@ static void mace_write(mace_private *lp, kio_addr_t ioaddr, int reg, int data)mace_init Resets the MACE chip. ---------------------------------------------------------------------------- */ -static int mace_init (mace_private *lp,kio_addr_t ioaddr,char *enet_addr) +static int mace_init (mace_private *lp,unsigned int ioaddr,char *enet_addr) {int i;int ct =0 ;
@@ -657,7 +657,7 @@ static int nmclan_config(struct pcmcia_device *link)tuple_t tuple;u_char buf[64 ];int i, last_ret, last_fn; -kio_addr_t ioaddr; +unsigned int ioaddr;DECLARE_MAC_BUF (mac);DEBUG (0 ,"nmclan_config(0x%p)\n" , link);
@@ -839,7 +839,7 @@ mace_open---------------------------------------------------------------------------- */ static int mace_open (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev;
@@ -862,7 +862,7 @@ mace_close---------------------------------------------------------------------------- */ static int mace_close (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev);struct pcmcia_device *link = lp->p_dev;
@@ -935,7 +935,7 @@ static void mace_tx_timeout(struct net_device *dev)static int mace_start_xmit (struct sk_buff *skb,struct net_device *dev) {mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;netif_stop_queue (dev);
@@ -996,7 +996,7 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id) {struct net_device *dev = (struct net_device *) dev_id;mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr; +unsigned int ioaddr;int status;int IntrCnt =MACE_MAX_IR_ITERATIONS ;
@@ -1140,7 +1140,7 @@ mace_rxstatic int mace_rx (struct net_device *dev,unsigned char RxCnt) {mace_private *lp =netdev_priv (dev); -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;unsigned char rx_framecnt;unsigned short rx_status;
@@ -1302,7 +1302,7 @@ update_statscard's SRAM fast enough. If this happens, something is seriously wrong with the hardware. ---------------------------------------------------------------------------- */ -static void update_stats (kio_addr_t ioaddr,struct net_device *dev) +static void update_stats (unsigned int ioaddr,struct net_device *dev) {mace_private *lp =netdev_priv (dev);
@@ -1448,7 +1448,7 @@ static void restore_multicast_list(struct net_device *dev)mace_private *lp =netdev_priv (dev);int num_addrs = lp->multicast_num_addrs;int *ladrf = lp->multicast_ladrf; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i; DEBUG(2, "%s: restoring Rx mode to %d addresses.\n",
@@ -1540,7 +1540,7 @@ static void set_multicast_list(struct net_device *dev)static void restore_multicast_list (struct net_device *dev) { -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;mace_private *lp =netdev_priv (dev); DEBUG(2, "%s: restoring Rx mode to %d addresses.\n", dev->name,
drivers/net/pcmcia/pcnet_cs.c +18 -18
@@ -348,7 +348,7 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)static hw_info_t *get_prom (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;u_char prom[32 ];int i, j;
@@ -424,7 +424,7 @@ static hw_info_t *get_dl10019(struct pcmcia_device *link)static hw_info_t *get_ax88190 (struct pcmcia_device *link) {struct net_device *dev = link->priv; -kio_addr_t ioaddr = dev->base_addr; +unsigned int ioaddr = dev->base_addr;int i, j;/* Not much of a test, but the alternatives are messy */
@@ -755,7 +755,7 @@ static int pcnet_resume(struct pcmcia_device *link)#define MDIO_DATA_READ 0x10#define MDIO_MASK 0x0f -static void mdio_sync (kio_addr_t addr) +static void mdio_sync (unsigned int addr) {int bits, mask =inb (addr) &MDIO_MASK ;for (bits =0 ; bits <32 ; bits++) {
@@ -764,7 +764,7 @@ static void mdio_sync(kio_addr_t addr) } } -static int mdio_read (kio_addr_t addr,int phy_id,int loc) +static int mdio_read (unsigned int addr,int phy_id,int loc) {u_int cmd = (0x06 <<10 )|(phy_id<<5 )|loc;int i, retval =0 , mask =inb (addr) &MDIO_MASK ;
@@ -783,7 +783,7 @@ static int mdio_read(kio_addr_t addr, int phy_id, int loc)return (retval>>1 ) &0xffff ; } -static void mdio_write (kio_addr_t addr,int phy_id,int loc,int value) +static void mdio_write (unsigned int addr,int phy_id,int loc,int value) {u_int cmd = (0x05 <<28 )|(phy_id<<23 )|(loc<<18 )|(1 <<17 )|value;int i, mask =inb (addr) &MDIO_MASK ;
@@ -817,10 +817,10 @@ static void mdio_write(kio_addr_t addr, int phy_id, int loc, int value)#define DL19FDUPLX 0x0400/* DL10019 Full duplex mode */ -static int read_eeprom (kio_addr_t ioaddr,int location) +static int read_eeprom (unsigned int ioaddr,int location) {int i, retval =0 ; -kio_addr_t ee_addr = ioaddr +DLINK_EEPROM ; +unsigned int ee_addr = ioaddr +DLINK_EEPROM ;int read_cmd = location | (EE_READ_CMD <<8 );outb (0 , ee_addr);
@@ -851,10 +851,10 @@ static int read_eeprom(kio_addr_t ioaddr, int location)In ASIC mode, EE_ADOT is used to output the data to the ASIC. */ -static void write_asic (kio_addr_t ioaddr,int location,short asic_data) +static void write_asic (unsigned int ioaddr,int location,short asic_data) {int i; -kio_addr_t ee_addr = ioaddr +DLINK_EEPROM ; +unsigned int ee_addr = ioaddr +DLINK_EEPROM ;short dataval;int read_cmd = location | (EE_READ_CMD <<8 );
@@ -896,7 +896,7 @@ static void write_asic(kio_addr_t ioaddr, int location, short asic_data)static void set_misc_reg (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;pcnet_dev_t *info =PRIV (dev);u_char tmp;
@@ -935,7 +935,7 @@ static void set_misc_reg(struct net_device *dev)static void mii_phy_probe (struct net_device *dev) {pcnet_dev_t *info =PRIV (dev); -kio_addr_t mii_addr = dev->base_addr +DLINK_GPIO ; +unsigned int mii_addr = dev->base_addr +DLINK_GPIO ;int i;u_int tmp, phyid;
@@ -1013,7 +1013,7 @@ static int pcnet_close(struct net_device *dev)static void pcnet_reset_8390 (struct net_device *dev) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int i; ei_status.txing = ei_status.dmaing =0 ;
@@ -1073,8 +1073,8 @@ static void ei_watchdog(u_long arg) {struct net_device *dev = (struct net_device *)arg;pcnet_dev_t *info =PRIV (dev); -kio_addr_t nic_base = dev->base_addr; -kio_addr_t mii_addr = nic_base +DLINK_GPIO ; +unsigned int nic_base = dev->base_addr; +unsigned int mii_addr = nic_base +DLINK_GPIO ;u_short link;if (!netif_device_present (dev)) goto reschedule;
@@ -1176,7 +1176,7 @@ static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {pcnet_dev_t *info =PRIV (dev);u16 *data = (u16 *)&rq->ifr_ifru; -kio_addr_t mii_addr = dev->base_addr +DLINK_GPIO ; +unsigned int mii_addr = dev->base_addr +DLINK_GPIO ;switch (cmd) {case SIOCGMIIPHY : data[0 ] = info->phy_id;
@@ -1198,7 +1198,7 @@ static void dma_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;if (ei_status.dmaing) { printk(KERN_NOTICE "%s: DMAing conflict in dma_block_input."
@@ -1229,7 +1229,7 @@ static void dma_get_8390_hdr(struct net_device *dev,static void dma_block_input (struct net_device *dev,int count,struct sk_buff *skb,int ring_offset) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;int xfer_count = count;char *buf = skb->data;
@@ -1284,7 +1284,7 @@ static void dma_block_input(struct net_device *dev, int count,static void dma_block_output (struct net_device *dev,int count,const u_char *buf,const int start_page) { -kio_addr_t nic_base = dev->base_addr; +unsigned int nic_base = dev->base_addr;pcnet_dev_t *info =PRIV (dev);#ifdef PCMCIA_DEBUG int retries =0 ;
drivers/net/pcmcia/smc91c92_cs.c +31 -31
242 lines not on this page · raw message
drivers/net/pcmcia/xirc2ps_cs.c +26 -25
171 lines not on this page · raw message
drivers/net/wireless/netwave_cs.c +12 -12
@@ -195,7 +195,7 @@ static int netwave_pcmcia_config(struct pcmcia_device *arg); /* Runs after cardstatic void netwave_detach (struct pcmcia_device *p_dev);/* Destroy instance */ /* Hardware configuration */ -static void netwave_doreset (kio_addr_t iobase,u_char __iomem *ramBase); +static void netwave_doreset (unsigned int iobase,u_char __iomem *ramBase);static void netwave_reset (struct net_device *dev);/* Misc device stuff */
@@ -309,7 +309,7 @@ static inline void wait_WOC(unsigned int iobase) }static void netwave_snapshot (netwave_private *priv,u_char __iomem *ramBase, -kio_addr_t iobase) { +unsigned int iobase) {u_short resultBuffer;/* if time since last snapshot is > 1 sec. (100 jiffies?) then take
@@ -340,7 +340,7 @@ static void netwave_snapshot(netwave_private *priv, u_char __iomem *ramBase,static struct iw_statistics *netwave_get_wireless_stats (struct net_device *dev) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;struct iw_statistics * wstats;
@@ -471,7 +471,7 @@ static int netwave_set_nwid(struct net_device *dev, char *extra) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -518,7 +518,7 @@ static int netwave_set_scramble(struct net_device *dev, char *key) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -621,7 +621,7 @@ static int netwave_get_snap(struct net_device *dev, char *extra) {unsigned long flags; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase;
@@ -874,7 +874,7 @@ static int netwave_resume(struct pcmcia_device *link)* * Proper hardware reset of the card. */ -static void netwave_doreset (kio_addr_t ioBase,u_char __iomem *ramBase) +static void netwave_doreset (unsigned int ioBase,u_char __iomem *ramBase) {/* Reset card */ wait_WOC (ioBase);
@@ -892,7 +892,7 @@ static void netwave_reset(struct net_device *dev) {/* u_char state; */ netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;DEBUG (0 ,"netwave_reset: Done with hardware reset\n" );
@@ -973,7 +973,7 @@ static int netwave_hw_xmit(unsigned char* data, int len,netwave_private *priv =netdev_priv (dev);u_char __iomem * ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;/* Disable interrupts & save flags */ spin_lock_irqsave (&priv->spinlock, flags);
@@ -1065,7 +1065,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {*/ static irqreturn_t netwave_interrupt (int irq,void * dev_id) { -kio_addr_t iobase; +unsigned int iobase;u_char __iomem *ramBase;struct net_device *dev = (struct net_device *)dev_id;struct netwave_private *priv =netdev_priv (dev);
@@ -1235,7 +1235,7 @@ static int netwave_rx(struct net_device *dev) {netwave_private *priv =netdev_priv (dev);u_char __iomem *ramBase = priv->ramBase; -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;u_char rxStatus;struct sk_buff *skb =NULL ; unsigned int curBuffer,
@@ -1388,7 +1388,7 @@ module_exit(exit_netwave_cs);*/ static void set_multicast_list (struct net_device *dev) { -kio_addr_t iobase = dev->base_addr; +unsigned int iobase = dev->base_addr;netwave_private *priv =netdev_priv (dev);u_char __iomem * ramBase = priv->ramBase;u_char rcvMode =0 ;
drivers/net/wireless/wavelan_cs.c +28 -28
224 lines not on this page · raw message
drivers/pcmcia/i82092.c +1 -1
@@ -82,7 +82,7 @@ struct socket_info {1 = empty socket, 2 = card but not initialized, 3 = operational card */ -kio_addr_t io_base;/* base io address of the socket */ +unsigned int io_base;/* base io address of the socket */ struct pcmcia_socket socket;struct pci_dev *dev;/* The PCI device for the socket */
drivers/pcmcia/i82365.c +7 -7
@@ -164,7 +164,7 @@ struct i82365_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_short psock;u_char cs_irq, intr;union {
@@ -238,7 +238,7 @@ static u_char i365_get(u_short sock, u_short reg)unsigned long flags;spin_lock_irqsave (&bus_lock,flags); { -kio_addr_t port = socket[sock].ioaddr; +unsigned int port = socket[sock].ioaddr;u_char val; reg =I365_REG (socket[sock].psock, reg);outb (reg, port); val =inb (port+1 );
@@ -252,7 +252,7 @@ static void i365_set(u_short sock, u_short reg, u_char data)unsigned long flags;spin_lock_irqsave (&bus_lock,flags); { -kio_addr_t port = socket[sock].ioaddr; +unsigned int port = socket[sock].ioaddr;u_char val =I365_REG (socket[sock].psock, reg);outb (val, port);outb (data, port+1 );spin_unlock_irqrestore (&bus_lock,flags);
@@ -588,7 +588,7 @@ static int to_cycles(int ns)/*====================================================================*/ -static int __init identify (kio_addr_t port,u_short sock) +static int __init identify (unsigned int port,u_short sock) {u_char val;int type =-1 ;
@@ -659,7 +659,7 @@ static int __init identify(kio_addr_t port, u_short sock)static int __init is_alive (u_short sock) {u_char stat; -kio_addr_t start, stop; +unsigned int start, stop; stat =i365_get (sock,I365_STATUS ); start =i365_get_pair (sock,I365_IO (0 )+I365_W_START );
@@ -678,7 +678,7 @@ static int __init is_alive(u_short sock)/*====================================================================*/ -static void __init add_socket (kio_addr_t port,int psock,int type) +static void __init add_socket (unsigned int port,int psock,int type) { socket[sockets].ioaddr = port; socket[sockets].psock = psock;
@@ -772,7 +772,7 @@ static struct pnp_dev *i82365_pnpdev;static void __init isa_probe (void ) {int i, j, sock, k, ns, id; -kio_addr_t port; +unsigned int port;#ifdef CONFIG_PNP struct isapnp_device_id *devid;struct pnp_dev *dev;
drivers/pcmcia/m32r_cfc.c +4 -3
@@ -58,7 +58,7 @@ typedef struct pcc_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_long mapaddr;u_long base;/* PCC register base */ u_char cs_irq1, cs_irq2, intr;
@@ -298,7 +298,8 @@ static int __init is_alive(u_short sock)return 0 ; } -static void add_pcc_socket (ulong base,int irq,ulong mapaddr,kio_addr_t ioaddr) +static void add_pcc_socket (ulong base,int irq,ulong mapaddr, +unsigned int ioaddr) {pcc_socket_t *t = &socket[pcc_sockets];
@@ -738,7 +739,7 @@ static int __init init_m32r_pcc(void)#else /* CONFIG_PLAT_USRV */ {ulong base, mapaddr; -kio_addr_t ioaddr; +unsigned int ioaddr;for (i =0 ; i <M32R_MAX_PCC ; i++) { base = (ulong )PLD_CFRSTCR ;
drivers/pcmcia/m32r_pcc.c +3 -2
@@ -65,7 +65,7 @@ typedef struct pcc_socket {u_short type, flags;struct pcmcia_socket socket;unsigned int number; -kio_addr_t ioaddr; +unsigned int ioaddr;u_long mapaddr;u_long base;/* PCC register base */ u_char cs_irq, intr;
@@ -310,7 +310,8 @@ static int __init is_alive(u_short sock)return 0 ; } -static void add_pcc_socket (ulong base,int irq,ulong mapaddr,kio_addr_t ioaddr) +static void add_pcc_socket (ulong base,int irq,ulong mapaddr, +unsigned int ioaddr) {pcc_socket_t *t = &socket[pcc_sockets];
drivers/pcmcia/rsrc_nonstatic.c +3 -2
@@ -186,11 +186,12 @@ static int sub_interval(struct resource_map *map, u_long base, u_long num)======================================================================*/ #ifdef CONFIG_PCMCIA_PROBE -static void do_io_probe (struct pcmcia_socket *s,kio_addr_t base,kio_addr_t num) +static void do_io_probe (struct pcmcia_socket *s,unsigned int base, +unsigned int num) {struct resource *res;struct socket_data *s_data = s->resource_data; -kio_addr_t i, j, bad; +unsigned int i, j, bad;int any;u_char *b, hole, most;
drivers/serial/serial_cs.c +3 -3
@@ -389,7 +389,7 @@ static void serial_detach(struct pcmcia_device *link)/*====================================================================*/ static int setup_serial (struct pcmcia_device *handle,struct serial_info * info, -kio_addr_t iobase,int irq) +unsigned int iobase,int irq) {struct uart_port port;int line;
@@ -456,7 +456,7 @@ next_tuple(struct pcmcia_device *handle, tuple_t * tuple, cisparse_t * parse)static int simple_config (struct pcmcia_device *link) { -static const kio_addr_t base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 }; +static const unsigned int base[5 ] = {0x3f8 ,0x2f8 ,0x3e8 ,0x2e8 ,0x0 };static const int size_table[2 ] = {8 ,16 };struct serial_info *info = link->priv;struct serial_cfg_mem *cfg_mem;
@@ -480,7 +480,7 @@ static int simple_config(struct pcmcia_device *link)/* If the card is already configured, look up the port and irq */ i =pcmcia_get_configuration_info (link, &config);if ((i ==CS_SUCCESS ) && (config.Attributes &CONF_VALID_CLIENT )) { -kio_addr_t port =0 ; +unsigned int port =0 ;if ((config.BasePort2 !=0 ) && (config.NumPorts2 ==8 )) { port = config.BasePort2; info->slave =1 ;
include/pcmcia/cs_types.h +0 -1
@@ -27,7 +27,6 @@ typedef u_int ioaddr_t;#else typedef u_short ioaddr_t ;#endif -typedef unsigned long kio_addr_t ;typedef u_short socket_t ;typedef u_int event_t ;
include/pcmcia/ss.h +3 -3
@@ -92,7 +92,7 @@ typedef struct pccard_io_map {u_char map;u_char flags;u_short speed; -kio_addr_t start, stop; +u_int start, stop; } pccard_io_map; typedef struct pccard_mem_map {
@@ -155,7 +155,7 @@ extern struct pccard_resource_ops pccard_iodyn_ops;struct pcmcia_socket ;typedef struct io_window_t { -kio_addr_t InUse, Config; +u_int InUse, Config;struct resource *res; }io_window_t ;
@@ -208,7 +208,7 @@ struct pcmcia_socket {u_int features;u_int irq_mask;u_int map_size; -kio_addr_t io_offset; +u_int io_offset;u_char pci_irq;struct pci_dev * cb_dev;
Re: [PATCH v2] pcmcia: Remove replace kio_addr_t with unsigned int everywhere
Hi Olof,
diffstat output is very useful - especially for patches like this that touch lots of files. It makes it easier for potential reviewers to see if they should be potential reviewers. :-)
Signature · 3 lines
Cheers, Stephen Rothwell [email protected] http://www.canb.auug.org.au/~sfr/
Re: [PATCH v2] pcmcia: Remove replace kio_addr_t with unsigned int everywhere
Quoted 5 lines · Stephen Rothwell
Hi Olof,
diffstat output is very useful - especially for patches like this that touch lots of files. It makes it easier for potential reviewers to see if they should be potential reviewers. :-)
Hi,
Good point. I'll include it next time if I end up re-posting it. I hope I won't have to. :-)
This is the diffstat from the posted patch:
Documentation/pcmcia/driver-changes.txt | 4 +- drivers/bluetooth/bt3c_cs.c | 2 - drivers/bluetooth/btuart_cs.c | 2 - drivers/net/pcmcia/3c574_cs.c | 49 ++++++++++++------------- drivers/net/pcmcia/3c589_cs.c | 30 +++++++-------- drivers/net/pcmcia/axnet_cs.c | 26 ++++++------- drivers/net/pcmcia/fmvj18x_cs.c | 23 ++++++----- drivers/net/pcmcia/nmclan_cs.c | 24 ++++++------ drivers/net/pcmcia/pcnet_cs.c | 36 +++++++++--------- drivers/net/pcmcia/smc91c92_cs.c | 62 ++++++++++++++++---------------- drivers/net/pcmcia/xirc2ps_cs.c | 51 +++++++++++++------------- drivers/net/wireless/netwave_cs.c | 24 ++++++------ drivers/net/wireless/wavelan_cs.c | 56 ++++++++++++++-------------- drivers/pcmcia/i82092.c | 2 - drivers/pcmcia/i82365.c | 14 +++---- drivers/pcmcia/m32r_cfc.c | 7 ++- drivers/pcmcia/m32r_pcc.c | 5 +- drivers/pcmcia/rsrc_nonstatic.c | 5 +- drivers/serial/serial_cs.c | 6 +-- include/pcmcia/cs_types.h | 1 include/pcmcia/ss.h | 6 +-- 21 files changed, 220 insertions(+), 215 deletions(-)
-Olof
Re: [PATCH v2] pcmcia: Remove replace kio_addr_t with unsigned int everywhere
In reply to Olof JohanssonHi,
It should be "unsigned long" instead of "unsigned int".
64bit architecture uses 64bit-Memory-mapped-IO.
Best Regards
Komuro
Quoted 26 lines
pcmcia: Remove replace
kio_addr_twith unsigned int everywhereRemove
kio_addr_t, and replace it with unsigned int. No known architecture needs more than 32 bits for IO addresses and ports and having a separate type for it is just messy.This goes on top of the patch switching the
io_req_tmembers fromioaddr_tto unsigned int.Signed-off-by Olof Johansson <[email protected]>---
Quoted 2 lines · Olof Johansson
This goes on top of the patch switching the
io_req_tmembers fromioaddr_tto unsigned int.Crap, I had an old version of that patch as base in my local tree when I did these edits. Here's a proper version.
-Olof
Quoted 9 lines · Matthew Wilcox
Quoted 8 lines · Alan Cox
Quoted 2 lines · On Fri, 21 Sep 2007 17:15:16 -0500 Olof Johansson <[email protected]> wrote:
Convert the
io_req_tmembers tokio_addr_t, to allow use on machines with more than 16 bits worth of IO ports (i.e. secondary busses on ppc64, etc).What about the formatting and field widths ?
Quoted 8 lines
Quoted 2 lines
ulong would probably be a lot saner than
kio_addr_tand yet more type obfuscation.I don't think anyone uses ioports > 32bit. Certainly i386 takes an int port as parameter to {in,out}[bwl] (and it really only uses 16-bits). parisc uses 24 bits. I don't know what the various ppcs do, but pci bars can only be 32-bit for ioports. So my opinion is that ioports should be uint, not ulong.
PPC would do just fine with 32-bit as well, which is what I wanted in the first place. I just went with the local coding standard of pcmcia and switched to kio_addr_t.
I suppose it's a janitorial todo item but with the maintainer MIA I don't want to mess around with it too much, since I can't really test much besides the PPC stuff I have.
As for the formatting/padding widths: Some platforms had ioaddr_t's that were 32 bit already, so it was already broken on those, and the only drawback is missing 0-padding. It'd look a bit silly to pad to 16 0:s anyway at the moment, so I think I'd prefer to keep it the way it is.
-Olof