/* Called from the interrupt service routine to acknowledge the TX DONE bits. This is a must if the irq is setup as edge triggered.  */
static void au1000_tx_ack(struct net_device *dev)
/* Called from the interrupt service routine to acknowledge the TX DONE bits. This is a must if the irq is setup as edge triggered.  */
static void au1000_tx_ack(struct net_device *dev)
{
	struct au1000_private *aup = netdev_priv(dev);
	volatile tx_dma_t *ptxd;
	ptxd = aup->tx_dma_ring[aup->tx_tail];
	while (ptxd->buff_stat & TX_T_DONE) {
		update_tx_stats(dev, ptxd->status);
		ptxd->buff_stat &= ~TX_T_DONE;
		ptxd->len = 0;
		au_sync();
		aup->tx_tail = (aup->tx_tail + 1) & (NUM_TX_DMA - 1);
		ptxd = aup->tx_dma_ring[aup->tx_tail];
		if (aup->tx_full) {
			aup->tx_full = 0;
			netif_wake_queue(dev);
		}
	}
}