diff options
Diffstat (limited to 'drivers/staging/irda')
26 files changed, 168 insertions, 183 deletions
diff --git a/drivers/staging/irda/drivers/ali-ircc.c b/drivers/staging/irda/drivers/ali-ircc.c index 35f198d83701..589cd01797f4 100644 --- a/drivers/staging/irda/drivers/ali-ircc.c +++ b/drivers/staging/irda/drivers/ali-ircc.c @@ -1876,8 +1876,7 @@ static int ali_ircc_dma_receive_complete(struct ali_ircc_cb *self) self->stamp = ktime_get(); skb = dev_alloc_skb(len+1); - if (skb == NULL) - { + if (!skb) { self->netdev->stats.rx_dropped++; return FALSE; diff --git a/drivers/staging/irda/drivers/au1k_ir.c b/drivers/staging/irda/drivers/au1k_ir.c index be4ea6aa57a9..73e3e4b041bf 100644 --- a/drivers/staging/irda/drivers/au1k_ir.c +++ b/drivers/staging/irda/drivers/au1k_ir.c @@ -290,8 +290,7 @@ static int au1k_irda_set_speed(struct net_device *dev, int speed) while (irda_read(aup, IR_STATUS) & (IR_RX_STATUS | IR_TX_STATUS)) { msleep(20); if (!timeout--) { - printk(KERN_ERR "%s: rx/tx disable timeout\n", - dev->name); + netdev_err(dev, "rx/tx disable timeout\n"); break; } } @@ -349,7 +348,7 @@ static int au1k_irda_set_speed(struct net_device *dev, int speed) IR_RX_ENABLE); break; default: - printk(KERN_ERR "%s unsupported speed %x\n", dev->name, speed); + netdev_err(dev, "unsupported speed %x\n", speed); ret = -EINVAL; break; } @@ -361,18 +360,18 @@ static int au1k_irda_set_speed(struct net_device *dev, int speed) irda_write(aup, IR_RING_PROMPT, 0); if (control & (1 << 14)) { - printk(KERN_ERR "%s: configuration error\n", dev->name); + netdev_err(dev, "configuration error\n"); } else { if (control & (1 << 11)) - printk(KERN_DEBUG "%s Valid SIR config\n", dev->name); + netdev_debug(dev, "Valid SIR config\n"); if (control & (1 << 12)) - printk(KERN_DEBUG "%s Valid MIR config\n", dev->name); + netdev_debug(dev, "Valid MIR config\n"); if (control & (1 << 13)) - printk(KERN_DEBUG "%s Valid FIR config\n", dev->name); + netdev_debug(dev, "Valid FIR config\n"); if (control & (1 << 10)) - printk(KERN_DEBUG "%s TX enabled\n", dev->name); + netdev_debug(dev, "TX enabled\n"); if (control & (1 << 9)) - printk(KERN_DEBUG "%s RX enabled\n", dev->name); + netdev_debug(dev, "RX enabled\n"); } return ret; @@ -584,23 +583,21 @@ static int au1k_irda_start(struct net_device *dev) retval = au1k_init(dev); if (retval) { - printk(KERN_ERR "%s: error in au1k_init\n", dev->name); + netdev_err(dev, "error in au1k_init\n"); return retval; } retval = request_irq(aup->irq_tx, &au1k_irda_interrupt, 0, dev->name, dev); if (retval) { - printk(KERN_ERR "%s: unable to get IRQ %d\n", - dev->name, dev->irq); + netdev_err(dev, "unable to get IRQ %d\n", dev->irq); return retval; } retval = request_irq(aup->irq_rx, &au1k_irda_interrupt, 0, dev->name, dev); if (retval) { free_irq(aup->irq_tx, dev); - printk(KERN_ERR "%s: unable to get IRQ %d\n", - dev->name, dev->irq); + netdev_err(dev, "unable to get IRQ %d\n", dev->irq); return retval; } @@ -673,12 +670,12 @@ static int au1k_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev) flags = ptxd->flags; if (flags & AU_OWN) { - printk(KERN_DEBUG "%s: tx_full\n", dev->name); + netdev_debug(dev, "tx_full\n"); netif_stop_queue(dev); aup->tx_full = 1; return 1; } else if (((aup->tx_head + 1) & (NUM_IR_DESC - 1)) == aup->tx_tail) { - printk(KERN_DEBUG "%s: tx_full\n", dev->name); + netdev_debug(dev, "tx_full\n"); netif_stop_queue(dev); aup->tx_full = 1; return 1; @@ -688,7 +685,7 @@ static int au1k_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev) #if 0 if (irda_read(aup, IR_RX_BYTE_CNT) != 0) { - printk(KERN_DEBUG "tx warning: rx byte cnt %x\n", + netdev_debug(dev, "tx warning: rx byte cnt %x\n", irda_read(aup, IR_RX_BYTE_CNT)); } #endif @@ -726,7 +723,7 @@ static void au1k_tx_timeout(struct net_device *dev) u32 speed; struct au1k_private *aup = netdev_priv(dev); - printk(KERN_ERR "%s: tx timeout\n", dev->name); + netdev_err(dev, "tx timeout\n"); speed = aup->speed; aup->speed = 0; au1k_irda_set_speed(dev, speed); @@ -751,8 +748,7 @@ static int au1k_irda_ioctl(struct net_device *dev, struct ifreq *ifreq, int cmd) ret = au1k_irda_set_speed(dev, rq->ifr_baudrate); else { - printk(KERN_ERR "%s ioctl: !netif_running\n", - dev->name); + netdev_err(dev, "ioctl: !netif_running\n"); ret = 0; } } @@ -868,7 +864,7 @@ out3: out2: kfree(aup->rx_buff.head); out1: - printk(KERN_ERR "au1k_irda_net_init() failed. Returns %d\n", retval); + netdev_err(dev, "au1k_irda_net_init() failed. Returns %d\n"); return retval; } @@ -934,7 +930,7 @@ static int au1k_irda_probe(struct platform_device *pdev) platform_set_drvdata(pdev, dev); - printk(KERN_INFO "IrDA: Registered device %s\n", dev->name); + netdev_info(dev, "IrDA: Registered device\n"); return 0; out4: diff --git a/drivers/staging/irda/drivers/bfin_sir.c b/drivers/staging/irda/drivers/bfin_sir.c index 3151b580dbd6..59e409b68349 100644 --- a/drivers/staging/irda/drivers/bfin_sir.c +++ b/drivers/staging/irda/drivers/bfin_sir.c @@ -22,6 +22,8 @@ static int max_rate = 57600; static int max_rate = 115200; #endif +static void bfin_sir_rx_dma_timeout(struct timer_list *t); + static void turnaround_delay(int mtt) { long ticks; @@ -57,7 +59,7 @@ static void bfin_sir_init_ports(struct bfin_sir_port *sp, struct platform_device sp->clk = get_sclk(); #ifdef CONFIG_SIR_BFIN_DMA sp->tx_done = 1; - init_timer(&(sp->rx_dma_timer)); + timer_setup(&sp->rx_dma_timer, bfin_sir_rx_dma_timeout, 0); #endif } @@ -317,10 +319,12 @@ static void bfin_sir_dma_rx_chars(struct net_device *dev) async_unwrap_char(dev, &self->stats, &self->rx_buff, port->rx_dma_buf.buf[i]); } -void bfin_sir_rx_dma_timeout(struct net_device *dev) +static void bfin_sir_rx_dma_timeout(struct timer_list *t) { + struct bfin_sir_port *port = from_timer(port, t, rx_dma_timer); + struct net_device *dev = port->dev; struct bfin_sir_self *self = netdev_priv(dev); - struct bfin_sir_port *port = self->sir_port; + int x_pos, pos; unsigned long flags; @@ -405,8 +409,6 @@ static int bfin_sir_startup(struct bfin_sir_port *port, struct net_device *dev) set_dma_start_addr(port->rx_dma_channel, (unsigned long)port->rx_dma_buf.buf); enable_dma(port->rx_dma_channel); - port->rx_dma_timer.data = (unsigned long)(dev); - port->rx_dma_timer.function = (void *)bfin_sir_rx_dma_timeout; #else diff --git a/drivers/staging/irda/drivers/esi-sir.c b/drivers/staging/irda/drivers/esi-sir.c index 019a3e848bcb..eb7aa6430bea 100644 --- a/drivers/staging/irda/drivers/esi-sir.c +++ b/drivers/staging/irda/drivers/esi-sir.c @@ -1,5 +1,5 @@ /********************************************************************* - * + * * Filename: esi.c * Version: 1.6 * Description: Driver for the Extended Systems JetEye PC dongle @@ -8,25 +8,25 @@ * Created at: Sat Feb 21 18:54:38 1998 * Modified at: Sun Oct 27 22:01:04 2002 * Modified by: Martin Diehl <mad@mdiehl.de> - * + * * Copyright (c) 1999 Dag Brattli, <dagb@cs.uit.no>, * Copyright (c) 1998 Thomas Davis, <ratbert@radiks.net>, * Copyright (c) 2002 Martin Diehl, <mad@mdiehl.de>, * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License + * + * You should have received a copy of the GNU General Public License * along with this program; if not, see <http://www.gnu.org/licenses/>. - * + * ********************************************************************/ #include <linux/module.h> @@ -97,7 +97,7 @@ static int esi_change_speed(struct sir_dev *dev, unsigned speed) { int ret = 0; int dtr, rts; - + switch (speed) { case 19200: dtr = TRUE; diff --git a/drivers/staging/irda/drivers/irda-usb.c b/drivers/staging/irda/drivers/irda-usb.c index 723e49bc4baa..bda6bdc6c70b 100644 --- a/drivers/staging/irda/drivers/irda-usb.c +++ b/drivers/staging/irda/drivers/irda-usb.c @@ -117,7 +117,7 @@ static void irda_usb_close(struct irda_usb_cb *self); static void speed_bulk_callback(struct urb *urb); static void write_bulk_callback(struct urb *urb); static void irda_usb_receive(struct urb *urb); -static void irda_usb_rx_defer_expired(unsigned long data); +static void irda_usb_rx_defer_expired(struct timer_list *t); static int irda_usb_net_open(struct net_device *dev); static int irda_usb_net_close(struct net_device *dev); static int irda_usb_net_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); @@ -334,9 +334,9 @@ static void irda_usb_change_speed_xbofs(struct irda_usb_cb *self) urb->transfer_flags = 0; /* Irq disabled -> GFP_ATOMIC */ - if ((ret = usb_submit_urb(urb, GFP_ATOMIC))) { + ret = usb_submit_urb(urb, GFP_ATOMIC); + if (ret) net_warn_ratelimited("%s(), failed Speed URB\n", __func__); - } } /*------------------------------------------------------------------*/ @@ -846,8 +846,7 @@ static void irda_usb_receive(struct urb *urb) * hot unplug of the dongle... * Lowest effective timer is 10ms... * Jean II */ - self->rx_defer_timer.function = irda_usb_rx_defer_expired; - self->rx_defer_timer.data = (unsigned long) urb; + self->rx_defer_timer_urb = urb; mod_timer(&self->rx_defer_timer, jiffies + msecs_to_jiffies(10)); @@ -953,20 +952,13 @@ done: * In case of errors, we want the USB layer to have time to recover. * Now, it is time to resubmit ouur Rx URB... */ -static void irda_usb_rx_defer_expired(unsigned long data) +static void irda_usb_rx_defer_expired(struct timer_list *t) { - struct urb *urb = (struct urb *) data; + struct irda_usb_cb *self = from_timer(self, t, rx_defer_timer); + struct urb *urb = self->rx_defer_timer_urb; struct sk_buff *skb = (struct sk_buff *) urb->context; - struct irda_usb_cb *self; - struct irda_skb_cb *cb; struct urb *next_urb; - /* Find ourselves */ - cb = (struct irda_skb_cb *) skb->cb; - IRDA_ASSERT(cb != NULL, return;); - self = (struct irda_usb_cb *) cb->context; - IRDA_ASSERT(self != NULL, return;); - /* Same stuff as when Rx is done, see above... */ next_urb = self->idle_rx_urb; urb->context = NULL; @@ -1622,7 +1614,7 @@ static int irda_usb_probe(struct usb_interface *intf, self = netdev_priv(net); self->netdev = net; spin_lock_init(&self->lock); - init_timer(&self->rx_defer_timer); + timer_setup(&self->rx_defer_timer, irda_usb_rx_defer_expired, 0); self->capability = id->driver_info; self->needspatch = ((self->capability & IUC_STIR421X) != 0); diff --git a/drivers/staging/irda/drivers/irda-usb.h b/drivers/staging/irda/drivers/irda-usb.h index 8ac389fa9348..56ee8c16c5e2 100644 --- a/drivers/staging/irda/drivers/irda-usb.h +++ b/drivers/staging/irda/drivers/irda-usb.h @@ -170,5 +170,6 @@ struct irda_usb_cb { int needspatch; /* device needs firmware patch */ struct timer_list rx_defer_timer; /* Wait for Rx error to clear */ + struct urb *rx_defer_timer_urb; /* URB attached to rx_defer_timer */ }; diff --git a/drivers/staging/irda/drivers/mcs7780.c b/drivers/staging/irda/drivers/mcs7780.c index c3f0b254b344..d52e9f4b9770 100644 --- a/drivers/staging/irda/drivers/mcs7780.c +++ b/drivers/staging/irda/drivers/mcs7780.c @@ -605,19 +605,22 @@ static int mcs_speed_change(struct mcs_cb *mcs) if (mcs->new_speed <= 115200) { rval &= ~MCS_FIR; - if ((rst = (mcs->speed > 115200))) + rst = mcs->speed > 115200; + if (rst) mcs_set_reg(mcs, MCS_MINRXPW_REG, 0); } else if (mcs->new_speed <= 1152000) { rval &= ~MCS_FIR; - if ((rst = !(mcs->speed == 576000 || mcs->speed == 1152000))) + rst = !(mcs->speed == 576000 || mcs->speed == 1152000); + if (rst) mcs_set_reg(mcs, MCS_MINRXPW_REG, 5); } else { rval |= MCS_FIR; - if ((rst = (mcs->speed != 4000000))) + rst = mcs->speed != 4000000; + if (rst) mcs_set_reg(mcs, MCS_MINRXPW_REG, 5); } diff --git a/drivers/staging/irda/drivers/vlsi_ir.c b/drivers/staging/irda/drivers/vlsi_ir.c index 6638784c082e..3dff3c55ddf5 100644 --- a/drivers/staging/irda/drivers/vlsi_ir.c +++ b/drivers/staging/irda/drivers/vlsi_ir.c @@ -170,10 +170,10 @@ static void vlsi_proc_pdev(struct seq_file *seq, struct pci_dev *pdev) seq_printf(seq, "pci-power-state: %u\n", (unsigned) pdev->current_state); seq_printf(seq, "resources: irq=%u / io=0x%04x / dma_mask=0x%016Lx\n", pdev->irq, (unsigned)pci_resource_start(pdev, 0), (unsigned long long)pdev->dma_mask); - seq_printf(seq, "hw registers: "); + seq_puts(seq, "hw registers: "); for (i = 0; i < 0x20; i++) seq_printf(seq, "%02x", (unsigned)inb((iobase+i))); - seq_printf(seq, "\n"); + seq_putc(seq, '\n'); } static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev) @@ -193,7 +193,7 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev) if (!netif_running(ndev)) return; - seq_printf(seq, "\nhw-state:\n"); + seq_puts(seq, "\nhw-state:\n"); pci_read_config_byte(idev->pdev, VLSI_PCI_IRMISC, &byte); seq_printf(seq, "IRMISC:%s%s%s uart%s", (byte&IRMISC_IRRAIL) ? " irrail" : "", @@ -274,7 +274,7 @@ static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev) word = inw(iobase+VLSI_PIO_RCVBCNT) & RCVBCNT_MASK; seq_printf(seq, "RCVBCNT: rx-fifo filling level = %u\n", word); - seq_printf(seq, "\nsw-state:\n"); + seq_puts(seq, "\nsw-state:\n"); seq_printf(seq, "IrPHY setup: %d baud - %s encoding\n", idev->baud, (idev->mode==IFF_SIR)?"SIR":((idev->mode==IFF_MIR)?"MIR":"FIR")); sec = div_s64_rem(ktime_us_delta(ktime_get(), idev->last_rx), @@ -305,10 +305,10 @@ static void vlsi_proc_ring(struct seq_file *seq, struct vlsi_ring *r) t = atomic_read(&r->tail) & r->mask; seq_printf(seq, "head = %d / tail = %d ", h, t); if (h == t) - seq_printf(seq, "(empty)\n"); + seq_puts(seq, "(empty)\n"); else { if (((t+1)&r->mask) == h) - seq_printf(seq, "(full)\n"); + seq_puts(seq, "(full)\n"); else seq_printf(seq, "(level = %d)\n", ((unsigned)(t-h) & r->mask)); rd = &r->rd[h]; @@ -355,13 +355,13 @@ static int vlsi_seq_show(struct seq_file *seq, void *v) seq_printf(seq, "\nPCI controller down - resume_ok = %d\n", idev->resume_ok); if (netif_running(ndev) && idev->rx_ring && idev->tx_ring) { - seq_printf(seq, "\n--------- RX ring -----------\n\n"); + seq_puts(seq, "\n--------- RX ring -----------\n\n"); vlsi_proc_ring(seq, idev->rx_ring); - seq_printf(seq, "\n--------- TX ring -----------\n\n"); + seq_puts(seq, "\n--------- TX ring -----------\n\n"); vlsi_proc_ring(seq, idev->tx_ring); } } - seq_printf(seq, "\n"); + seq_putc(seq, '\n'); spin_unlock_irqrestore(&idev->lock, flags); return 0; diff --git a/drivers/staging/irda/include/net/irda/irlmp_event.h b/drivers/staging/irda/include/net/irda/irlmp_event.h index 9e4ec17a7449..a1a082fe384e 100644 --- a/drivers/staging/irda/include/net/irda/irlmp_event.h +++ b/drivers/staging/irda/include/net/irda/irlmp_event.h @@ -82,9 +82,9 @@ typedef enum { extern const char *const irlmp_state[]; extern const char *const irlsap_state[]; -void irlmp_watchdog_timer_expired(void *data); -void irlmp_discovery_timer_expired(void *data); -void irlmp_idle_timer_expired(void *data); +void irlmp_watchdog_timer_expired(struct timer_list *t); +void irlmp_discovery_timer_expired(struct timer_list *t); +void irlmp_idle_timer_expired(struct timer_list *t); void irlmp_do_lap_event(struct lap_cb *self, IRLMP_EVENT event, struct sk_buff *skb); diff --git a/drivers/staging/irda/include/net/irda/qos.h b/drivers/staging/irda/include/net/irda/qos.h index 05a5a249956f..a0315b50ac27 100644 --- a/drivers/staging/irda/include/net/irda/qos.h +++ b/drivers/staging/irda/include/net/irda/qos.h @@ -58,23 +58,23 @@ #define IR_16000000 0x02 /* Quality of Service information */ -typedef struct { +struct qos_value { __u32 value; __u16 bits; /* LSB is first byte, MSB is second byte */ -} qos_value_t; +}; struct qos_info { magic_t magic; - qos_value_t baud_rate; /* IR_11520O | ... */ - qos_value_t max_turn_time; - qos_value_t data_size; - qos_value_t window_size; - qos_value_t additional_bofs; - qos_value_t min_turn_time; - qos_value_t link_disc_time; + struct qos_value baud_rate; /* IR_11520O | ... */ + struct qos_value max_turn_time; + struct qos_value data_size; + struct qos_value window_size; + struct qos_value additional_bofs; + struct qos_value min_turn_time; + struct qos_value link_disc_time; - qos_value_t power; + struct qos_value power; }; extern int sysctl_max_baud_rate; diff --git a/drivers/staging/irda/include/net/irda/timer.h b/drivers/staging/irda/include/net/irda/timer.h index d784f242cf7b..a6635f0afae9 100644 --- a/drivers/staging/irda/include/net/irda/timer.h +++ b/drivers/staging/irda/include/net/irda/timer.h @@ -72,14 +72,11 @@ struct lap_cb; #define WATCHDOG_TIMEOUT (20*HZ) /* 20 sec */ -typedef void (*TIMER_CALLBACK)(void *); - -static inline void irda_start_timer(struct timer_list *ptimer, int timeout, - void* data, TIMER_CALLBACK callback) +static inline void irda_start_timer(struct timer_list *ptimer, int timeout, + void (*callback)(struct timer_list *)) { - ptimer->function = (void (*)(unsigned long)) callback; - ptimer->data = (unsigned long) data; - + ptimer->function = (TIMER_FUNC_TYPE) callback; + /* Set new value for timer (update or add timer). * We use mod_timer() because it's more efficient and also * safer with respect to race conditions - Jean II */ diff --git a/drivers/staging/irda/net/af_irda.c b/drivers/staging/irda/net/af_irda.c index 23fa7c8b09a5..b82a47b9ef0b 100644 --- a/drivers/staging/irda/net/af_irda.c +++ b/drivers/staging/irda/net/af_irda.c @@ -429,11 +429,11 @@ static void irda_selective_discovery_indication(discinfo_t *discovery, * We were waiting for a node to be discovered, but nothing has come up * so far. Wake up the user and tell him that we failed... */ -static void irda_discovery_timeout(u_long priv) +static void irda_discovery_timeout(struct timer_list *t) { struct irda_sock *self; - self = (struct irda_sock *) priv; + self = from_timer(self, t, watchdog); BUG_ON(self == NULL); /* Nothing for the caller */ @@ -2505,8 +2505,7 @@ bed: /* Set watchdog timer to expire in <val> ms. */ self->errno = 0; - setup_timer(&self->watchdog, irda_discovery_timeout, - (unsigned long)self); + timer_setup(&self->watchdog, irda_discovery_timeout, 0); mod_timer(&self->watchdog, jiffies + msecs_to_jiffies(val)); diff --git a/drivers/staging/irda/net/discovery.c b/drivers/staging/irda/net/discovery.c index 364d70aed068..1e54954a4081 100644 --- a/drivers/staging/irda/net/discovery.c +++ b/drivers/staging/irda/net/discovery.c @@ -179,7 +179,7 @@ void irlmp_expire_discoveries(hashbin_t *log, __u32 saddr, int force) /* Create the client specific buffer */ n = HASHBIN_GET_SIZE(log); buffer = kmalloc(n * sizeof(struct irda_device_info), GFP_ATOMIC); - if (buffer == NULL) { + if (!buffer) { spin_unlock_irqrestore(&log->hb_spinlock, flags); return; } @@ -291,7 +291,7 @@ struct irda_device_info *irlmp_copy_discoveries(hashbin_t *log, int *pn, /* Create the client specific buffer */ n = HASHBIN_GET_SIZE(log); buffer = kmalloc(n * sizeof(struct irda_device_info), GFP_ATOMIC); - if (buffer == NULL) { + if (!buffer) { spin_unlock_irqrestore(&log->hb_spinlock, flags); return NULL; } diff --git a/drivers/staging/irda/net/ircomm/ircomm_tty.c b/drivers/staging/irda/net/ircomm/ircomm_tty.c index ec157c3419b5..473abfaffe7b 100644 --- a/drivers/staging/irda/net/ircomm/ircomm_tty.c +++ b/drivers/staging/irda/net/ircomm/ircomm_tty.c @@ -395,7 +395,7 @@ static int ircomm_tty_install(struct tty_driver *driver, struct tty_struct *tty) self->max_data_size = IRCOMM_TTY_DATA_UNINITIALISED; /* Init some important stuff */ - init_timer(&self->watchdog_timer); + timer_setup(&self->watchdog_timer, NULL, 0); spin_lock_init(&self->spinlock); /* diff --git a/drivers/staging/irda/net/ircomm/ircomm_tty_attach.c b/drivers/staging/irda/net/ircomm/ircomm_tty_attach.c index 0a411019c098..e2d5ce8ba0db 100644 --- a/drivers/staging/irda/net/ircomm/ircomm_tty_attach.c +++ b/drivers/staging/irda/net/ircomm/ircomm_tty_attach.c @@ -52,7 +52,7 @@ static void ircomm_tty_getvalue_confirm(int result, __u16 obj_id, struct ias_value *value, void *priv); static void ircomm_tty_start_watchdog_timer(struct ircomm_tty_cb *self, int timeout); -static void ircomm_tty_watchdog_timer_expired(void *data); +static void ircomm_tty_watchdog_timer_expired(struct timer_list *timer); static int ircomm_tty_state_idle(struct ircomm_tty_cb *self, IRCOMM_TTY_EVENT event, @@ -587,7 +587,7 @@ static void ircomm_tty_start_watchdog_timer(struct ircomm_tty_cb *self, IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == IRCOMM_TTY_MAGIC, return;); - irda_start_timer(&self->watchdog_timer, timeout, (void *) self, + irda_start_timer(&self->watchdog_timer, timeout, ircomm_tty_watchdog_timer_expired); } @@ -597,9 +597,9 @@ static void ircomm_tty_start_watchdog_timer(struct ircomm_tty_cb *self, * Called when the connect procedure have taken to much time. * */ -static void ircomm_tty_watchdog_timer_expired(void *data) +static void ircomm_tty_watchdog_timer_expired(struct timer_list *t) { - struct ircomm_tty_cb *self = (struct ircomm_tty_cb *) data; + struct ircomm_tty_cb *self = from_timer(self, t, watchdog_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == IRCOMM_TTY_MAGIC, return;); diff --git a/drivers/staging/irda/net/irda_device.c b/drivers/staging/irda/net/irda_device.c index 890b90d055d5..682b4eea15e0 100644 --- a/drivers/staging/irda/net/irda_device.c +++ b/drivers/staging/irda/net/irda_device.c @@ -54,29 +54,30 @@ static void __irda_task_delete(struct irda_task *task); -static hashbin_t *dongles = NULL; -static hashbin_t *tasks = NULL; +static hashbin_t *dongles; +static hashbin_t *tasks; -static void irda_task_timer_expired(void *data); +static void irda_task_timer_expired(struct timer_list *timer); -int __init irda_device_init( void) +int __init irda_device_init(void) { dongles = hashbin_new(HB_NOLOCK); - if (dongles == NULL) { + if (!dongles) { net_warn_ratelimited("IrDA: Can't allocate dongles hashbin!\n"); return -ENOMEM; } spin_lock_init(&dongles->hb_spinlock); tasks = hashbin_new(HB_LOCK); - if (tasks == NULL) { + if (!tasks) { net_warn_ratelimited("IrDA: Can't allocate tasks hashbin!\n"); hashbin_delete(dongles, NULL); return -ENOMEM; } /* We no longer initialise the driver ourselves here, we let - * the system do it for us... - Jean II */ + * the system do it for us... - Jean II + */ return 0; } @@ -84,6 +85,7 @@ int __init irda_device_init( void) static void leftover_dongle(void *arg) { struct dongle_reg *reg = arg; + net_warn_ratelimited("IrDA: Dongle type %x not unregistered\n", reg->type); } @@ -107,7 +109,7 @@ void irda_device_set_media_busy(struct net_device *dev, int status) pr_debug("%s(%s)\n", __func__, status ? "TRUE" : "FALSE"); - self = (struct irlap_cb *) dev->atalk_ptr; + self = (struct irlap_cb *)dev->atalk_ptr; /* Some drivers may enable the receive interrupt before calling * irlap_open(), or they may disable the receive interrupt @@ -115,7 +117,8 @@ void irda_device_set_media_busy(struct net_device *dev, int status) * The IrDA stack is protected from this in irlap_driver_rcv(). * However, the driver calls directly the wrapper, that calls * us directly. Make sure we protect ourselves. - * Jean II */ + * Jean II + */ if (!self || self->magic != LAP_MAGIC) return; @@ -133,7 +136,6 @@ void irda_device_set_media_busy(struct net_device *dev, int status) } EXPORT_SYMBOL(irda_device_set_media_busy); - /* * Function irda_device_is_receiving (dev) * @@ -169,7 +171,7 @@ static void __irda_task_delete(struct irda_task *task) static void irda_task_delete(struct irda_task *task) { /* Unregister task */ - hashbin_remove(tasks, (long) task, NULL); + hashbin_remove(tasks, (long)task, NULL); __irda_task_delete(task); } @@ -231,7 +233,7 @@ static int irda_task_kick(struct irda_task *task) } irda_task_delete(task); } else if (timeout > 0) { - irda_start_timer(&task->timer, timeout, (void *) task, + irda_start_timer(&task->timer, timeout, irda_task_timer_expired); finished = FALSE; } else { @@ -249,11 +251,9 @@ static int irda_task_kick(struct irda_task *task) * Task time has expired. We now try to execute task (again), and restart * the timer if the task has not finished yet */ -static void irda_task_timer_expired(void *data) +static void irda_task_timer_expired(struct timer_list *t) { - struct irda_task *task; - - task = data; + struct irda_task *task = from_timer(task, t, timer); irda_task_kick(task); } @@ -280,8 +280,8 @@ static void irda_device_setup(struct net_device *dev) /* * Funciton alloc_irdadev - * Allocates and sets up an IRDA device in a manner similar to - * alloc_etherdev. + * Allocates and sets up an IRDA device in a manner similar to + * alloc_etherdev. */ struct net_device *alloc_irdadev(int sizeof_priv) { diff --git a/drivers/staging/irda/net/iriap.c b/drivers/staging/irda/net/iriap.c index 1138eaf5c682..d64192e9db8b 100644 --- a/drivers/staging/irda/net/iriap.c +++ b/drivers/staging/irda/net/iriap.c @@ -76,12 +76,12 @@ static void iriap_connect_confirm(void *instance, void *sap, static int iriap_data_indication(void *instance, void *sap, struct sk_buff *skb); -static void iriap_watchdog_timer_expired(void *data); +static void iriap_watchdog_timer_expired(struct timer_list *t); static inline void iriap_start_watchdog_timer(struct iriap_cb *self, int timeout) { - irda_start_timer(&self->watchdog_timer, timeout, self, + irda_start_timer(&self->watchdog_timer, timeout, iriap_watchdog_timer_expired); } @@ -199,7 +199,7 @@ struct iriap_cb *iriap_open(__u8 slsap_sel, int mode, void *priv, * we connect, so this must have a sane value... Jean II */ self->max_header_size = LMP_MAX_HEADER; - init_timer(&self->watchdog_timer); + timer_setup(&self->watchdog_timer, NULL, 0); hashbin_insert(iriap, (irda_queue_t *) self, (long) self, NULL); @@ -946,9 +946,9 @@ void iriap_call_indication(struct iriap_cb *self, struct sk_buff *skb) * Query has taken too long time, so abort * */ -static void iriap_watchdog_timer_expired(void *data) +static void iriap_watchdog_timer_expired(struct timer_list *t) { - struct iriap_cb *self = (struct iriap_cb *) data; + struct iriap_cb *self = from_timer(self, t, watchdog_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == IAS_MAGIC, return;); diff --git a/drivers/staging/irda/net/irlan/irlan_client.c b/drivers/staging/irda/net/irlan/irlan_client.c index c5837a40c78e..0b65e80849ae 100644 --- a/drivers/staging/irda/net/irlan/irlan_client.c +++ b/drivers/staging/irda/net/irlan/irlan_client.c @@ -68,9 +68,9 @@ static void irlan_check_response_param(struct irlan_cb *self, char *param, char *value, int val_len); static void irlan_client_open_ctrl_tsap(struct irlan_cb *self); -static void irlan_client_kick_timer_expired(void *data) +static void irlan_client_kick_timer_expired(struct timer_list *t) { - struct irlan_cb *self = (struct irlan_cb *) data; + struct irlan_cb *self = from_timer(self, t, client.kick_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == IRLAN_MAGIC, return;); @@ -89,7 +89,7 @@ static void irlan_client_kick_timer_expired(void *data) static void irlan_client_start_kick_timer(struct irlan_cb *self, int timeout) { - irda_start_timer(&self->client.kick_timer, timeout, (void *) self, + irda_start_timer(&self->client.kick_timer, timeout, irlan_client_kick_timer_expired); } diff --git a/drivers/staging/irda/net/irlan/irlan_common.c b/drivers/staging/irda/net/irlan/irlan_common.c index 481bbc2a4349..fdcd7147007d 100644 --- a/drivers/staging/irda/net/irlan/irlan_common.c +++ b/drivers/staging/irda/net/irlan/irlan_common.c @@ -228,8 +228,8 @@ static struct irlan_cb __init *irlan_open(__u32 saddr, __u32 daddr) self->media = MEDIA_802_3; self->disconnect_reason = LM_USER_REQUEST; - init_timer(&self->watchdog_timer); - init_timer(&self->client.kick_timer); + timer_setup(&self->watchdog_timer, NULL, 0); + timer_setup(&self->client.kick_timer, NULL, 0); init_waitqueue_head(&self->open_wait); skb_queue_head_init(&self->client.txq); diff --git a/drivers/staging/irda/net/irlap.c b/drivers/staging/irda/net/irlap.c index 1cde711bcab5..d7d894423b4f 100644 --- a/drivers/staging/irda/net/irlap.c +++ b/drivers/staging/irda/net/irlap.c @@ -148,14 +148,14 @@ struct irlap_cb *irlap_open(struct net_device *dev, struct qos_info *qos, /* Copy to the driver */ memcpy(dev->dev_addr, &self->saddr, 4); - init_timer(&self->slot_timer); - init_timer(&self->query_timer); - init_timer(&self->discovery_timer); - init_timer(&self->final_timer); - init_timer(&self->poll_timer); - init_timer(&self->wd_timer); - init_timer(&self->backoff_timer); - init_timer(&self->media_busy_timer); + timer_setup(&self->slot_timer, NULL, 0); + timer_setup(&self->query_timer, NULL, 0); + timer_setup(&self->discovery_timer, NULL, 0); + timer_setup(&self->final_timer, NULL, 0); + timer_setup(&self->poll_timer, NULL, 0); + timer_setup(&self->wd_timer, NULL, 0); + timer_setup(&self->backoff_timer, NULL, 0); + timer_setup(&self->media_busy_timer, NULL, 0); irlap_apply_default_connection_parameters(self); diff --git a/drivers/staging/irda/net/irlap_event.c b/drivers/staging/irda/net/irlap_event.c index 0e1b4d79f745..634188b07e0a 100644 --- a/drivers/staging/irda/net/irlap_event.c +++ b/drivers/staging/irda/net/irlap_event.c @@ -163,9 +163,9 @@ static int (*state[])(struct irlap_cb *self, IRLAP_EVENT event, * Poll timer has expired. Normally we must now send a RR frame to the * remote device */ -static void irlap_poll_timer_expired(void *data) +static void irlap_poll_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, poll_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -222,7 +222,7 @@ static void irlap_start_poll_timer(struct irlap_cb *self, int timeout) if (timeout == 0) irlap_do_event(self, POLL_TIMER_EXPIRED, NULL, NULL); else - irda_start_timer(&self->poll_timer, timeout, self, + irda_start_timer(&self->poll_timer, timeout, irlap_poll_timer_expired); } diff --git a/drivers/staging/irda/net/irlmp.c b/drivers/staging/irda/net/irlmp.c index 43964594aa12..34355061ab0b 100644 --- a/drivers/staging/irda/net/irlmp.c +++ b/drivers/staging/irda/net/irlmp.c @@ -109,7 +109,7 @@ int __init irlmp_init(void) irlmp->last_lsap_sel = 0x0f; /* Reserved 0x00-0x0f */ strcpy(sysctl_devname, "Linux"); - init_timer(&irlmp->discovery_timer); + timer_setup(&irlmp->discovery_timer, NULL, 0); /* Do discovery every 3 seconds, conditionally */ if (sysctl_discovery) @@ -185,7 +185,7 @@ struct lsap_cb *irlmp_open_lsap(__u8 slsap_sel, notify_t *notify, __u8 pid) self->dlsap_sel = LSAP_ANY; /* self->connected = FALSE; -> already NULL via memset() */ - init_timer(&self->watchdog_timer); + timer_setup(&self->watchdog_timer, NULL, 0); self->notify = *notify; @@ -311,7 +311,7 @@ void irlmp_register_link(struct irlap_cb *irlap, __u32 saddr, notify_t *notify) lap->lap_state = LAP_STANDBY; - init_timer(&lap->idle_timer); + timer_setup(&lap->idle_timer, NULL, 0); /* * Insert into queue of LMP links @@ -655,7 +655,7 @@ struct lsap_cb *irlmp_dup(struct lsap_cb *orig, void *instance) /* Not everything is the same */ new->notify.instance = instance; - init_timer(&new->watchdog_timer); + timer_setup(&new->watchdog_timer, NULL, 0); hashbin_insert(irlmp->unconnected_lsaps, (irda_queue_t *) new, (long) new, NULL); diff --git a/drivers/staging/irda/net/irlmp_event.c b/drivers/staging/irda/net/irlmp_event.c index e306cf2c1e04..ddad0994b6dc 100644 --- a/drivers/staging/irda/net/irlmp_event.c +++ b/drivers/staging/irda/net/irlmp_event.c @@ -165,7 +165,7 @@ void irlmp_do_lap_event(struct lap_cb *self, IRLMP_EVENT event, (*lap_state[self->lap_state]) (self, event, skb); } -void irlmp_discovery_timer_expired(void *data) +void irlmp_discovery_timer_expired(struct timer_list *t) { /* We always cleanup the log (active & passive discovery) */ irlmp_do_expiry(); @@ -176,9 +176,9 @@ void irlmp_discovery_timer_expired(void *data) irlmp_start_discovery_timer(irlmp, sysctl_discovery_timeout * HZ); } -void irlmp_watchdog_timer_expired(void *data) +void irlmp_watchdog_timer_expired(struct timer_list *t) { - struct lsap_cb *self = (struct lsap_cb *) data; + struct lsap_cb *self = from_timer(self, t, watchdog_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LMP_LSAP_MAGIC, return;); @@ -186,9 +186,9 @@ void irlmp_watchdog_timer_expired(void *data) irlmp_do_lsap_event(self, LM_WATCHDOG_TIMEOUT, NULL); } -void irlmp_idle_timer_expired(void *data) +void irlmp_idle_timer_expired(struct timer_list *t) { - struct lap_cb *self = (struct lap_cb *) data; + struct lap_cb *self = from_timer(self, t, idle_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LMP_LAP_MAGIC, return;); diff --git a/drivers/staging/irda/net/irqueue.c b/drivers/staging/irda/net/irqueue.c index 160dc89335e2..14291cbc4097 100644 --- a/drivers/staging/irda/net/irqueue.c +++ b/drivers/staging/irda/net/irqueue.c @@ -217,7 +217,8 @@ static __u32 hash( const char* name) while(*name) { h = (h<<4) + *name++; - if ((g = (h & 0xf0000000))) + g = h & 0xf0000000; + if (g) h ^=g>>24; h &=~g; } diff --git a/drivers/staging/irda/net/irttp.c b/drivers/staging/irda/net/irttp.c index b6ab41d5b3a3..741a94f39b4e 100644 --- a/drivers/staging/irda/net/irttp.c +++ b/drivers/staging/irda/net/irttp.c @@ -62,7 +62,6 @@ static void irttp_run_rx_queue(struct tsap_cb *self); static void irttp_flush_queues(struct tsap_cb *self); static void irttp_fragment_skb(struct tsap_cb *self, struct sk_buff *skb); static struct sk_buff *irttp_reassemble_skb(struct tsap_cb *self); -static void irttp_todo_expired(unsigned long data); static int irttp_param_max_sdu_size(void *instance, irda_param_t *param, int get); @@ -160,9 +159,9 @@ static inline void irttp_start_todo_timer(struct tsap_cb *self, int timeout) * killed (need user context), and we can't guarantee that here... * Jean II */ -static void irttp_todo_expired(unsigned long data) +static void irttp_todo_expired(struct timer_list *t) { - struct tsap_cb *self = (struct tsap_cb *) data; + struct tsap_cb *self = from_timer(self, t, todo_timer); /* Check that we still exist */ if (!self || self->magic != TTP_TSAP_MAGIC) @@ -374,7 +373,7 @@ static int irttp_param_max_sdu_size(void *instance, irda_param_t *param, static void irttp_init_tsap(struct tsap_cb *tsap) { spin_lock_init(&tsap->lock); - init_timer(&tsap->todo_timer); + timer_setup(&tsap->todo_timer, irttp_todo_expired, 0); skb_queue_head_init(&tsap->rx_queue); skb_queue_head_init(&tsap->tx_queue); @@ -410,10 +409,6 @@ struct tsap_cb *irttp_open_tsap(__u8 stsap_sel, int credit, notify_t *notify) /* Initialize internal objects */ irttp_init_tsap(self); - /* Initialise todo timer */ - self->todo_timer.data = (unsigned long) self; - self->todo_timer.function = &irttp_todo_expired; - /* Initialize callbacks for IrLMP to use */ irda_notify_init(&ttp_notify); ttp_notify.connect_confirm = irttp_connect_confirm; diff --git a/drivers/staging/irda/net/timer.c b/drivers/staging/irda/net/timer.c index f2280f73b057..cf00c0d848aa 100644 --- a/drivers/staging/irda/net/timer.c +++ b/drivers/staging/irda/net/timer.c @@ -34,16 +34,16 @@ extern int sysctl_slot_timeout; -static void irlap_slot_timer_expired(void* data); -static void irlap_query_timer_expired(void* data); -static void irlap_final_timer_expired(void* data); -static void irlap_wd_timer_expired(void* data); -static void irlap_backoff_timer_expired(void* data); -static void irlap_media_busy_expired(void* data); +static void irlap_slot_timer_expired(struct timer_list *t); +static void irlap_query_timer_expired(struct timer_list *t); +static void irlap_final_timer_expired(struct timer_list *t); +static void irlap_wd_timer_expired(struct timer_list *t); +static void irlap_backoff_timer_expired(struct timer_list *t); +static void irlap_media_busy_expired(struct timer_list *t); void irlap_start_slot_timer(struct irlap_cb *self, int timeout) { - irda_start_timer(&self->slot_timer, timeout, (void *) self, + irda_start_timer(&self->slot_timer, timeout, irlap_slot_timer_expired); } @@ -66,32 +66,32 @@ void irlap_start_query_timer(struct irlap_cb *self, int S, int s) /* Set or re-set the timer. We reset the timer for each received * discovery query, which allow us to automatically adjust to * the speed of the peer discovery (faster or slower). Jean II */ - irda_start_timer( &self->query_timer, timeout, (void *) self, + irda_start_timer(&self->query_timer, timeout, irlap_query_timer_expired); } void irlap_start_final_timer(struct irlap_cb *self, int timeout) { - irda_start_timer(&self->final_timer, timeout, (void *) self, + irda_start_timer(&self->final_timer, timeout, irlap_final_timer_expired); } void irlap_start_wd_timer(struct irlap_cb *self, int timeout) { - irda_start_timer(&self->wd_timer, timeout, (void *) self, + irda_start_timer(&self->wd_timer, timeout, irlap_wd_timer_expired); } void irlap_start_backoff_timer(struct irlap_cb *self, int timeout) { - irda_start_timer(&self->backoff_timer, timeout, (void *) self, + irda_start_timer(&self->backoff_timer, timeout, irlap_backoff_timer_expired); } void irlap_start_mbusy_timer(struct irlap_cb *self, int timeout) { irda_start_timer(&self->media_busy_timer, timeout, - (void *) self, irlap_media_busy_expired); + irlap_media_busy_expired); } void irlap_stop_mbusy_timer(struct irlap_cb *self) @@ -110,19 +110,19 @@ void irlap_stop_mbusy_timer(struct irlap_cb *self) void irlmp_start_watchdog_timer(struct lsap_cb *self, int timeout) { - irda_start_timer(&self->watchdog_timer, timeout, (void *) self, + irda_start_timer(&self->watchdog_timer, timeout, irlmp_watchdog_timer_expired); } void irlmp_start_discovery_timer(struct irlmp_cb *self, int timeout) { - irda_start_timer(&self->discovery_timer, timeout, (void *) self, + irda_start_timer(&self->discovery_timer, timeout, irlmp_discovery_timer_expired); } void irlmp_start_idle_timer(struct lap_cb *self, int timeout) { - irda_start_timer(&self->idle_timer, timeout, (void *) self, + irda_start_timer(&self->idle_timer, timeout, irlmp_idle_timer_expired); } @@ -138,9 +138,9 @@ void irlmp_stop_idle_timer(struct lap_cb *self) * IrLAP slot timer has expired * */ -static void irlap_slot_timer_expired(void *data) +static void irlap_slot_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, slot_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -154,9 +154,9 @@ static void irlap_slot_timer_expired(void *data) * IrLAP query timer has expired * */ -static void irlap_query_timer_expired(void *data) +static void irlap_query_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, query_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -170,9 +170,9 @@ static void irlap_query_timer_expired(void *data) * * */ -static void irlap_final_timer_expired(void *data) +static void irlap_final_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, final_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -186,9 +186,9 @@ static void irlap_final_timer_expired(void *data) * * */ -static void irlap_wd_timer_expired(void *data) +static void irlap_wd_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, wd_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -202,9 +202,9 @@ static void irlap_wd_timer_expired(void *data) * * */ -static void irlap_backoff_timer_expired(void *data) +static void irlap_backoff_timer_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, backoff_timer); IRDA_ASSERT(self != NULL, return;); IRDA_ASSERT(self->magic == LAP_MAGIC, return;); @@ -218,9 +218,9 @@ static void irlap_backoff_timer_expired(void *data) * * */ -static void irlap_media_busy_expired(void *data) +static void irlap_media_busy_expired(struct timer_list *t) { - struct irlap_cb *self = (struct irlap_cb *) data; + struct irlap_cb *self = from_timer(self, t, media_busy_timer); IRDA_ASSERT(self != NULL, return;); |