|
@@ -5687,6 +5687,16 @@ static int ufshcd_link_state_transition(struct ufs_hba *hba,
|
|
else if ((req_link_state == UIC_LINK_OFF_STATE) &&
|
|
else if ((req_link_state == UIC_LINK_OFF_STATE) &&
|
|
(!check_for_bkops || (check_for_bkops &&
|
|
(!check_for_bkops || (check_for_bkops &&
|
|
!hba->auto_bkops_enabled))) {
|
|
!hba->auto_bkops_enabled))) {
|
|
|
|
+ /*
|
|
|
|
+ * Let's make sure that link is in low power mode, we are doing
|
|
|
|
+ * this currently by putting the link in Hibern8. Otherway to
|
|
|
|
+ * put the link in low power mode is to send the DME end point
|
|
|
|
+ * to device and then send the DME reset command to local
|
|
|
|
+ * unipro. But putting the link in hibern8 is much faster.
|
|
|
|
+ */
|
|
|
|
+ ret = ufshcd_uic_hibern8_enter(hba);
|
|
|
|
+ if (ret)
|
|
|
|
+ goto out;
|
|
/*
|
|
/*
|
|
* Change controller state to "reset state" which
|
|
* Change controller state to "reset state" which
|
|
* should also put the link in off/reset state
|
|
* should also put the link in off/reset state
|