summaryrefslogtreecommitdiffstats
path: root/drivers/atm
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atm')
-rw-r--r--drivers/atm/ambassador.c7
-rw-r--r--drivers/atm/fore200e.c6
-rw-r--r--drivers/atm/horizon.c12
-rw-r--r--drivers/atm/iphase.c14
-rw-r--r--drivers/atm/nicstar.c8
-rw-r--r--drivers/atm/suni.c4
-rw-r--r--drivers/atm/zatm.c1
7 files changed, 30 insertions, 22 deletions
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
index 151704c95..47530fa6f 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -2372,8 +2372,8 @@ static int __init amb_probe (void) {
// read resources from PCI configuration space
u8 irq = pci_dev->irq;
- u32 * membase = bus_to_virt (pci_dev->resource[0].start);
- u32 iobase = pci_dev->resource[1].start;
+ u32 * membase = bus_to_virt (pci_resource_start (pci_dev, 0));
+ u32 iobase = pci_resource_start (pci_dev, 1);
void setup_dev (void) {
unsigned char pool;
@@ -2419,6 +2419,9 @@ static int __init amb_probe (void) {
void setup_pci_dev (void) {
unsigned char lat;
+ /* XXX check return value */
+ pci_enable_device (pci_dev);
+
// enable bus master accesses
pci_set_master (pci_dev);
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index d9d5a66c5..6bee2f68d 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -647,6 +647,9 @@ fore200e_pca_detect(const struct fore200e_bus* bus, int index)
if (pci_dev == NULL)
return NULL;
} while (count--);
+
+ if (pci_enable_device(pci_dev))
+ return NULL;
fore200e = fore200e_kmalloc(sizeof(struct fore200e), GFP_KERNEL);
if (fore200e == NULL)
@@ -655,7 +658,7 @@ fore200e_pca_detect(const struct fore200e_bus* bus, int index)
fore200e->bus = bus;
fore200e->bus_dev = pci_dev;
fore200e->irq = pci_dev->irq;
- fore200e->phys_base = (pci_dev->resource[0].start & PCI_BASE_ADDRESS_MEM_MASK);
+ fore200e->phys_base = pci_resource_start (pci_dev, 0);
#if defined(__powerpc__)
fore200e->phys_base += KERNELBASE;
@@ -663,7 +666,6 @@ fore200e_pca_detect(const struct fore200e_bus* bus, int index)
sprintf(fore200e->name, "%s-%d", bus->model_name, index - 1);
- pci_enable_device(pci_dev);
pci_set_master(pci_dev);
return fore200e;
diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
index f39845f85..dc39a1ce5 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -2759,9 +2759,6 @@ static int __init hrz_probe (void) {
PRINTD (DBG_FLOW, "hrz_probe");
- if (!pci_present())
- return 0;
-
devs = 0;
pci_dev = NULL;
while ((pci_dev = pci_find_device
@@ -2770,8 +2767,8 @@ static int __init hrz_probe (void) {
hrz_dev * dev;
// adapter slot free, read resources from PCI configuration space
- u32 iobase = pci_dev->resource[0].start;
- u32 * membase = bus_to_virt (pci_dev->resource[1].start);
+ u32 iobase = pci_resource_start (pci_dev, 0);
+ u32 * membase = bus_to_virt (pci_resource_start (pci_dev, 1));
u8 irq = pci_dev->irq;
// check IO region
@@ -2779,7 +2776,10 @@ static int __init hrz_probe (void) {
PRINTD (DBG_WARN, "IO range already in use");
continue;
}
-
+
+ if (pci_enable_device (pci_dev))
+ continue;
+
dev = kmalloc (sizeof(hrz_dev), GFP_KERNEL);
if (!dev) {
// perhaps we should be nice: deregister all adapters and abort?
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index cd1714a53..4882bfe19 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -81,7 +81,8 @@ static unsigned char ia_phy_get(struct atm_dev *dev, unsigned long addr);
static IADEV *ia_dev[8] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
static struct atm_dev *_ia_dev[8] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
static int iadev_count = 0;
-static struct timer_list ia_timer;
+static void ia_led_timer(unsigned long arg);
+static struct timer_list ia_timer = { function: ia_led_timer };
struct atm_vcc *vcc_close_que[100];
static int IA_TX_BUF = DFL_TX_BUFFERS, IA_TX_BUF_SZ = DFL_TX_BUF_SZ;
static int IA_RX_BUF = DFL_RX_BUFFERS, IA_RX_BUF_SZ = DFL_RX_BUF_SZ;
@@ -2728,11 +2729,7 @@ static int ia_open(struct atm_vcc *vcc, short vpi, int vci)
{
static u8 first = 1;
if (first) {
- ia_timer.next = NULL;
- ia_timer.prev = NULL;
ia_timer.expires = jiffies + 3*HZ;
- ia_timer.data = 0UL;
- ia_timer.function = ia_led_timer;
add_timer(&ia_timer);
first = 0;
}
@@ -3206,6 +3203,7 @@ __initfunc(int ia_detect(void))
IF_INIT(printk("ia detected at bus:%d dev: %d function:%d\n",
iadev->pci->bus->number, PCI_SLOT(iadev->pci->devfn),
PCI_FUNC(iadev->pci->devfn));)
+ if (pci_enable_device(iadev->pci)) break;
dev = atm_dev_register(DEV_LABEL, &ops, -1, NULL);
if (!dev) break;
IF_INIT(printk(DEV_LABEL "registered at (itf :%d)\n",
@@ -3254,11 +3252,7 @@ int init_module(void)
return -ENXIO;
}
// MOD_INC_USE_COUNT;
- ia_timer.next = NULL;
- ia_timer.prev = NULL;
ia_timer.expires = jiffies + 3*HZ;
- ia_timer.data = 0UL;
- ia_timer.function = ia_led_timer;
add_timer(&ia_timer);
return 0;
@@ -3319,4 +3313,4 @@ void cleanup_module(void)
}
#endif
-
+
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
index 767fd75fb..20d7c0766 100644
--- a/drivers/atm/nicstar.c
+++ b/drivers/atm/nicstar.c
@@ -452,6 +452,14 @@ static int ns_init_card(int i, struct pci_dev *pcidev)
error = 0;
+ if (pci_enable_device(pcidev))
+ {
+ printk("nicstar%d: can't enable PCI device\n", i);
+ error = 2;
+ ns_init_card_error(card, error);
+ return error;
+ }
+
if ((card = kmalloc(sizeof(ns_dev), GFP_KERNEL)) == NULL)
{
printk("nicstar%d: can't allocate memory for device structure.\n", i);
diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
index 0de6e8ead..7af56d481 100644
--- a/drivers/atm/suni.c
+++ b/drivers/atm/suni.c
@@ -254,8 +254,8 @@ static int suni_start(struct atm_dev *dev)
poll_timer.function = suni_hz;
poll_timer.data = 1;
#if 0
-printk(KERN_DEBUG "[u] p=0x%lx,n=0x%lx\n",(unsigned long) poll_timer.prev,
- (unsigned long) poll_timer.next);
+printk(KERN_DEBUG "[u] p=0x%lx,n=0x%lx\n",(unsigned long) poll_timer.list.prev,
+ (unsigned long) poll_timer.list.next);
#endif
add_timer(&poll_timer);
}
diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
index 1b68f5529..576f51aad 100644
--- a/drivers/atm/zatm.c
+++ b/drivers/atm/zatm.c
@@ -1811,6 +1811,7 @@ int __init zatm_detect(void)
while ((pci_dev = pci_find_device(PCI_VENDOR_ID_ZEITNET,type ?
PCI_DEVICE_ID_ZEITNET_1225 : PCI_DEVICE_ID_ZEITNET_1221,
pci_dev))) {
+ if (pci_enable_device(pci_dev)) break;
dev = atm_dev_register(DEV_LABEL,&ops,-1,NULL);
if (!dev) break;
zatm_dev->pci_dev = pci_dev;