[8896] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

PATCH 2.3.99.10.3: scsi pci cleanups

daemon@ATHENA.MIT.EDU (Jeff Garzik)
Fri May 26 01:58:09 2000

Message-ID: <392E0F85.E81E7BF3@mandrakesoft.com>
Date:	Fri, 26 May 2000 01:45:41 -0400
From: Jeff Garzik <jgarzik@mandrakesoft.com>
MIME-Version: 1.0
To: Alan Cox <alan@redhat.com>, linux-scsi@vger.rutgers.edu
Content-Type: multipart/mixed;
 boundary="------------5BED3C6853A4758925A13A76"

This is a multi-part message in MIME format.
--------------5BED3C6853A4758925A13A76
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


-- 
Jeff Garzik              | Liberty is always dangerous, but
Building 1024            | it is the safest thing we have.
MandrakeSoft, Inc.       |      -- Harry Emerson Fosdick
--------------5BED3C6853A4758925A13A76
Content-Type: text/plain; charset=us-ascii;
 name="pci-scsi-2.3.99.10.3.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="pci-scsi-2.3.99.10.3.patch"

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 <marks@schooner.sys.hou.compaq.com>) */
-		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);)

--------------5BED3C6853A4758925A13A76--




-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu

home help back first fref pref prev next nref lref last post