Messages in this thread Patch in this message |  | | Date | Thu, 13 Sep 2001 16:21:51 -0700 | Subject | [IrDA patch] ir249_hw_name.diff | From | Jean Tourrilhes <> |
| |
ir249_hw_name.diff : ------------------ <Patch has been around for 6 months, I keep updating with new drivers> <Hard dependency on ir249_irda-usb_reorg.diff> o [FEATURE] Show net-device name in /proc/net/irda/irlap - Allow user to match /proc info with output of ifconfig o [FEATURE] Show hardware name and port in /proc/net/irda/irlap - Allow user to match /proc info to real IrDA dongle hw
diff -u -p linux/include/net/irda/irlap.j2.h linux/include/net/irda/irlap.h --- linux/include/net/irda/irlap.j2.h Thu Sep 13 14:23:48 2001 +++ linux/include/net/irda/irlap.h Thu Sep 13 14:28:01 2001 @@ -66,7 +66,9 @@ struct irlap_cb { irda_queue_t q; /* Must be first */ magic_t magic; + /* Device we are attached to */ struct net_device *netdev; + char hw_name[2*IFNAMSIZ + 1]; /* Connection state */ volatile IRLAP_STATE state; /* Current state */ @@ -163,7 +165,8 @@ extern hashbin_t *irlap; int irlap_init(void); void irlap_cleanup(void); -struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos); +struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos, + char * hw_name); void irlap_close(struct irlap_cb *self); void irlap_connect_request(struct irlap_cb *self, __u32 daddr, diff -u -p linux/net/irda/irlap.j2.c linux/net/irda/irlap.c --- linux/net/irda/irlap.j2.c Thu Sep 13 14:25:15 2001 +++ linux/net/irda/irlap.c Thu Sep 13 14:28:01 2001 @@ -94,7 +94,8 @@ void irlap_cleanup(void) * Initialize IrLAP layer * */ -struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos) +struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos, + char * hw_name) { struct irlap_cb *self; @@ -111,6 +112,13 @@ struct irlap_cb *irlap_open(struct net_d /* Make a binding between the layers */ self->netdev = dev; self->qos_dev = qos; + /* Copy hardware name */ + if(hw_name != NULL) { + strncpy(self->hw_name, hw_name, 2*IFNAMSIZ); + self->hw_name[2*IFNAMSIZ] = '\0'; + } else { + self->hw_name[0] = '\0'; + } /* FIXME: should we get our own field? */ dev->atalk_ptr = self; @@ -1101,6 +1109,10 @@ int irlap_proc_read(char *buf, char **st len += sprintf(buf+len, "state: %s\n", irlap_state[self->state]); + len += sprintf(buf+len, " device name: %s, ", + (self->netdev) ? self->netdev->name : "bug"); + len += sprintf(buf+len, "hardware name: %s\n", self->hw_name); + len += sprintf(buf+len, " caddr: %#02x, ", self->caddr); len += sprintf(buf+len, "saddr: %#08x, ", self->saddr); len += sprintf(buf+len, "daddr: %#08x\n", self->daddr); diff -u -p linux/drivers/net/irda/irtty.j2.c linux/drivers/net/irda/irtty.c --- linux/drivers/net/irda/irtty.j2.c Thu Sep 13 14:25:49 2001 +++ linux/drivers/net/irda/irtty.c Thu Sep 13 14:28:01 2001 @@ -895,6 +895,8 @@ static int irtty_net_init(struct net_dev static int irtty_net_open(struct net_device *dev) { struct irtty_cb *self = (struct irtty_cb *) dev->priv; + struct tty_struct *tty = self->tty; + char hwname[16]; ASSERT(self != NULL, return -1;); ASSERT(self->magic == IRTTY_MAGIC, return -1;); @@ -907,11 +909,16 @@ static int irtty_net_open(struct net_dev /* Make sure we can receive more data */ irtty_stop_receiver(self, FALSE); + /* Give self a hardware name */ + sprintf(hwname, "%s%d", tty->driver.name, + MINOR(tty->device) - tty->driver.minor_start + + tty->driver.name_base); + /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); MOD_INC_USE_COUNT; diff -u -p linux/drivers/net/irda/irport.j2.c linux/drivers/net/irda/irport.c --- linux/drivers/net/irda/irport.j2.c Thu Sep 13 14:25:58 2001 +++ linux/drivers/net/irda/irport.c Thu Sep 13 14:28:01 2001 @@ -774,6 +774,7 @@ int irport_net_open(struct net_device *d { struct irport_cb *self; int iobase; + char hwname[16]; IRDA_DEBUG(0, __FUNCTION__ "()\n"); @@ -792,11 +793,14 @@ int irport_net_open(struct net_device *d irport_start(self); + /* Give self a hardware name */ + sprintf(hwname, "SIR @ 0x%03x", self->io.sir_base); + /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); /* FIXME: change speed of dongle */ /* Ready to play! */ diff -u -p linux/drivers/net/irda/nsc-ircc.j2.c linux/drivers/net/irda/nsc-ircc.c --- linux/drivers/net/irda/nsc-ircc.j2.c Thu Sep 13 14:26:23 2001 +++ linux/drivers/net/irda/nsc-ircc.c Thu Sep 13 14:28:01 2001 @@ -1836,6 +1836,7 @@ static int nsc_ircc_net_open(struct net_ { struct nsc_ircc_cb *self; int iobase; + char hwname[32]; __u8 bank; IRDA_DEBUG(4, __FUNCTION__ "()\n"); @@ -1874,14 +1875,16 @@ static int nsc_ircc_net_open(struct net_ outb(bank, iobase+BSR); /* Ready to play! */ - netif_start_queue(dev); + /* Give self a hardware name */ + sprintf(hwname, "NSC-FIR @ 0x%03x", self->io.fir_base); + /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); MOD_INC_USE_COUNT; diff -u -p linux/drivers/net/irda/toshoboe.j2.c linux/drivers/net/irda/toshoboe.c --- linux/drivers/net/irda/toshoboe.j2.c Thu Sep 13 14:26:38 2001 +++ linux/drivers/net/irda/toshoboe.c Thu Sep 13 14:28:01 2001 @@ -510,6 +510,7 @@ static int toshoboe_net_open (struct net_device *dev) { struct toshoboe_cb *self; + char hwname[32]; IRDA_DEBUG (4, __FUNCTION__ "()\n"); @@ -537,11 +538,13 @@ toshoboe_net_open (struct net_device *de /* Ready to play! */ netif_start_queue(dev); + /* Give self a hardware name */ + sprintf(hwname, "Toshiba-FIR @ 0x%03x", self->base); /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); self->open = 1; diff -u -p linux/drivers/net/irda/w83977af_ir.j2.c linux/drivers/net/irda/w83977af_ir.c --- linux/drivers/net/irda/w83977af_ir.j2.c Thu Sep 13 14:26:58 2001 +++ linux/drivers/net/irda/w83977af_ir.c Thu Sep 13 14:28:01 2001 @@ -1210,6 +1210,7 @@ static int w83977af_net_open(struct net_ { struct w83977af_ir *self; int iobase; + char hwname[32]; __u8 set; IRDA_DEBUG(0, __FUNCTION__ "()\n"); @@ -1251,11 +1252,14 @@ static int w83977af_net_open(struct net_ /* Ready to play! */ netif_start_queue(dev); + /* Give self a hardware name */ + sprintf(hwname, "w83977af @ 0x%03x", self->io.fir_base); + /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); MOD_INC_USE_COUNT; diff -u -p linux/drivers/net/irda/ali-ircc.j2.c linux/drivers/net/irda/ali-ircc.c --- linux/drivers/net/irda/ali-ircc.j2.c Thu Sep 13 14:27:11 2001 +++ linux/drivers/net/irda/ali-ircc.c Thu Sep 13 14:28:01 2001 @@ -1344,6 +1344,7 @@ static int ali_ircc_net_open(struct net_ { struct ali_ircc_cb *self; int iobase; + char hwname[32]; IRDA_DEBUG(2, __FUNCTION__ "(), ---------------- Start ----------------\n"); @@ -1380,11 +1381,14 @@ static int ali_ircc_net_open(struct net_ /* Ready to play! */ netif_start_queue(dev); //benjamin by irport + /* Give self a hardware name */ + sprintf(hwname, "ALI-FIR @ 0x%03x", self->io.fir_base); + /* * Open new IrLAP layer instance, now that everything should be * initialized properly */ - self->irlap = irlap_open(dev, &self->qos); + self->irlap = irlap_open(dev, &self->qos, hwname); MOD_INC_USE_COUNT; diff -u -p linux/drivers/net/irda/irda-usb.j2.c linux/drivers/net/irda/irda-usb.c --- linux/drivers/net/irda/irda-usb.j2.c Thu Sep 13 14:27:34 2001 +++ linux/drivers/net/irda/irda-usb.c Thu Sep 13 14:28:50 2001 @@ -959,7 +959,7 @@ static int irda_usb_net_open(struct net_ * Note : will send immediately a speed change... */ sprintf(hwname, "usb#%d", self->usbdev->devnum); - self->irlap = irlap_open(netdev, &self->qos); + self->irlap = irlap_open(netdev, &self->qos, hwname); ASSERT(self->irlap != NULL, return -1;); /* Allow IrLAP to send data to us */ diff -u -p linux/drivers/net/irda/vlsi_ir.j2.c linux/drivers/net/irda/vlsi_ir.c --- linux/drivers/net/irda/vlsi_ir.j2.c Thu Sep 13 14:27:44 2001 +++ linux/drivers/net/irda/vlsi_ir.c Thu Sep 13 14:33:43 2001 @@ -776,6 +776,7 @@ static int vlsi_open(struct net_device * { vlsi_irda_dev_t *idev = ndev->priv; struct pci_dev *pdev = idev->pdev; + char hwname[32]; int err; MOD_INC_USE_COUNT; /* still needed? - we have SET_MODULE_OWNER! */ @@ -824,7 +825,8 @@ static int vlsi_open(struct net_device * (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR"), (sirpulse)?"3/16 bittime":"short"); - idev->irlap = irlap_open(ndev,&idev->qos); + sprintf(hwname, "VLSI-FIR"); + idev->irlap = irlap_open(ndev,&idev->qos,hwname); netif_start_queue(ndev); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |