kernels/linux-2.4.0/drivers/net/tlan.c
/***************************************************************
	 *	TLan_HandleTxEOC
	 *
	 *	Returns:
	 *		1
	 *	Parms:
	 *		dev		Device assigned the IRQ that was
	 *				raised.
	 *		host_int	The contents of the HOST_INT
	 *				port.
	 *
	 *	This driver is structured to determine EOC occurances by
	 *	reading the CSTAT member of the list structure.  Tx EOC
	 *	interrupts are disabled via the DIO INTDIS register.
	 *	However, TLAN chips before revision 3.0 didn't have this
	 *	functionality, so process EOC events if this is the
	 *	case.
	 *
	 **************************************************************/
TLan_HandleTxEOC
Returns:
1
Parms:
dev             Device assigned the IRQ that was
raised.
host_int        The contents of the HOST_INT
port.

This driver is structured to determine EOC occurances by
reading the CSTAT member of the list structure.  Tx EOC
interrupts are disabled via the DIO INTDIS register.
However, TLAN chips before revision 3.0 didn't have this
functionality, so process EOC events if this is the
case.
TLan_HandleTxEOC Returns : 1 Parms : dev Device assigned the IRQ that was raised . host_int The contents of the HOST_INT port . This driver is structured to determine EOC occurances by reading the CSTAT member of the list structure . Tx EOC interrupts are disabled via the DIO INTDIS register . However TLAN chips before revision 3 . 0 didn ' t have this functionality so process EOC events if this is the case .
u32 TLan_HandleTxEOC( struct net_device *dev, u16 host_int )
{
	TLanPrivateInfo	*priv = (TLanPrivateInfo *) dev->priv;
	TLanList		*head_list;
	u32				ack = 1;
	host_int = 0;
	if ( priv->tlanRev < 0x30 ) {
		TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT:  Handling TX EOC (Head=%d Tail=%d) -- IRQ\n", priv->txHead, priv->txTail );
		head_list = priv->txList + priv->txHead;
		if ( ( head_list->cStat & TLAN_CSTAT_READY ) == TLAN_CSTAT_READY ) {
			outl( virt_to_bus( head_list ), dev->base_addr + TLAN_CH_PARM );
			ack |= TLAN_HC_GO;
		} else {
			priv->txInProgress = 0;
		}
	}
	return ack;
}
u32 TLan_HandleTxEOC ( struct net_device * dev , u16 host_int ) { TLanPrivateInfo * priv = ( TLanPrivateInfo * ) dev -> priv ; TLanList * head_list ; u32 ack = 1 ; host_int = 0 ; if ( priv -> tlanRev < 0x30 ) { TLAN_DBG ( TLAN_DEBUG_TX , " \n " , priv -> txHead , priv -> txTail ) ; head_list = priv -> txList + priv -> txHead ; if ( ( head_list -> cStat & TLAN_CSTAT_READY ) == TLAN_CSTAT_READY ) { outl ( virt_to_bus ( head_list ) , dev -> base_addr + TLAN_CH_PARM ) ; ack |= TLAN_HC_GO ; } else { priv -> txInProgress = 0 ; } } return ack ; }
TLan_HandleTxEOC
      Returns:
              1
      Parms:
              dev             Device assigned the IRQ that was
                              raised.
TLan_HandleTxEOC Returns : 1 Parms : dev Device assigned the IRQ that was raised .