Pull style into test branch
[powerpc.git] / drivers / scsi / aacraid / linit.c
index d67058f..359e7dd 100644 (file)
@@ -82,6 +82,8 @@ static LIST_HEAD(aac_devices);
 static int aac_cfg_major = -1;
 char aac_driver_version[] = AAC_DRIVER_FULL_VERSION;
 
+extern int expose_physicals;
+
 /*
  * Because of the way Linux names scsi devices, the order in this table has
  * become important.  Check for on-board Raid first, add-in cards second.
@@ -394,6 +396,7 @@ static int aac_slave_configure(struct scsi_device *sdev)
                sdev->skip_ms_page_3f = 1;
        }
        if ((sdev->type == TYPE_DISK) &&
+                       !expose_physicals &&
                        (sdev_channel(sdev) != CONTAINER_CHANNEL)) {
                struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata;
                if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2))
@@ -864,13 +867,6 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
         *      Map in the registers from the adapter.
         */
        aac->base_size = AAC_MIN_FOOTPRINT_SIZE;
-       if ((aac->regs.sa = ioremap(
-         (unsigned long)aac->scsi_host_ptr->base, AAC_MIN_FOOTPRINT_SIZE))
-         == NULL) {    
-               printk(KERN_WARNING "%s: unable to map adapter.\n",
-                 AAC_DRIVERNAME);
-               goto out_free_fibs;
-       }
        if ((*aac_drivers[index].init)(aac))
                goto out_unmap;
 
@@ -928,7 +924,7 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
         * all containers are on the virtual channel 0 (CONTAINER_CHANNEL)
         * physical channels are address by their actual physical number+1
         */
-       if (aac->nondasd_support == 1)
+       if ((aac->nondasd_support == 1) || expose_physicals)
                shost->max_channel = aac->maximum_num_channels;
        else
                shost->max_channel = 0;
@@ -969,8 +965,7 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
        aac_fib_map_free(aac);
        pci_free_consistent(aac->pdev, aac->comm_size, aac->comm_addr, aac->comm_phys);
        kfree(aac->queues);
-       iounmap(aac->regs.sa);
- out_free_fibs:
+       aac_adapter_ioremap(aac, 0);
        kfree(aac->fibs);
        kfree(aac->fsa_dev);
  out_free_host:
@@ -1005,7 +1000,7 @@ static void __devexit aac_remove_one(struct pci_dev *pdev)
        kfree(aac->queues);
 
        free_irq(pdev->irq, aac);
-       iounmap(aac->regs.sa);
+       aac_adapter_ioremap(aac, 0);
        
        kfree(aac->fibs);
        kfree(aac->fsa_dev);