diff options
-rw-r--r-- | drivers/scsi/aacraid/aachba.c | 6 | ||||
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c index b14f7cac30e9..ac108f9e2674 100644 --- a/drivers/scsi/aacraid/aachba.c +++ b/drivers/scsi/aacraid/aachba.c | |||
@@ -169,6 +169,10 @@ MODULE_PARM_DESC(numacb, "Request a limit to the number of adapter control block | |||
169 | int acbsize = -1; | 169 | int acbsize = -1; |
170 | module_param(acbsize, int, S_IRUGO|S_IWUSR); | 170 | module_param(acbsize, int, S_IRUGO|S_IWUSR); |
171 | MODULE_PARM_DESC(acbsize, "Request a specific adapter control block (FIB) size. Valid values are 512, 2048, 4096 and 8192. Default is to use suggestion from Firmware."); | 171 | MODULE_PARM_DESC(acbsize, "Request a specific adapter control block (FIB) size. Valid values are 512, 2048, 4096 and 8192. Default is to use suggestion from Firmware."); |
172 | |||
173 | int expose_physicals = 0; | ||
174 | module_param(expose_physicals, int, S_IRUGO|S_IWUSR); | ||
175 | MODULE_PARM_DESC(expose_physicals, "Expose physical components of the arrays. 0=off, 1=on"); | ||
172 | /** | 176 | /** |
173 | * aac_get_config_status - check the adapter configuration | 177 | * aac_get_config_status - check the adapter configuration |
174 | * @common: adapter to query | 178 | * @common: adapter to query |
@@ -1535,7 +1539,7 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd) | |||
1535 | return 0; | 1539 | return 0; |
1536 | } | 1540 | } |
1537 | } else { /* check for physical non-dasd devices */ | 1541 | } else { /* check for physical non-dasd devices */ |
1538 | if(dev->nondasd_support == 1){ | 1542 | if ((dev->nondasd_support == 1) || expose_physicals) { |
1539 | if (dev->in_reset) | 1543 | if (dev->in_reset) |
1540 | return -1; | 1544 | return -1; |
1541 | return aac_send_srb_fib(scsicmd); | 1545 | return aac_send_srb_fib(scsicmd); |
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index d67058f80816..6e4eafa4ecee 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -82,6 +82,8 @@ static LIST_HEAD(aac_devices); | |||
82 | static int aac_cfg_major = -1; | 82 | static int aac_cfg_major = -1; |
83 | char aac_driver_version[] = AAC_DRIVER_FULL_VERSION; | 83 | char aac_driver_version[] = AAC_DRIVER_FULL_VERSION; |
84 | 84 | ||
85 | extern int expose_physicals; | ||
86 | |||
85 | /* | 87 | /* |
86 | * Because of the way Linux names scsi devices, the order in this table has | 88 | * Because of the way Linux names scsi devices, the order in this table has |
87 | * become important. Check for on-board Raid first, add-in cards second. | 89 | * 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) | |||
394 | sdev->skip_ms_page_3f = 1; | 396 | sdev->skip_ms_page_3f = 1; |
395 | } | 397 | } |
396 | if ((sdev->type == TYPE_DISK) && | 398 | if ((sdev->type == TYPE_DISK) && |
399 | !expose_physicals && | ||
397 | (sdev_channel(sdev) != CONTAINER_CHANNEL)) { | 400 | (sdev_channel(sdev) != CONTAINER_CHANNEL)) { |
398 | struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; | 401 | struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; |
399 | if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) | 402 | if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) |
@@ -928,7 +931,7 @@ static int __devinit aac_probe_one(struct pci_dev *pdev, | |||
928 | * all containers are on the virtual channel 0 (CONTAINER_CHANNEL) | 931 | * all containers are on the virtual channel 0 (CONTAINER_CHANNEL) |
929 | * physical channels are address by their actual physical number+1 | 932 | * physical channels are address by their actual physical number+1 |
930 | */ | 933 | */ |
931 | if (aac->nondasd_support == 1) | 934 | if ((aac->nondasd_support == 1) || expose_physicals) |
932 | shost->max_channel = aac->maximum_num_channels; | 935 | shost->max_channel = aac->maximum_num_channels; |
933 | else | 936 | else |
934 | shost->max_channel = 0; | 937 | shost->max_channel = 0; |