diff options
author | Kevin Barnett <kevin.barnett@microsemi.com> | 2016-08-31 22:54:23 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-09-02 13:21:37 +0300 |
commit | 77668f412dbcd6a9dd04c92f0b170c5b5182a5fb (patch) | |
tree | 9bd915c6a8e7241094b305a2000cd70df2ad389c /drivers/scsi/smartpqi | |
parent | b17f048658c9b1bc8ac1d9a54b223f740c70f8fd (diff) | |
download | linux-77668f412dbcd6a9dd04c92f0b170c5b5182a5fb.tar.xz |
scsi: smartpqi: simplify spanning
Removed the workaround for the transition to spanning.
Reviewed-by: Scott Teel <scott.teel@microsemi.com>
Reviewed-by: Scott Benesh <scott.benesh@microsemi.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Kevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/smartpqi')
-rw-r--r-- | drivers/scsi/smartpqi/smartpqi_init.c | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 6eab38e0d5e9..9922e31f0b14 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -3663,6 +3663,18 @@ static int pqi_validate_device_capability(struct pqi_ctrl_info *ctrl_info) return -EINVAL; } + if (!ctrl_info->inbound_spanning_supported) { + dev_err(&ctrl_info->pci_dev->dev, + "the controller does not support inbound spanning\n"); + return -EINVAL; + } + + if (ctrl_info->outbound_spanning_supported) { + dev_err(&ctrl_info->pci_dev->dev, + "the controller supports outbound spanning but this driver does not\n"); + return -EINVAL; + } + return 0; } @@ -4138,24 +4150,14 @@ static void pqi_calculate_queue_resources(struct pqi_ctrl_info *ctrl_info) ctrl_info->num_queue_groups = num_queue_groups; - if (ctrl_info->max_inbound_iu_length_per_firmware == 256 && - ctrl_info->outbound_spanning_supported) { - /* - * TEMPHACK - * This is older f/w that doesn't actually support spanning. - */ - ctrl_info->max_inbound_iu_length = - PQI_OPERATIONAL_IQ_ELEMENT_LENGTH; - } else { - /* - * Make sure that the max. inbound IU length is an even multiple - * of our inbound element length. - */ - ctrl_info->max_inbound_iu_length = - (ctrl_info->max_inbound_iu_length_per_firmware / - PQI_OPERATIONAL_IQ_ELEMENT_LENGTH) * - PQI_OPERATIONAL_IQ_ELEMENT_LENGTH; - } + /* + * Make sure that the max. inbound IU length is an even multiple + * of our inbound element length. + */ + ctrl_info->max_inbound_iu_length = + (ctrl_info->max_inbound_iu_length_per_firmware / + PQI_OPERATIONAL_IQ_ELEMENT_LENGTH) * + PQI_OPERATIONAL_IQ_ELEMENT_LENGTH; num_elements_per_iq = (ctrl_info->max_inbound_iu_length / |