static void tx_done_irq(struct atmel_private *priv){	int i;	for (i = 0; 	     atmel_rmem8(priv, atmel_tx(priv, TX_DESC_FLAGS_OFFSET, priv->tx_desc_head)) == TX_DONE &&		     i < priv->host_info.tx_desc_count;	     i++) {				u8 status = atmel_rmem8(priv, atmel_tx(priv, TX_DESC_STATUS_OFFSET, priv->tx_desc_head));		u16 msdu_size = atmel_rmem16(priv, atmel_tx(priv, TX_DESC_SIZE_OFFSET, priv->tx_desc_head));		u8 type = atmel_rmem8(priv, atmel_tx(priv, TX_DESC_PACKET_TYPE_OFFSET, priv->tx_desc_head));		atmel_wmem8(priv, atmel_tx(priv, TX_DESC_FLAGS_OFFSET, priv->tx_desc_head), 0);		priv->tx_free_mem += msdu_size;		priv->tx_desc_free++;		if (priv->tx_buff_head + msdu_size > (priv->host_info.tx_buff_pos + priv->host_info.tx_buff_size))			priv->tx_buff_head = 0;		else			priv->tx_buff_head += msdu_size;					if (priv->tx_desc_head < (priv->host_info.tx_desc_count - 1))			priv->tx_desc_head++ ;							else			priv->tx_desc_head = 0;				if (type == TX_PACKET_TYPE_DATA) {			if (status == TX_STATUS_SUCCESS)				priv->stats.tx_packets++;			else 				priv->stats.tx_errors++;			netif_wake_queue(priv->dev);		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4d791aadf63c9d605bc9a4144e79d5756fc29fb3/atmel.c/clean/drivers/net/wireless/atmel.c