fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / net / irda / irport.c
index 6070195..3098960 100644 (file)
@@ -87,8 +87,7 @@ static struct net_device_stats *irport_net_get_stats(struct net_device *dev);
 static int irport_change_speed_complete(struct irda_task *task);
 static void irport_timeout(struct net_device *dev);
 
-static irqreturn_t irport_interrupt(int irq, void *dev_id,
-                                   struct pt_regs *regs);
+static irqreturn_t irport_interrupt(int irq, void *dev_id);
 static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev);
 static void irport_change_speed(void *priv, __u32 speed);
 static int irport_net_open(struct net_device *dev);
@@ -165,7 +164,7 @@ irport_open(int i, unsigned int iobase, unsigned int irq)
        
        /* Allocate memory if needed */
        if (self->tx_buff.truesize > 0) {
-               self->tx_buff.head = (__u8 *) kmalloc(self->tx_buff.truesize, 
+               self->tx_buff.head = kmalloc(self->tx_buff.truesize,
                                                      GFP_KERNEL);
                if (self->tx_buff.head == NULL) {
                        IRDA_ERROR("%s(), can't allocate memory for "
@@ -386,7 +385,7 @@ static int __irport_change_speed(struct irda_task *task)
        /* Locking notes : this function may be called from irq context with
         * spinlock, via irport_write_wakeup(), or from non-interrupt without
         * spinlock (from the task timer). Yuck !
-        * This is ugly, and unsafe is the spinlock is not already aquired.
+        * This is ugly, and unsafe is the spinlock is not already acquired.
         * This will be fixed when irda-task get rewritten.
         * Jean II */
        if (!spin_is_locked(&self->lock)) {
@@ -761,25 +760,20 @@ static inline void irport_receive(struct irport_cb *self)
 }
 
 /*
- * Function irport_interrupt (irq, dev_id, regs)
+ * Function irport_interrupt (irq, dev_id)
  *
  *    Interrupt handler
  */
-static irqreturn_t irport_interrupt(int irq, void *dev_id,
-                                   struct pt_regs *regs) 
+static irqreturn_t irport_interrupt(int irq, void *dev_id) 
 {
-       struct net_device *dev = (struct net_device *) dev_id;
+       struct net_device *dev = dev_id;
        struct irport_cb *self;
        int boguscount = 0;
        int iobase;
        int iir, lsr;
        int handled = 0;
 
-       if (!dev) {
-               IRDA_WARNING("%s() irq %d for unknown device.\n", __FUNCTION__, irq);
-               return IRQ_NONE;
-       }
-       self = (struct irport_cb *) dev->priv;
+       self = dev->priv;
 
        spin_lock(&self->lock);
 
@@ -1090,7 +1084,7 @@ static int __init irport_init(void)
 {
        int i;
 
-       for (i=0; (io[i] < 2000) && (i < 4); i++) {
+       for (i=0; (io[i] < 2000) && (i < ARRAY_SIZE(dev_self)); i++) {
                if (irport_open(i, io[i], irq[i]) != NULL)
                        return 0;
        }
@@ -1112,15 +1106,15 @@ static void __exit irport_cleanup(void)
 
         IRDA_DEBUG( 4, "%s()\n", __FUNCTION__);
 
-       for (i=0; i < 4; i++) {
+       for (i=0; i < ARRAY_SIZE(dev_self); i++) {
                if (dev_self[i])
                        irport_close(dev_self[i]);
        }
 }
 
-MODULE_PARM(io, "1-4i");
+module_param_array(io, int, NULL, 0);
 MODULE_PARM_DESC(io, "Base I/O addresses");
-MODULE_PARM(irq, "1-4i");
+module_param_array(irq, int, NULL, 0);
 MODULE_PARM_DESC(irq, "IRQ lines");
 
 MODULE_AUTHOR("Dag Brattli <dagb@cs.uit.no>");