static int hp100_probe1(struct net_device *dev, int ioaddr, u_char bus,
struct pci_dev *pci_dev);
-
static int hp100_open(struct net_device *dev);
static int hp100_close(struct net_device *dev);
static netdev_tx_t hp100_start_xmit(struct sk_buff *skb,
return hp100_probe1(dev, ioaddr, HP100_BUS_ISA, NULL);
err:
return -ENODEV;
-
}
/*
* Probe for ISA board.
/* Finally try to log in the Hub if there may be a VG connection. */
if ((lp->lan_type == HP100_LAN_100) || (lp->lan_type == HP100_LAN_ERR))
hp100_login_to_vg_hub(dev, 0); /* relogin */
-
}
-
/*
* mmuinit - Reinitialise Cascade MMU and MAC settings.
* Note: Must already be in reset and leaves card in reset.
return 0;
}
-
/*
* Configure the PDL Rx rings and LAN
*/
}
}
-
/* These functions "format" the entries in the pdl structure */
/* They return how much memory the fragments need. */
static int hp100_init_rxpdl(struct net_device *dev,
return roundup(MAX_RX_FRAG * 2 + 2, 4);
}
-
static int hp100_init_txpdl(struct net_device *dev,
register hp100_ring_t * ringptr,
register u32 * pdlptr)
return NETDEV_TX_OK;
}
-
/* clean_txring checks if packets have been sent by the card by reading
* the TX_PDL register from the performance page and comparing it to the
* number of committed packets. It then frees the skb's of the packets that
drop:
dev_kfree_skb(skb);
return NETDEV_TX_OK;
-
}
-
/*
* Receive Function (Non-Busmaster mode)
* Called when an "Receive Packet" interrupt occurs, i.e. the receive
hp100_outl((u32) lp->rxrtail->pdl_paddr, RX_PDA);
lp->rxrtail = lp->rxrtail->next;
}
-
}
}
spin_unlock_irqrestore(&lp->lock, flags);
}
-
/*
* multicast setup
*/
}
#endif
-
static void cleanup_dev(struct net_device *d)
{
struct hp100_private *p = netdev_priv(d);
pci_disable_device(pdev);
}
-
static struct pci_driver hp100_pci_driver = {
.name = "hp100",
.id_table = hp100_pci_tbl,
goto out;
}
-
static void __exit hp100_module_exit(void)
{
hp100_isa_cleanup();