#include <linux/ctype.h>
#include <linux/dma-mapping.h>
#include <linux/moduleparam.h>
+#include <linux/bitops.h>
-#include <asm/bitops.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/byteorder.h>
lp->asBitValid = TRUE;
lp->timeout = -1;
lp->gendev = gendev;
- lp->lock = (spinlock_t) SPIN_LOCK_UNLOCKED;
+ spin_lock_init(&lp->lock);
init_timer(&lp->timer);
de4x5_parse_params(dev);
** Re-initialize the DE4X5...
*/
status = de4x5_init(dev);
- lp->lock = (spinlock_t) SPIN_LOCK_UNLOCKED;
+ spin_lock_init(&lp->lock);
lp->state = OPEN;
de4x5_dbg_open(dev);
.remove = __devexit_p (de4x5_eisa_remove),
}
};
+MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids);
#endif
#ifdef CONFIG_PCI
u_long iobase = 0; /* Clear upper 32 bits in Alphas */
int i, j, cfrv;
struct de4x5_private *lp = netdev_priv(dev);
- struct list_head *walk = &pdev->bus_list;
+ struct list_head *walk;
- for (walk = walk->next; walk != &pdev->bus_list; walk = walk->next) {
+ list_for_each(walk, &pdev->bus_list) {
struct pci_dev *this_dev = pci_dev_b(walk);
/* Skip the pci_bus list entry */
return -ENODEV;
/* Ok, the device seems to be for us. */
- if (!(dev = alloc_etherdev (sizeof (struct de4x5_private))))
- return -ENOMEM;
+ if ((error = pci_enable_device (pdev)))
+ return error;
+
+ if (!(dev = alloc_etherdev (sizeof (struct de4x5_private)))) {
+ error = -ENOMEM;
+ goto disable_dev;
+ }
lp = netdev_priv(dev);
lp->bus = PCI;
release_region (iobase, DE4X5_PCI_TOTAL_SIZE);
free_dev:
free_netdev (dev);
+ disable_dev:
+ pci_disable_device (pdev);
return error;
}
unregister_netdev (dev);
free_netdev (dev);
release_region (iobase, DE4X5_PCI_TOTAL_SIZE);
+ pci_disable_device (pdev);
}
static struct pci_device_id de4x5_pci_tbl[] = {
lp->useMII = TRUE;
/* Search the MII address space for possible PHY devices */
- for (n=0, lp->mii_cnt=0, i=1; !((i==1) && (n==1)); i=(++i)%DE4X5_MAX_MII) {
+ for (n=0, lp->mii_cnt=0, i=1; !((i==1) && (n==1)); i=(i+1)%DE4X5_MAX_MII) {
lp->phy[lp->active].addr = i;
if (i==0) n++; /* Count cycles */
while (de4x5_reset_phy(dev)<0) udelay(100);/* Wait for reset */