summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-02-15 17:01:02 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-15 17:01:01 -0800
commitfcc0fdda2cf35828e5454e0e5e47a2cf02fa59b3 (patch)
tree7647a2ac3eb2defd7e2cc0d06e50ba51bd65989d
parent36046ff503c77419af5aa99e08ebc3dae2726078 (diff)
parenta32405cd87460b6d690225492930d1448ff93f53 (diff)
Merge "scsi: ufs: handle LINERESET error only during hibern8 enter"
-rw-r--r--drivers/scsi/ufs/ufshcd.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 2776d4d97beb..f5d7cd0f4701 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -4332,13 +4332,9 @@ int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
ret = ufshcd_uic_pwr_ctrl(hba, &uic_cmd);
trace_ufshcd_profile_hibern8(dev_name(hba->dev), "exit",
ktime_to_us(ktime_sub(ktime_get(), start)), ret);
- /*
- * Do full reinit if exit failed or if LINERESET was detected during
- * Hibern8 operation. After LINERESET, link moves to default PWM-G1
- * mode hence full reinit is required to move link to HS speeds.
- */
- if (ret || hba->full_init_linereset) {
- hba->full_init_linereset = false;
+
+ /* Do full reinit if exit failed */
+ if (ret) {
ufshcd_update_error_stats(hba, UFS_ERR_HIBERN8_EXIT);
dev_err(hba->dev, "%s: hibern8 exit failed. ret = %d",
__func__, ret);
@@ -6083,14 +6079,16 @@ static irqreturn_t ufshcd_update_uic_error(struct ufs_hba *hba)
__func__, reg);
ufshcd_update_uic_reg_hist(&hba->ufs_stats.pa_err, reg);
- /* Don't ignore LINERESET indication during hibern8 operation */
+ /*
+ * Don't ignore LINERESET indication during hibern8
+ * enter operation.
+ */
if (reg & UIC_PHY_ADAPTER_LAYER_GENERIC_ERROR) {
struct uic_command *cmd = hba->active_uic_cmd;
if (cmd) {
- if ((cmd->command == UIC_CMD_DME_HIBER_ENTER)
- || (cmd->command == UIC_CMD_DME_HIBER_EXIT)) {
- dev_err(hba->dev, "%s: LINERESET during hibern8, reg 0x%x\n",
+ if (cmd->command == UIC_CMD_DME_HIBER_ENTER) {
+ dev_err(hba->dev, "%s: LINERESET during hibern8 enter, reg 0x%x\n",
__func__, reg);
hba->full_init_linereset = true;
}