scsi: pm80xx: Set stopped phy's linkrate to Disabled
authorChangyuan Lyu <changyuanl@google.com>
Fri, 8 Jul 2022 20:50:26 +0000 (13:50 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 14 Jul 2022 03:27:59 +0000 (23:27 -0400)
Negotiated link rate needs to be updated to 'Disabled' when phy is stopped.

Link: https://lore.kernel.org/r/20220708205026.969161-1-changyuanl@google.com
Reviewed-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Changyuan Lyu <changyuanl@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm80xx_hwi.c

index 01c5e8ff4cc5fbe41525fe64bcafa47a060e94ed..303cd05fec5064c4d34bc6b9f8829f8ff61955c7 100644 (file)
@@ -3723,8 +3723,12 @@ static int mpi_phy_stop_resp(struct pm8001_hba_info *pm8001_ha, void *piomb)
        pm8001_dbg(pm8001_ha, MSG, "phy:0x%x status:0x%x\n",
                   phyid, status);
        if (status == PHY_STOP_SUCCESS ||
-               status == PHY_STOP_ERR_DEVICE_ATTACHED)
+               status == PHY_STOP_ERR_DEVICE_ATTACHED) {
                phy->phy_state = PHY_LINK_DISABLE;
+               phy->sas_phy.phy->negotiated_linkrate = SAS_PHY_DISABLED;
+               phy->sas_phy.linkrate = SAS_PHY_DISABLED;
+       }
+
        return 0;
 }