aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci
diff options
context:
space:
mode:
authorJames Bottomley <JBottomley@Parallels.com>2012-09-13 04:26:10 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-09-13 04:26:10 -0400
commit1c4cf1d5845b59cdcbfad8e67272cf5b219ab062 (patch)
treec4ecdf7a4199bc20adcef950e9d5a38b9a6dc392 /drivers/scsi/isci
parent0bd1189e239c76eb3a50e458548fbe7e4a5dfff1 (diff)
parent6734092e66011def7875bd67beef889d0fee1cc9 (diff)
Merge tag 'isci-for-3.6' into for-next
isci update for 3.6 1/ Fix the workaround for drives that have a slow response to COMSAS. Drives with this problem intermittently take a long time to be identified, or fail to be identified altogether. 2/ A minor fix for the efi variable code failure path 3/ A handful of smatch fixups from Dan Carpenter
Diffstat (limited to 'drivers/scsi/isci')
-rw-r--r--drivers/scsi/isci/host.c2
-rw-r--r--drivers/scsi/isci/init.c1
-rw-r--r--drivers/scsi/isci/phy.c4
-rw-r--r--drivers/scsi/isci/probe_roms.c1
-rw-r--r--drivers/scsi/isci/remote_node_context.h2
5 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/isci/host.c b/drivers/scsi/isci/host.c
index 45385f53164..b425ed523cc 100644
--- a/drivers/scsi/isci/host.c
+++ b/drivers/scsi/isci/host.c
@@ -1973,7 +1973,7 @@ static void sci_controller_afe_initialization(struct isci_host *ihost)
1973 } 1973 }
1974 1974
1975 for (phy_id = 0; phy_id < SCI_MAX_PHYS; phy_id++) { 1975 for (phy_id = 0; phy_id < SCI_MAX_PHYS; phy_id++) {
1976 struct scu_afe_transceiver *xcvr = &afe->scu_afe_xcvr[phy_id]; 1976 struct scu_afe_transceiver __iomem *xcvr = &afe->scu_afe_xcvr[phy_id];
1977 const struct sci_phy_oem_params *oem_phy = &oem->phys[phy_id]; 1977 const struct sci_phy_oem_params *oem_phy = &oem->phys[phy_id];
1978 int cable_length_long = 1978 int cable_length_long =
1979 is_long_cable(phy_id, cable_selection_mask); 1979 is_long_cable(phy_id, cable_selection_mask);
diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
index 92c1d86d1fc..1286a8a787e 100644
--- a/drivers/scsi/isci/init.c
+++ b/drivers/scsi/isci/init.c
@@ -644,7 +644,6 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic
644 orom->hdr.version)) { 644 orom->hdr.version)) {
645 dev_warn(&pdev->dev, 645 dev_warn(&pdev->dev,
646 "[%d]: invalid oem parameters detected, falling back to firmware\n", i); 646 "[%d]: invalid oem parameters detected, falling back to firmware\n", i);
647 devm_kfree(&pdev->dev, orom);
648 orom = NULL; 647 orom = NULL;
649 break; 648 break;
650 } 649 }
diff --git a/drivers/scsi/isci/phy.c b/drivers/scsi/isci/phy.c
index 18f43d4c30b..cb87b2ef7c9 100644
--- a/drivers/scsi/isci/phy.c
+++ b/drivers/scsi/isci/phy.c
@@ -169,7 +169,7 @@ sci_phy_link_layer_initialization(struct isci_phy *iphy,
169 phy_cap.gen1_no_ssc = 1; 169 phy_cap.gen1_no_ssc = 1;
170 if (ihost->oem_parameters.controller.do_enable_ssc) { 170 if (ihost->oem_parameters.controller.do_enable_ssc) {
171 struct scu_afe_registers __iomem *afe = &ihost->scu_registers->afe; 171 struct scu_afe_registers __iomem *afe = &ihost->scu_registers->afe;
172 struct scu_afe_transceiver *xcvr = &afe->scu_afe_xcvr[phy_idx]; 172 struct scu_afe_transceiver __iomem *xcvr = &afe->scu_afe_xcvr[phy_idx];
173 struct isci_pci_info *pci_info = to_pci_info(ihost->pdev); 173 struct isci_pci_info *pci_info = to_pci_info(ihost->pdev);
174 bool en_sas = false; 174 bool en_sas = false;
175 bool en_sata = false; 175 bool en_sata = false;
@@ -1205,6 +1205,7 @@ static void scu_link_layer_start_oob(struct isci_phy *iphy)
1205 /** Reset OOB sequence - start */ 1205 /** Reset OOB sequence - start */
1206 val = readl(&ll->phy_configuration); 1206 val = readl(&ll->phy_configuration);
1207 val &= ~(SCU_SAS_PCFG_GEN_BIT(OOB_RESET) | 1207 val &= ~(SCU_SAS_PCFG_GEN_BIT(OOB_RESET) |
1208 SCU_SAS_PCFG_GEN_BIT(OOB_ENABLE) |
1208 SCU_SAS_PCFG_GEN_BIT(HARD_RESET)); 1209 SCU_SAS_PCFG_GEN_BIT(HARD_RESET));
1209 writel(val, &ll->phy_configuration); 1210 writel(val, &ll->phy_configuration);
1210 readl(&ll->phy_configuration); /* flush */ 1211 readl(&ll->phy_configuration); /* flush */
@@ -1236,6 +1237,7 @@ static void scu_link_layer_tx_hard_reset(
1236 * to the starting state. */ 1237 * to the starting state. */
1237 phy_configuration_value = 1238 phy_configuration_value =
1238 readl(&iphy->link_layer_registers->phy_configuration); 1239 readl(&iphy->link_layer_registers->phy_configuration);
1240 phy_configuration_value &= ~(SCU_SAS_PCFG_GEN_BIT(OOB_ENABLE));
1239 phy_configuration_value |= 1241 phy_configuration_value |=
1240 (SCU_SAS_PCFG_GEN_BIT(HARD_RESET) | 1242 (SCU_SAS_PCFG_GEN_BIT(HARD_RESET) |
1241 SCU_SAS_PCFG_GEN_BIT(OOB_RESET)); 1243 SCU_SAS_PCFG_GEN_BIT(OOB_RESET));
diff --git a/drivers/scsi/isci/probe_roms.c b/drivers/scsi/isci/probe_roms.c
index 4d95654c3fd..8ac646e5edd 100644
--- a/drivers/scsi/isci/probe_roms.c
+++ b/drivers/scsi/isci/probe_roms.c
@@ -104,7 +104,6 @@ struct isci_orom *isci_request_oprom(struct pci_dev *pdev)
104 104
105 if (i >= len) { 105 if (i >= len) {
106 dev_err(&pdev->dev, "oprom parse error\n"); 106 dev_err(&pdev->dev, "oprom parse error\n");
107 devm_kfree(&pdev->dev, rom);
108 rom = NULL; 107 rom = NULL;
109 } 108 }
110 pci_unmap_biosrom(oprom); 109 pci_unmap_biosrom(oprom);
diff --git a/drivers/scsi/isci/remote_node_context.h b/drivers/scsi/isci/remote_node_context.h
index a703b9ce0c2..c7ee81d0112 100644
--- a/drivers/scsi/isci/remote_node_context.h
+++ b/drivers/scsi/isci/remote_node_context.h
@@ -212,7 +212,7 @@ enum sci_status sci_remote_node_context_destruct(struct sci_remote_node_context
212 scics_sds_remote_node_context_callback callback, 212 scics_sds_remote_node_context_callback callback,
213 void *callback_parameter); 213 void *callback_parameter);
214enum sci_status sci_remote_node_context_suspend(struct sci_remote_node_context *sci_rnc, 214enum sci_status sci_remote_node_context_suspend(struct sci_remote_node_context *sci_rnc,
215 u32 suspend_type, 215 enum sci_remote_node_suspension_reasons reason,
216 u32 suspension_code); 216 u32 suspension_code);
217enum sci_status sci_remote_node_context_resume(struct sci_remote_node_context *sci_rnc, 217enum sci_status sci_remote_node_context_resume(struct sci_remote_node_context *sci_rnc,
218 scics_sds_remote_node_context_callback cb_fn, 218 scics_sds_remote_node_context_callback cb_fn,