patch-2.3.48 linux/drivers/net/irda/smc-ircc.c

Next file: linux/drivers/net/pcmcia/3c589_cs.c
Previous file: linux/drivers/net/irda/nsc-ircc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.47/linux/drivers/net/irda/smc-ircc.c linux/drivers/net/irda/smc-ircc.c
@@ -6,7 +6,7 @@
  * Status:        Experimental.
  * Author:        Thomas Davis (tadavis@jps.net)
  * Created at:    
- * Modified at:   Fri Jan 21 09:41:08 2000
+ * Modified at:   Tue Feb 22 10:05:06 2000
  * Modified by:   Dag Brattli <dagb@cs.uit.no>
  * 
  *     Copyright (c) 1999-2000 Dag Brattli
@@ -567,7 +567,6 @@
 			   "(), using irport to change speed to %d\n", speed);
 		irport_change_speed(self->irport, speed);
 	}	
-	dev->tbusy = 0;
 
 	register_bank(iobase, 1);
 	outb(((inb(iobase+IRCC_SCE_CFGA) & 0x87) | ir_mode), 
@@ -617,9 +616,7 @@
 	if ((speed = irda_get_speed(skb)) != self->io.speed)
 		self->new_speed = speed;
 	
-	/* Lock transmit buffer */
-	if (irda_lock((void *) &dev->tbusy) == FALSE)
-		return -EBUSY;
+	netif_stop_queue(dev);
 
 	memcpy(self->tx_buff.head, skb->data, skb->len);
 
@@ -741,11 +738,7 @@
 		self->new_speed = 0;
 	}
 
-	/* Unlock tx_buff and request another frame */
-	self->netdev->tbusy = 0; /* Unlock */
-	
-	/* Tell the network layer, that we can accept more frames */
-	mark_bh(NET_BH);
+	netif_wake_queue(self->netdev);
 }
 
 /*
@@ -875,7 +868,6 @@
 	iobase = self->io.fir_base;
 
 	spin_lock(&self->lock);	
-	dev->interrupt = 1;
 
 	register_bank(iobase, 0);
 	iir = inb(iobase+IRCC_IIR);
@@ -898,7 +890,6 @@
 	register_bank(iobase, 0);
 	outb(IRCC_IER_ACTIVE_FRAME|IRCC_IER_EOM, iobase+IRCC_IER);
 
-	dev->interrupt = 0;
 	spin_unlock(&self->lock);
 }
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)