aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/csiostor/csio_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/csiostor/csio_hw.c')
-rw-r--r--drivers/scsi/csiostor/csio_hw.c113
1 files changed, 4 insertions, 109 deletions
diff --git a/drivers/scsi/csiostor/csio_hw.c b/drivers/scsi/csiostor/csio_hw.c
index 19360551936..0eaec474895 100644
--- a/drivers/scsi/csiostor/csio_hw.c
+++ b/drivers/scsi/csiostor/csio_hw.c
@@ -852,22 +852,6 @@ csio_hw_get_flash_params(struct csio_hw *hw)
return 0;
}
-static void
-csio_set_pcie_completion_timeout(struct csio_hw *hw, u8 range)
-{
- uint16_t val;
- int pcie_cap;
-
- if (!csio_pci_capability(hw->pdev, PCI_CAP_ID_EXP, &pcie_cap)) {
- pci_read_config_word(hw->pdev,
- pcie_cap + PCI_EXP_DEVCTL2, &val);
- val &= 0xfff0;
- val |= range ;
- pci_write_config_word(hw->pdev,
- pcie_cap + PCI_EXP_DEVCTL2, val);
- }
-}
-
/*****************************************************************************/
/* HW State machine assists */
/*****************************************************************************/
@@ -1597,87 +1581,6 @@ out:
return rv;
}
-static int
-csio_config_global_rss(struct csio_hw *hw)
-{
- struct csio_mb *mbp;
- enum fw_retval retval;
-
- mbp = mempool_alloc(hw->mb_mempool, GFP_ATOMIC);
- if (!mbp) {
- CSIO_INC_STATS(hw, n_err_nomem);
- return -ENOMEM;
- }
-
- csio_rss_glb_config(hw, mbp, CSIO_MB_DEFAULT_TMO,
- FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL,
- FW_RSS_GLB_CONFIG_CMD_TNLMAPEN |
- FW_RSS_GLB_CONFIG_CMD_HASHTOEPLITZ |
- FW_RSS_GLB_CONFIG_CMD_TNLALLLKP,
- NULL);
-
- if (csio_mb_issue(hw, mbp)) {
- csio_err(hw, "Issue of FW_RSS_GLB_CONFIG_CMD failed!\n");
- mempool_free(mbp, hw->mb_mempool);
- return -EINVAL;
- }
-
- retval = csio_mb_fw_retval(mbp);
- if (retval != FW_SUCCESS) {
- csio_err(hw, "FW_RSS_GLB_CONFIG_CMD returned 0x%x!\n", retval);
- mempool_free(mbp, hw->mb_mempool);
- return -EINVAL;
- }
-
- mempool_free(mbp, hw->mb_mempool);
-
- return 0;
-}
-
-/*
- * csio_config_pfvf - Configure Physical/Virtual functions settings.
- * @hw: HW module
- *
- */
-static int
-csio_config_pfvf(struct csio_hw *hw)
-{
- struct csio_mb *mbp;
- enum fw_retval retval;
-
- mbp = mempool_alloc(hw->mb_mempool, GFP_ATOMIC);
- if (!mbp) {
- CSIO_INC_STATS(hw, n_err_nomem);
- return -ENOMEM;
- }
-
- /*
- * For now, allow all PFs to access to all ports using a pmask
- * value of 0xF (M_FW_PFVF_CMD_PMASK). Once we have VFs, we will
- * need to provide access based on some rule.
- */
- csio_mb_pfvf(hw, mbp, CSIO_MB_DEFAULT_TMO, hw->pfn, 0, CSIO_NEQ,
- CSIO_NETH_CTRL, CSIO_NIQ_FLINT, 0, 0, CSIO_NVI, CSIO_CMASK,
- CSIO_PMASK, CSIO_NEXACTF, CSIO_R_CAPS, CSIO_WX_CAPS, NULL);
-
- if (csio_mb_issue(hw, mbp)) {
- csio_err(hw, "Issue of FW_PFVF_CMD failed!\n");
- mempool_free(mbp, hw->mb_mempool);
- return -EINVAL;
- }
-
- retval = csio_mb_fw_retval(mbp);
- if (retval != FW_SUCCESS) {
- csio_err(hw, "FW_PFVF_CMD returned 0x%x!\n", retval);
- mempool_free(mbp, hw->mb_mempool);
- return -EINVAL;
- }
-
- mempool_free(mbp, hw->mb_mempool);
-
- return 0;
-}
-
/*
* csio_enable_ports - Bring up all available ports.
* @hw: HW module.
@@ -2056,16 +1959,6 @@ csio_hw_no_fwconfig(struct csio_hw *hw, int reset)
if (rv != 0)
goto out;
- /* Config Global RSS command */
- rv = csio_config_global_rss(hw);
- if (rv != 0)
- goto out;
-
- /* Configure PF/VF capabilities of device */
- rv = csio_config_pfvf(hw);
- if (rv != 0)
- goto out;
-
/* device parameters */
rv = csio_get_device_params(hw);
if (rv != 0)
@@ -2160,8 +2053,10 @@ csio_hw_configure(struct csio_hw *hw)
goto out;
}
- /* Set pci completion timeout value to 4 seconds. */
- csio_set_pcie_completion_timeout(hw, 0xd);
+ /* Set PCIe completion timeout to 4 seconds */
+ if (pci_is_pcie(hw->pdev))
+ pcie_capability_clear_and_set_word(hw->pdev, PCI_EXP_DEVCTL2,
+ PCI_EXP_DEVCTL2_COMP_TIMEOUT, 0xd);
hw->chip_ops->chip_set_mem_win(hw, MEMWIN_CSIOSTOR);