kernels/linux-2.4.0/drivers/net/3c527.c
/**
 *	mc32_tx_begin:
 *	@dev: 3c527 to enable
 *
 *	We wait for any pending command to complete and then issue 
 *	a start transmit command to the board itself. At this point 
 *	transmit handling continues as it was before. The ring must
 *	be setup before you do this and must have an end marker in it.
 *	It turns out we can avoid issuing this specific command when
 *	doing our setup so we avoid it.
 */
@dev: 3c527 to enable

We wait for any pending command to complete and then issue
a start transmit command to the board itself. At this point
transmit handling continues as it was before. The ring must
be setup before you do this and must have an end marker in it.
It turns out we can avoid issuing this specific command when
doing our setup so we avoid it.
@dev : 3c527 to enable We wait for any pending command to complete and then issue a start transmit command to the board itself . At this point transmit handling continues as it was before . The ring must be setup before you do this and must have an end marker in it . It turns out we can avoid issuing this specific command when doing our setup so we avoid it .
static void mc32_tx_begin(struct net_device *dev)
{
	struct mc32_local *lp = (struct mc32_local *)dev->priv;
	int ioaddr = dev->base_addr;
	while(!(inb(ioaddr+HOST_STATUS)&HOST_STATUS_CRR));
	lp->tx_box->mbox=0;
#if 0	
	outb(5, ioaddr+HOST_CMD);	
	printk("TX=>5\n");
	mc32_ring_poll(dev);	
	if(lp->tx_box->mbox&(1<<13))
		printk("TX begin error!\n");
#endif		
	lp->tx_halted=0;
}
static void mc32_tx_begin ( struct net_device * dev ) { struct mc32_local * lp = ( struct mc32_local * ) dev -> priv ; int ioaddr = dev -> base_addr ; while ( ! ( inb ( ioaddr + HOST_STATUS ) & HOST_STATUS_CRR ) ) ; lp -> tx_box -> mbox = 0 ; #if 0 outb ( 5 , ioaddr + HOST_CMD ) ; printk ( " \n " ) ; mc32_ring_poll ( dev ) ; if ( lp -> tx_box -> mbox & ( 1 << 13 ) ) printk ( " \n " ) ; #endif lp -> tx_halted = 0 ; }
mc32_tx_begin:
      @dev: 3c527 to enable
mc32_tx_begin : @dev : 3c527 to enable
/* GO */