From f59ca29be6947e07f800622a05f637e7fcc0eb0e Mon Sep 17 00:00:00 2001 From: Abhijeet Dharmapurikar Date: Mon, 5 Jun 2017 17:14:17 -0700 Subject: [PATCH] smb-lib: clear EXIT_SNK_BASED_ON_CC BIT after cable removal EXIT_SNK_BASED_ON_CC bit is only to be used while we are in hard reset. There is a possibility for that bit to remain set if cable were removed while a hard reset was in progress. Clear that bit in removal path Change-Id: I5e0776de9322a8015f851312df51a202e35c7a78 Signed-off-by: Abhijeet Dharmapurikar --- drivers/power/supply/qcom/smb-lib.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/power/supply/qcom/smb-lib.c b/drivers/power/supply/qcom/smb-lib.c index 7848ca4396d9..57bec70ab9ba 100644 --- a/drivers/power/supply/qcom/smb-lib.c +++ b/drivers/power/supply/qcom/smb-lib.c @@ -3651,6 +3651,13 @@ static void smblib_handle_typec_removal(struct smb_charger *chg) unlock: mutex_unlock(&chg->vconn_oc_lock); + /* clear exit sink based on cc */ + rc = smblib_masked_write(chg, TYPE_C_INTRPT_ENB_SOFTWARE_CTRL_REG, + EXIT_SNK_BASED_ON_CC_BIT, 0); + if (rc < 0) + smblib_err(chg, "Couldn't clear exit_sink_based_on_cc rc=%d\n", + rc); + typec_sink_removal(chg); smblib_update_usb_type(chg); }