scsi: smartpqi: simplify spanning
authorKevin Barnett <kevin.barnett@microsemi.com>
Wed, 31 Aug 2016 19:54:23 +0000 (14:54 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 2 Sep 2016 10:21:37 +0000 (06:21 -0400)
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>
drivers/scsi/smartpqi/smartpqi_init.c

index 6eab38e0d5e91b9fd16e962a19ea54fd04f71494..9922e31f0b145f7c4c7f5e96c3524308c3d77529 100644 (file)
@@ -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 /