isci: Change the phy control and link reset interface for HW reasons.
authorJeff Skirvin <[email protected]>
Fri, 9 Mar 2012 06:42:07 +0000 (22:42 -0800)
committerDan Williams <[email protected]>
Thu, 17 May 2012 21:33:42 +0000 (14:33 -0700)
There is an apparent HW lockup caused when the PE is disabled while there
is an outstanding TC in progress.  This change puts the link into OOB to
force the TC to end before the PE is disabled.

Signed-off-by: Jeff Skirvin <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
drivers/scsi/isci/phy.c

index 85b26ac9074c688bcc2ecaa8b58c81a198adab8f..18f43d4c30baf8e37177eac41c8b817d7c8bcb1d 100644 (file)
@@ -1442,12 +1442,14 @@ int isci_phy_control(struct asd_sas_phy *sas_phy,
        switch (func) {
        case PHY_FUNC_DISABLE:
                spin_lock_irqsave(&ihost->scic_lock, flags);
+               scu_link_layer_start_oob(iphy);
                sci_phy_stop(iphy);
                spin_unlock_irqrestore(&ihost->scic_lock, flags);
                break;
 
        case PHY_FUNC_LINK_RESET:
                spin_lock_irqsave(&ihost->scic_lock, flags);
+               scu_link_layer_start_oob(iphy);
                sci_phy_stop(iphy);
                sci_phy_start(iphy);
                spin_unlock_irqrestore(&ihost->scic_lock, flags);