| Kernel v2.6.12-rc2 /drivers/net/irda/irport.c |
|---|
 2.6.12-rc2
 drivers
 net
 irda
 irport.c
diff -Nru a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
--- a/drivers/net/irda/irport.c 2005-04-04 09:40:41 -07:00
+++ b/drivers/net/irda/irport.c 2005-04-04 09:40:41 -07:00
@@ -87,50 +87,14 @@
static int irport_change_speed_complete(struct irda_task *task);
static void irport_timeout(struct net_device *dev);
-EXPORT_SYMBOL(irport_open);
-EXPORT_SYMBOL(irport_close);
-EXPORT_SYMBOL(irport_start);
-EXPORT_SYMBOL(irport_stop);
-EXPORT_SYMBOL(irport_interrupt);
-EXPORT_SYMBOL(irport_hard_xmit);
-EXPORT_SYMBOL(irport_timeout);
-EXPORT_SYMBOL(irport_change_speed);
-EXPORT_SYMBOL(irport_net_open);
-EXPORT_SYMBOL(irport_net_close);
+static irqreturn_t irport_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs);
+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);
+static int irport_net_close(struct net_device *dev);
-static int __init irport_init(void)
-{
- int i;
-
- for (i=0; (io[i] < 2000) && (i < 4); i++) {
- if (irport_open(i, io[i], irq[i]) != NULL)
- return 0;
- }
- /*
- * Maybe something failed, but we can still be usable for FIR drivers
- */
- return 0;
-}
-
-/*
- * Function irport_cleanup ()
- *
- * Close all configured ports
- *
- */
-static void __exit irport_cleanup(void)
-{
- int i;
-
- IRDA_DEBUG( 4, "%s()\n", __FUNCTION__);
-
- for (i=0; i < 4; i++) {
- if (dev_self[i])
- irport_close(dev_self[i]);
- }
-}
-
-struct irport_cb *
+static struct irport_cb *
irport_open(int i, unsigned int iobase, unsigned int irq)
{
struct net_device *dev;
@@ -150,8 +114,8 @@
*/
dev = alloc_irdadev(sizeof(struct irport_cb));
if (!dev) {
- ERROR("%s(), can't allocate memory for "
- "irda device!\n", __FUNCTION__);
+ IRDA_ERROR("%s(), can't allocate memory for "
+ "irda device!\n", __FUNCTION__);
goto err_out2;
}
@@ -183,8 +147,8 @@
self->rx_buff.skb = __dev_alloc_skb(self->rx_buff.truesize,
GFP_KERNEL);
if (self->rx_buff.skb == NULL) {
- ERROR("%s(), can't allocate memory for "
- "receive buffer!\n", __FUNCTION__);
+ IRDA_ERROR("%s(), can't allocate memory for "
+ "receive buffer!\n", __FUNCTION__);
goto err_out3;
}
skb_reserve(self->rx_buff.skb, 1);
@@ -204,8 +168,8 @@
self->tx_buff.head = (__u8 *) kmalloc(self->tx_buff.truesize,
GFP_KERNEL);
if (self->tx_buff.head == NULL) {
- ERROR("%s(), can't allocate memory for "
- "transmit buffer!\n", __FUNCTION__);
+ IRDA_ERROR("%s(), can't allocate memory for "
+ "transmit buffer!\n", __FUNCTION__);
goto err_out4;
}
memset(self->tx_buff.head, 0, self->tx_buff.truesize);
@@ -234,10 +198,10 @@
dev->irq = irq;
if (register_netdev(dev)) {
- ERROR("%s(), register_netdev() failed!\n", __FUNCTION__);
+ IRDA_ERROR("%s(), register_netdev() failed!\n", __FUNCTION__);
goto err_out5;
}
- MESSAGE("IrDA: Registered device %s (irport io=0x%X irq=%d)\n",
+ IRDA_MESSAGE("IrDA: Registered device %s (irport io=0x%X irq=%d)\n",
dev->name, iobase, irq);
return self;
@@ -254,9 +218,9 @@
return NULL;
}
-int irport_close(struct irport_cb *self)
+static int irport_close(struct irport_cb *self)
{
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
/* We are not using any dongle anymore! */
if (self->dongle)
@@ -285,40 +249,40 @@
return 0;
}
-void irport_start(struct irport_cb *self)
+static void irport_stop(struct irport_cb *self)
{
int iobase;
iobase = self->io.sir_base;
- irport_stop(self);
-
/* We can't lock, we may be called from a FIR driver - Jean II */
- /* Initialize UART */
- outb(UART_LCR_WLEN8, iobase+UART_LCR); /* Reset DLAB */
- outb((UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2), iobase+UART_MCR);
+ /* We are not transmitting any more */
+ self->transmitting = 0;
+
+ /* Reset UART */
+ outb(0, iobase+UART_MCR);
- /* Turn on interrups */
- outb(UART_IER_RLSI | UART_IER_RDI |UART_IER_THRI, iobase+UART_IER);
+ /* Turn off interrupts */
+ outb(0, iobase+UART_IER);
}
-void irport_stop(struct irport_cb *self)
+static void irport_start(struct irport_cb *self)
{
int iobase;
iobase = self->io.sir_base;
+ irport_stop(self);
+
/* We can't lock, we may be called from a FIR driver - Jean II */
- /* We are not transmitting any more */
- self->transmitting = 0;
-
- /* Reset UART */
- outb(0, iobase+UART_MCR);
+ /* Initialize UART */
+ outb(UART_LCR_WLEN8, iobase+UART_LCR); /* Reset DLAB */
+ outb((UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2), iobase+UART_MCR);
- /* Turn off interrupts */
- outb(0, iobase+UART_IER);
+ /* Turn on interrups */
+ outb(UART_IER_RLSI | UART_IER_RDI |UART_IER_THRI, iobase+UART_IER);
}
/*
@@ -368,7 +332,7 @@
*
* This function should be called with irq off and spin-lock.
*/
-void irport_change_speed(void *priv, __u32 speed)
+static void irport_change_speed(void *priv, __u32 speed)
{
struct irport_cb *self = (struct irport_cb *) priv;
int iobase;
@@ -376,8 +340,8 @@
unsigned int lcr; /* Line control reg */
int divisor;
- ASSERT(self != NULL, return;);
- ASSERT(speed != 0, return;);
+ IRDA_ASSERT(self != NULL, return;);
+ IRDA_ASSERT(speed != 0, return;);
IRDA_DEBUG(1, "%s(), Setting speed to: %d - iobase=%#x\n",
__FUNCTION__, speed, self->io.sir_base);
@@ -431,7 +395,7 @@
self = (struct irport_cb *) task->instance;
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
/* Locking notes : this function may be called from irq context with
* spinlock, via irport_write_wakeup(), or from non-interrupt without
@@ -480,7 +444,7 @@
irda_task_next_state(task, IRDA_TASK_CHILD_DONE);
break;
case IRDA_TASK_CHILD_WAIT:
- WARNING("%s(), changing speed of dongle timed out!\n", __FUNCTION__);
+ IRDA_WARNING("%s(), changing speed of dongle timed out!\n", __FUNCTION__);
ret = -1;
break;
case IRDA_TASK_CHILD_DONE:
@@ -490,7 +454,8 @@
irda_task_next_state(task, IRDA_TASK_DONE);
break;
default:
- ERROR("%s(), unknown state %d\n", __FUNCTION__, task->state);
+ IRDA_ERROR("%s(), unknown state %d\n",
+ __FUNCTION__, task->state);
irda_task_next_state(task, IRDA_TASK_DONE);
ret = -1;
break;
@@ -517,8 +482,8 @@
self = (struct irport_cb *) task->instance;
- ASSERT(self != NULL, return -1;);
- ASSERT(self->netdev != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self->netdev != NULL, return -1;);
/* Finished changing speed, so we are not busy any longer */
/* Signal network layer so it can try to send the frame */
@@ -543,10 +508,10 @@
unsigned long flags;
self = (struct irport_cb *) dev->priv;
- ASSERT(self != NULL, return;);
+ IRDA_ASSERT(self != NULL, return;);
iobase = self->io.sir_base;
- WARNING("%s: transmit timed out, jiffies = %ld, trans_start = %ld\n",
+ IRDA_WARNING("%s: transmit timed out, jiffies = %ld, trans_start = %ld\n",
dev->name, jiffies, dev->trans_start);
spin_lock_irqsave(&self->lock, flags);
@@ -619,7 +584,7 @@
* waits until the next transmitt interrupt, and continues until the
* frame is transmitted.
*/
-int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev)
+static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct irport_cb *self;
unsigned long flags;
@@ -628,10 +593,10 @@
IRDA_DEBUG(1, "%s()\n", __FUNCTION__);
- ASSERT(dev != NULL, return 0;);
+ IRDA_ASSERT(dev != NULL, return 0;);
self = (struct irport_cb *) dev->priv;
- ASSERT(self != NULL, return 0;);
+ IRDA_ASSERT(self != NULL, return 0;);
iobase = self->io.sir_base;
@@ -728,7 +693,7 @@
int iobase;
unsigned int fcr;
- ASSERT(self != NULL, return;);
+ IRDA_ASSERT(self != NULL, return;);
IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
@@ -789,7 +754,7 @@
int boguscount = 0;
int iobase;
- ASSERT(self != NULL, return;);
+ IRDA_ASSERT(self != NULL, return;);
iobase = self->io.sir_base;
@@ -814,7 +779,8 @@
*
* Interrupt handler
*/
-irqreturn_t irport_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t irport_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs)
{
struct net_device *dev = (struct net_device *) dev_id;
struct irport_cb *self;
@@ -824,7 +790,7 @@
int handled = 0;
if (!dev) {
- WARNING("%s() irq %d for unknown device.\n", __FUNCTION__, irq);
+ IRDA_WARNING("%s() irq %d for unknown device.\n", __FUNCTION__, irq);
return IRQ_NONE;
}
self = (struct irport_cb *) dev->priv;
@@ -861,8 +827,8 @@
/* Make sure we don't stay here to long */
if (boguscount++ > 10) {
- WARNING("%s() irq handler looping : lsr=%02x\n",
- __FUNCTION__, lsr);
+ IRDA_WARNING("%s() irq handler looping : lsr=%02x\n",
+ __FUNCTION__, lsr);
break;
}
@@ -888,7 +854,7 @@
* Network device is taken up. Usually this is done by "ifconfig irda0 up"
*
*/
-int irport_net_open(struct net_device *dev)
+static int irport_net_open(struct net_device *dev)
{
struct irport_cb *self;
int iobase;
@@ -897,7 +863,7 @@
IRDA_DEBUG(2, "%s()\n", __FUNCTION__);
- ASSERT(dev != NULL, return -1;);
+ IRDA_ASSERT(dev != NULL, return -1;);
self = (struct irport_cb *) dev->priv;
iobase = self->io.sir_base;
@@ -941,7 +907,7 @@
* Network device is taken down. Usually this is done by
* "ifconfig irda0 down"
*/
-int irport_net_close(struct net_device *dev)
+static int irport_net_close(struct net_device *dev)
{
struct irport_cb *self;
int iobase;
@@ -949,10 +915,10 @@
IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
- ASSERT(dev != NULL, return -1;);
+ IRDA_ASSERT(dev != NULL, return -1;);
self = (struct irport_cb *) dev->priv;
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
iobase = self->io.sir_base;
@@ -995,7 +961,7 @@
struct irport_cb *self = dev->priv;
int iobase;
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
iobase = self->io.sir_base;
@@ -1015,7 +981,7 @@
int actual = 0;
int iobase;
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
iobase = self->io.sir_base;
@@ -1049,11 +1015,11 @@
unsigned long flags;
int ret = 0;
- ASSERT(dev != NULL, return -1;);
+ IRDA_ASSERT(dev != NULL, return -1;);
self = dev->priv;
- ASSERT(self != NULL, return -1;);
+ IRDA_ASSERT(self != NULL, return -1;);
IRDA_DEBUG(2, "%s(), %s, (cmd=0x%X)\n", __FUNCTION__, dev->name, cmd);
@@ -1132,6 +1098,38 @@
struct irport_cb *self = (struct irport_cb *) dev->priv;
return &self->stats;
+}
+
+static int __init irport_init(void)
+{
+ int i;
+
+ for (i=0; (io[i] < 2000) && (i < 4); i++) {
+ if (irport_open(i, io[i], irq[i]) != NULL)
+ return 0;
+ }
+ /*
+ * Maybe something failed, but we can still be usable for FIR drivers
+ */
+ return 0;
+}
+
+/*
+ * Function irport_cleanup ()
+ *
+ * Close all configured ports
+ *
+ */
+static void __exit irport_cleanup(void)
+{
+ int i;
+
+ IRDA_DEBUG( 4, "%s()\n", __FUNCTION__);
+
+ for (i=0; i < 4; i++) {
+ if (dev_self[i])
+ irport_close(dev_self[i]);
+ }
}
MODULE_PARM(io, "1-4i");
|