/* Poll the Tangent type cards to see if we have work.  */
static void cops_poll(unsigned long ltdev)
/* Poll the Tangent type cards to see if we have work.  */
static void cops_poll(unsigned long ltdev)
{
	int ioaddr, status;
	int boguscount = 0;
	struct net_device *dev = (struct net_device *)ltdev;
	del_timer(&cops_timer);
	if(dev == NULL)
		return;
	ioaddr = dev->base_addr;
	do {
		status=inb(ioaddr+TANG_CARD_STATUS);
		if(status & TANG_RX_READY)
			cops_rx(dev);
		if(status & TANG_TX_READY)
			netif_wake_queue(dev);
		status = inb(ioaddr+TANG_CARD_STATUS);
	} while((++boguscount < 20) && (status&(TANG_RX_READY|TANG_TX_READY)));
	cops_timer.expires = jiffies + HZ/20;
	add_timer(&cops_timer);
	return;
}