]> Pileus Git - ~andy/linux/commitdiff
isci: fix COMSAS negation timout workaround for WD SAS drives
authorDave Maurer <david.c.maurer@intel.com>
Fri, 22 Jun 2012 06:45:33 +0000 (06:45 +0000)
committerDan Williams <dan.j.williams@intel.com>
Tue, 3 Jul 2012 19:09:30 +0000 (12:09 -0700)
The following patch is a fix for the WD workaround
COMSAS negation timeout change. This patch disables the
OOB SM when the OOB is placed in reset, which allows
the updated COMSAS negation timeout value to take
effect.

Cc: Dan Thompson <daniel.j.thompson@intel.com>
Reported-by: Dan Thompson <daniel.j.thompson@intel.com>
Signed-off-by: Dave Maurer <david.c.maurer@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/phy.c

index 18f43d4c30baf8e37177eac41c8b817d7c8bcb1d..ebb8f530f7080f97743159cc6c12ecc7411f7725 100644 (file)
@@ -1205,6 +1205,7 @@ static void scu_link_layer_start_oob(struct isci_phy *iphy)
        /** Reset OOB sequence - start */
        val = readl(&ll->phy_configuration);
        val &= ~(SCU_SAS_PCFG_GEN_BIT(OOB_RESET) |
+                SCU_SAS_PCFG_GEN_BIT(OOB_ENABLE) |
                 SCU_SAS_PCFG_GEN_BIT(HARD_RESET));
        writel(val, &ll->phy_configuration);
        readl(&ll->phy_configuration); /* flush */
@@ -1236,6 +1237,7 @@ static void scu_link_layer_tx_hard_reset(
         * to the starting state. */
        phy_configuration_value =
                readl(&iphy->link_layer_registers->phy_configuration);
+       phy_configuration_value &= ~(SCU_SAS_PCFG_GEN_BIT(OOB_ENABLE));
        phy_configuration_value |=
                (SCU_SAS_PCFG_GEN_BIT(HARD_RESET) |
                 SCU_SAS_PCFG_GEN_BIT(OOB_RESET));