--
Jeff Garzik | Liberty is always dangerous, but
Building 1024 | it is the safest thing we have.
MandrakeSoft, Inc. | -- Harry Emerson Fosdick
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/3w-xxxx.c
linux_2_3/drivers/scsi/3w-xxxx.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/3w-xxxx.c Wed Mar 8 14:40:25
2000
+++ linux_2_3/drivers/scsi/3w-xxxx.c Thu May 25 06:19:25 2000
@@ -565,6 +565,8 @@
dprintk(KERN_NOTICE "3w-xxxx: tw_findcards()\n");
while ((tw_pci_dev = pci_find_device(TW_VENDOR_ID, TW_DEVICE_ID, tw_pci_dev)))
{
+ if (pci_enable_device(tw_pci_dev))
+ continue;
/* Prepare temporary device extension */
tw_dev=(TW_Device_Extension *)kmalloc(sizeof(TW_Device_Extension),
GFP_ATOMIC);
if (tw_dev == NULL) {
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/AM53C974.c
linux_2_3/drivers/scsi/AM53C974.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/AM53C974.c Fri Nov 19 14:30:54
1999
+++ linux_2_3/drivers/scsi/AM53C974.c Thu May 25 06:19:25 2000
@@ -616,27 +616,23 @@
*
* Returns : number of host adapters detected
**************************************************************************/
-static __inline__ int AM53C974_pci_detect(Scsi_Host_Template * tpnt)
+static inline int AM53C974_pci_detect(Scsi_Host_Template * tpnt)
{
int count = 0; /* number of boards detected */
struct pci_dev *pdev = NULL;
unsigned short command;
while ((pdev = pci_find_device(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_SCSI,
pdev))) {
+ if (pci_enable_device(pdev))
+ continue;
pci_read_config_word(pdev, PCI_COMMAND, &command);
/* check whether device is I/O mapped -- should be */
if (!(command & PCI_COMMAND_IO))
continue;
- /* PCI Spec 2.1 states that it is either the driver's or the PCI
card's responsibility
- to set the PCI Master Enable Bit if needed.
- (from Mark Stockton <[EMAIL PROTECTED]>) */
- if (!(command & PCI_COMMAND_MASTER)) {
- command |= PCI_COMMAND_MASTER;
- printk("PCI Master Bit has not been set. Setting...\n");
- pci_write_config_word(pdev, PCI_COMMAND, command);
- }
+ pci_set_master (pdev);
+
/* everything seems OK now, so initialize */
if (AM53C974_init(tpnt, pdev))
count++;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/BusLogic.c
linux_2_3/drivers/scsi/BusLogic.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/BusLogic.c Sun May 21 14:38:47
2000
+++ linux_2_3/drivers/scsi/BusLogic.c Thu May 25 06:19:25 2000
@@ -775,6 +775,9 @@
unsigned long BaseAddress1 = PCI_Device->resource[1].start;
BusLogic_IO_Address_T IO_Address = BaseAddress0;
BusLogic_PCI_Address_T PCI_Address = BaseAddress1;
+
+ if (pci_enable_device(PCI_Device))
+ continue;
if (!(PCI_Device->resource[0].flags & PCI_BASE_ADDRESS_SPACE_IO))
{
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/advansys.c
linux_2_3/drivers/scsi/advansys.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/advansys.c Sun Mar 19 21:19:35
2000
+++ linux_2_3/drivers/scsi/advansys.c Thu May 25 06:19:26 2000
@@ -4699,7 +4699,8 @@
NULL) {
pci_device_id_cnt++;
} else {
- pci_devicep[pci_card_cnt_max++] = pci_devp;
+ if (pci_enable_device(pci_devp) == 0)
+ pci_devicep[pci_card_cnt_max++] = pci_devp;
}
}
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/aic7xxx.c
linux_2_3/drivers/scsi/aic7xxx.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/aic7xxx.c Sat Apr 29 01:50:14
2000
+++ linux_2_3/drivers/scsi/aic7xxx.c Thu May 25 06:19:28 2000
@@ -9551,14 +9551,15 @@
pdev = NULL;
while ((pdev = pci_find_device(aic_pdevs[i].vendor_id,
aic_pdevs[i].device_id,
- pdev)))
+ pdev))) {
+ if (pci_enable_device(pdev))
+ continue;
#else
index = 0;
while (!(pcibios_find_device(aic_pdevs[i].vendor_id,
aic_pdevs[i].device_id,
- index++, &pci_bus, &pci_devfn)) )
+ index++, &pci_bus, &pci_devfn)) ) {
#endif
- {
if ( i == 0 ) /* We found one, but it's the 7810 RAID cont. */
{
if (aic7xxx_verbose & (VERBOSE_PROBE|VERBOSE_PROBE2))
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/atp870u.c
linux_2_3/drivers/scsi/atp870u.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/atp870u.c Sun Mar 12 22:39:48
2000
+++ linux_2_3/drivers/scsi/atp870u.c Thu May 25 06:19:30 2000
@@ -1615,7 +1615,7 @@
h = 0;
while (devid[h] != 0) {
pdev[2] = pci_find_device(0x1191, devid[h], pdev[2]);
- if (pdev[2] == NULL) {
+ if (pdev[2] == NULL || pci_enable_device(pdev[2])) {
h++;
index = 0;
continue;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/dmx3191d.c
linux_2_3/drivers/scsi/dmx3191d.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/dmx3191d.c Mon Mar 27 12:48:11
2000
+++ linux_2_3/drivers/scsi/dmx3191d.c Thu May 25 06:19:30 2000
@@ -68,11 +68,10 @@
while ((pdev = pci_find_device(PCI_VENDOR_ID_DOMEX,
PCI_DEVICE_ID_DOMEX_DMX3191D, pdev))) {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,13)
- unsigned long port = pdev->base_address[0] & PCI_IOADDRESS_MASK;
-#else
- unsigned long port = pdev->resource[0].start;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,3,13) */
+ unsigned long port = pci_resource_start (pdev, 0);
+
+ if (pci_enable_device(pdev))
+ continue;
if (check_region(port, DMX3191D_REGION)) {
dmx3191d_printk("region 0x%lx-0x%lx already reserved\n",
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata.c
linux_2_3/drivers/scsi/eata.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata.c Tue Mar 21 17:43:39 2000
+++ linux_2_3/drivers/scsi/eata.c Thu May 25 06:19:30 2000
@@ -829,7 +829,9 @@
if (!(dev = pci_find_class(PCI_CLASS_STORAGE_SCSI << 8, dev))) break;
- if (pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &addr)) continue;
+ addr = pci_resource_start (dev, 0);
+
+ pci_enable_device (dev); /* XXX handle error */
#if defined(DEBUG_PCI_DETECT)
printk("%s: tune_pci_port, bus %d, devfn 0x%x, addr 0x%x.\n",
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata_dma.c
linux_2_3/drivers/scsi/eata_dma.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata_dma.c Wed Feb 9 21:40:23
2000
+++ linux_2_3/drivers/scsi/eata_dma.c Thu May 25 06:19:30 2000
@@ -1388,13 +1388,15 @@
#ifndef CONFIG_PCI
printk("eata_dma: kernel PCI support not enabled. Skipping scan for PCI HBAs.\n");
#else
- struct pci_dev *dev;
+ struct pci_dev *dev = NULL;
u32 base, x;
u8 pal1, pal2, pal3;
- for(dev=NULL; dev = pci_find_device(PCI_VENDOR_ID_DPT, PCI_DEVICE_ID_DPT, dev);) {
+ while ((dev = pci_find_device(PCI_VENDOR_ID_DPT, PCI_DEVICE_ID_DPT, dev)) !=
+NULL) {
DBG(DBG_PROBE && DBG_PCI,
printk("eata_dma: find_PCI, HBA at %s\n", dev->name));
+ if (pci_enable_device(dev))
+ continue;
pci_set_master(dev);
base = dev->resource[0].flags;
if (!(base & PCI_BASE_ADDRESS_SPACE_IO)) {
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata_pio.c
linux_2_3/drivers/scsi/eata_pio.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/eata_pio.c Fri Nov 19 14:30:54
1999
+++ linux_2_3/drivers/scsi/eata_pio.c Thu May 25 06:19:30 2000
@@ -878,12 +878,14 @@
#ifndef CONFIG_PCI
printk("eata_dma: kernel PCI support not enabled. Skipping scan for PCI HBAs.\n");
#else
- struct pci_dev *dev;
+ struct pci_dev *dev = NULL;
u32 base, x;
- for(dev=NULL; dev = pci_find_device(PCI_VENDOR_ID_DPT, PCI_DEVICE_ID_DPT, dev);) {
+ while ((dev = pci_find_device(PCI_VENDOR_ID_DPT, PCI_DEVICE_ID_DPT, dev)) !=
+NULL) {
DBG(DBG_PROBE && DBG_PCI,
printk("eata_pio: find_PCI, HBA at %s\n", dev->name));
+ if (pci_enable_device(dev))
+ continue;
pci_set_master(dev);
base = dev->resource[0].flags;
if (!(base & PCI_BASE_ADDRESS_SPACE_IO)) {
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/fdomain.c
linux_2_3/drivers/scsi/fdomain.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/fdomain.c Tue Feb 15 11:53:46
2000
+++ linux_2_3/drivers/scsi/fdomain.c Thu May 25 06:19:30 2000
@@ -828,6 +828,7 @@
PCI_DEVICE_ID_FD_36C70,
pdev)) == NULL)
return 0;
+ if (pci_enable_device(pdev)) return 0;
#if DEBUG_DETECT
printk( "scsi: <fdomain> TMC-3260 detect:"
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/gdth.c
linux_2_3/drivers/scsi/gdth.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/gdth.c Fri Jan 21 12:48:11 2000
+++ linux_2_3/drivers/scsi/gdth.c Thu May 25 06:19:30 2000
@@ -533,6 +533,8 @@
pdev = NULL;
while ((pdev = pci_find_device(PCI_VENDOR_ID_VORTEX,device_id,pdev))
!= NULL) {
+ if (pci_enable_device(pdev))
+ continue;
if (cnt >= MAXHA)
return cnt;
/* GDT PCI controller found, resources are already in pdev */
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/ini9100u.c
linux_2_3/drivers/scsi/ini9100u.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/ini9100u.c Wed May 10 19:56:43
2000
+++ linux_2_3/drivers/scsi/ini9100u.c Thu May 25 06:19:31 2000
@@ -290,6 +290,8 @@
for (i = 0; i < TULSZ(i91u_pci_devices); i++)
{
while ((pDev = pci_find_device(i91u_pci_devices[i].vendor_id,
i91u_pci_devices[i].device_id, pDev)) != NULL) {
+ if (pci_enable_device(pDev))
+ continue;
pci_read_config_dword(pDev, 0x44, (u32 *) & dRegValue);
wBIOS = (UWORD) (dRegValue & 0xFF);
if (((dRegValue & 0xFF00) >> 8) == 0xFF)
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/inia100.c
linux_2_3/drivers/scsi/inia100.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/inia100.c Mon Dec 13 02:30:55
1999
+++ linux_2_3/drivers/scsi/inia100.c Thu May 25 08:57:26 2000
@@ -247,6 +247,8 @@
inia100_pci_devices[i].device_id,
pdev)))
{
+ if (pci_enable_device(pdev))
+ continue;
if (iAdapters >= MAX_SUPPORTED_ADAPTERS)
break; /* Never greater than maximum */
@@ -261,23 +263,22 @@
*/
bPCIBusNum = pdev->bus->number;
bPCIDeviceNum = pdev->devfn;
- dRegValue = pdev->resource[0].start;
+ dRegValue = pci_resource_start(pdev, 0);
if (dRegValue == -1) { /* Check return code
*/
printk("\n\rinia100: orchid read
configuration error.\n");
return (0); /* Read configuration
space error */
}
+
/* <02> read from base address + 0x50 offset
to get the wBIOS balue. */
wBASE = (WORD) dRegValue;
- /* Now read the interrupt line */
+ /* Now read the interrupt line value */
dRegValue = pdev->irq;
- bInterrupt = dRegValue & 0xFF; /* Assign
interrupt line */
- pci_read_config_word(pdev, PCI_COMMAND,
&command);
- pci_write_config_word(pdev, PCI_COMMAND,
- command |
PCI_COMMAND_MASTER | PCI_COMMAND_IO);
+ bInterrupt = dRegValue; /* Assign
+interrupt line */
- wBASE &= PCI_BASE_ADDRESS_IO_MASK;
wBIOS = ORC_RDWORD(wBASE, 0x50);
+
+ pci_set_master(pdev);
#ifdef MMAPIO
base = wBASE & PAGE_MASK;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/ips.c
linux_2_3/drivers/scsi/ips.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/ips.c Wed Feb 9 21:40:23 2000
+++ linux_2_3/drivers/scsi/ips.c Thu May 25 06:19:31 2000
@@ -325,7 +325,8 @@
if (!(dev = pci_find_device(IPS_VENDORID, IPS_DEVICEID, dev)))
break;
-
+ if (pci_enable_device(dev))
+ break;
/* stuff that we get in dev */
irq = dev->irq;
bus = dev->bus->number;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/megaraid.c
linux_2_3/drivers/scsi/megaraid.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/megaraid.c Sun May 21 23:18:08
2000
+++ linux_2_3/drivers/scsi/megaraid.c Thu May 25 08:57:26 2000
@@ -1478,6 +1478,8 @@
struct pci_dev *pdev = NULL;
while ((pdev = pci_find_device (pciVendor, pciDev, pdev))) {
+ if (pci_enable_device(pdev))
+ continue;
if ((flag & BOARD_QUARTZ) && (skip_id == -1)) {
u16 magic;
pci_read_config_word(pdev, PCI_CONF_AMISIG, &magic);
@@ -1505,18 +1507,13 @@
}
/* Read the base port and IRQ from PCI */
- megaBase = pdev->resource[0].start;
+ megaBase = pci_resource_start (pdev, 0);
megaIrq = pdev->irq;
- if (flag & BOARD_QUARTZ) {
-
- megaBase &= PCI_BASE_ADDRESS_MEM_MASK;
+ if (flag & BOARD_QUARTZ)
megaBase = (long) ioremap (megaBase, 128);
- }
- else {
- megaBase &= PCI_BASE_ADDRESS_IO_MASK;
+ else
megaBase += 0x10;
- }
/* Initialize SCSI Host structure */
host = scsi_register (pHostTmpl, sizeof (mega_host_config));
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/pci2000.c
linux_2_3/drivers/scsi/pci2000.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/pci2000.c Fri Apr 21 19:46:32
2000
+++ linux_2_3/drivers/scsi/pci2000.c Thu May 25 08:57:26 2000
@@ -679,10 +679,12 @@
while ( (pdev = pci_find_device (VENDOR_PSI, DEVICE_ROY_1, pdev)) != NULL )
{
+ if (pci_enable_device(pdev))
+ continue;
pshost = scsi_register (tpnt, sizeof(ADAPTER2000));
padapter = HOSTDATA(pshost);
- padapter->basePort = pdev->resource[1].start &
PCI_BASE_ADDRESS_IO_MASK;
+ padapter->basePort = pci_resource_start (pdev, 1);
DEB (printk ("\nBase Regs = %#04X", padapter->basePort));
// get the base I/O port address
padapter->mb0 = padapter->basePort + RTR_MAILBOX;
// get the 32 bit mail boxes
padapter->mb1 = padapter->basePort + RTR_MAILBOX + 4;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/pci2220i.c
linux_2_3/drivers/scsi/pci2220i.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/pci2220i.c Fri Apr 21 19:46:32
2000
+++ linux_2_3/drivers/scsi/pci2220i.c Thu May 25 08:57:26 2000
@@ -2386,8 +2386,8 @@
memset (&DaleSetup, 0, sizeof (DaleSetup));
memset (DiskMirror, 0, sizeof (DiskMirror));
- zr = pcidev->resource[1].start & PCI_BASE_ADDRESS_IO_MASK;
- zl = pcidev->resource[2].start & PCI_BASE_ADDRESS_IO_MASK;
+ zr = pci_resource_start (pcidev, 1);
+ zl = pci_resource_start (pcidev, 2);
padapter->basePort = zr;
padapter->regRemap = zr + RTR_LOCAL_REMAP;
// 32 bit local space remap
@@ -2542,6 +2542,8 @@
while ( (pcidev = pci_find_device (VENDOR_PSI, DEVICE_DALE_1, pcidev)) != NULL
)
{
+ if (pci_enable_device(pcidev))
+ continue;
pshost = scsi_register (tpnt, sizeof(ADAPTER2220I));
padapter = HOSTDATA(pshost);
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qla1280.c
linux_2_3/drivers/scsi/qla1280.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qla1280.c Sat Feb 26 23:33:03
2000
+++ linux_2_3/drivers/scsi/qla1280.c Thu May 25 08:57:26 2000
@@ -801,13 +801,13 @@
for( i=0; bdp->device_id != 0 && i < NUM_OF_ISP_DEVICES; i++, bdp++ ) {
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,1,95)
while ((pdev = pci_find_device(QLA1280_VENDOR_ID,
- bdp->device_id, pdev ) ))
+ bdp->device_id, pdev ) )) {
+ if (pci_enable_device(pdev)) continue;
#else
while (!(pcibios_find_device(QLA1280_VENDOR_ID,
bdp->device_id,
- index++, &pci_bus, &pci_devfn)) )
+ index++, &pci_bus, &pci_devfn)) ) {
#endif
- {
/* found a adapter */
host = scsi_register(template, sizeof(scsi_qla_host_t));
ha = (scsi_qla_host_t *) host->hostdata;
@@ -817,9 +817,7 @@
/* Sanitize the information from PCI BIOS. */
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,1,95)
host->irq = pdev->irq;
-/* this depends on release 2.3.18 */
- host->io_port = pdev->resource[0].start;
-/* MRS host->io_port = (unsigned int) pdev->base_address[0]; */
+ host->io_port = pci_resource_start(pdev, 0);
ha->pci_bus = pdev->bus->number;
ha->pci_device_fn = pdev->devfn;
ha->pdev = pdev;
@@ -828,14 +826,13 @@
pcibios_read_config_dword(pci_bus, pci_devfn, OFFSET(cfgp->base_port),
&piobase);
host->irq = pci_irq;
host->io_port = (unsigned int) piobase;
+ host->io_port &= PCI_BASE_ADDRESS_IO_MASK;
ha->pci_bus = pci_bus;
ha->pci_device_fn = pci_devfn;
#endif
ha->device_id = bdp->device_id;
- host->io_port &= PCI_BASE_ADDRESS_IO_MASK;
ha->devnum = i;
- host->io_port &= PCI_BASE_ADDRESS_IO_MASK;
if( qla1280_mem_alloc(ha) ) {
printk(KERN_INFO "qla1280: Failed to allocate memory for
adapter\n");
}
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qlogicfc.c
linux_2_3/drivers/scsi/qlogicfc.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qlogicfc.c Wed Feb 23 16:37:35
2000
+++ linux_2_3/drivers/scsi/qlogicfc.c Thu May 25 06:19:36 2000
@@ -746,6 +746,8 @@
for (i=0; i<2; i++){
while ((pdev = pci_find_device(PCI_VENDOR_ID_QLOGIC, device_ids[i],
pdev))) {
+ if (pci_enable_device(pdev))
+ continue;
host = scsi_register(tmpt, sizeof(struct isp2x00_hostdata));
host->max_id = QLOGICFC_MAX_ID + 1;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qlogicisp.c
linux_2_3/drivers/scsi/qlogicisp.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/qlogicisp.c Mon Mar 27 13:35:56
2000
+++ linux_2_3/drivers/scsi/qlogicisp.c Thu May 25 06:19:36 2000
@@ -678,6 +678,9 @@
while ((pdev = pci_find_device(PCI_VENDOR_ID_QLOGIC,
PCI_DEVICE_ID_QLOGIC_ISP1020, pdev)))
{
+ if (pci_enable_device(pdev))
+ continue;
+
host = scsi_register(tmpt, sizeof(struct isp1020_hostdata));
hostdata = (struct isp1020_hostdata *) host->hostdata;
diff -urN vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/tmscsim.c
linux_2_3/drivers/scsi/tmscsim.c
--- vanilla/linux-2.3.99-pre10-pre3/drivers/scsi/tmscsim.c Fri Apr 21 19:08:45
2000
+++ linux_2_3/drivers/scsi/tmscsim.c Thu May 25 06:19:36 2000
@@ -2002,6 +2002,8 @@
if ( PCI_PRESENT )
while (PCI_FIND_DEVICE (PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD53C974))
{
+ if (pci_enable_device(pdev))
+ continue;
DC390_LOCK_IO; /* Remove this when going to new eh */
PCI_GET_IO_AND_IRQ;
DEBUG0(printk(KERN_INFO "DC390(%i): IO_PORT=%04x,IRQ=%x\n",
dc390_adapterCnt, (UINT) io_port, irq);)