Loading drivers/power/supply/qcom/smb-lib.c +13 −0 Original line number Diff line number Diff line Loading @@ -3688,6 +3688,7 @@ static void smblib_handle_typec_removal(struct smb_charger *chg) vote(chg->usb_icl_votable, DCP_VOTER, false, 0); vote(chg->usb_icl_votable, PL_USBIN_USBIN_VOTER, false, 0); vote(chg->usb_icl_votable, SW_QC3_VOTER, false, 0); vote(chg->usb_icl_votable, OTG_VOTER, false, 0); /* reset hvdcp voters */ vote(chg->hvdcp_disable_votable_indirect, VBUS_CC_SHORT_VOTER, true, 0); Loading Loading @@ -3849,6 +3850,12 @@ static void smblib_handle_typec_cc_state_change(struct smb_charger *chg) smblib_handle_typec_removal(chg); } /* suspend usb if sink */ if (chg->typec_status[3] & UFP_DFP_MODE_STATUS_BIT) vote(chg->usb_icl_votable, OTG_VOTER, true, 0); else vote(chg->usb_icl_votable, OTG_VOTER, false, 0); smblib_dbg(chg, PR_INTERRUPT, "IRQ: cc-state-change; Type-C %s detected\n", smblib_typec_mode_name[chg->typec_mode]); } Loading Loading @@ -3896,6 +3903,12 @@ irqreturn_t smblib_handle_usb_typec_change(int irq, void *data) return IRQ_HANDLED; } if (chg->pr_swap_in_progress) { smblib_dbg(chg, PR_INTERRUPT, "Ignoring since pr_swap_in_progress\n"); return IRQ_HANDLED; } mutex_lock(&chg->lock); smblib_usb_typec_change(chg); mutex_unlock(&chg->lock); Loading drivers/power/supply/qcom/smb-lib.h +1 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ enum print_reason { #define OTG_DELAY_VOTER "OTG_DELAY_VOTER" #define USBIN_I_VOTER "USBIN_I_VOTER" #define WEAK_CHARGER_VOTER "WEAK_CHARGER_VOTER" #define OTG_VOTER "OTG_VOTER" #define VCONN_MAX_ATTEMPTS 3 #define OTG_MAX_ATTEMPTS 3 Loading Loading
drivers/power/supply/qcom/smb-lib.c +13 −0 Original line number Diff line number Diff line Loading @@ -3688,6 +3688,7 @@ static void smblib_handle_typec_removal(struct smb_charger *chg) vote(chg->usb_icl_votable, DCP_VOTER, false, 0); vote(chg->usb_icl_votable, PL_USBIN_USBIN_VOTER, false, 0); vote(chg->usb_icl_votable, SW_QC3_VOTER, false, 0); vote(chg->usb_icl_votable, OTG_VOTER, false, 0); /* reset hvdcp voters */ vote(chg->hvdcp_disable_votable_indirect, VBUS_CC_SHORT_VOTER, true, 0); Loading Loading @@ -3849,6 +3850,12 @@ static void smblib_handle_typec_cc_state_change(struct smb_charger *chg) smblib_handle_typec_removal(chg); } /* suspend usb if sink */ if (chg->typec_status[3] & UFP_DFP_MODE_STATUS_BIT) vote(chg->usb_icl_votable, OTG_VOTER, true, 0); else vote(chg->usb_icl_votable, OTG_VOTER, false, 0); smblib_dbg(chg, PR_INTERRUPT, "IRQ: cc-state-change; Type-C %s detected\n", smblib_typec_mode_name[chg->typec_mode]); } Loading Loading @@ -3896,6 +3903,12 @@ irqreturn_t smblib_handle_usb_typec_change(int irq, void *data) return IRQ_HANDLED; } if (chg->pr_swap_in_progress) { smblib_dbg(chg, PR_INTERRUPT, "Ignoring since pr_swap_in_progress\n"); return IRQ_HANDLED; } mutex_lock(&chg->lock); smblib_usb_typec_change(chg); mutex_unlock(&chg->lock); Loading
drivers/power/supply/qcom/smb-lib.h +1 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ enum print_reason { #define OTG_DELAY_VOTER "OTG_DELAY_VOTER" #define USBIN_I_VOTER "USBIN_I_VOTER" #define WEAK_CHARGER_VOTER "WEAK_CHARGER_VOTER" #define OTG_VOTER "OTG_VOTER" #define VCONN_MAX_ATTEMPTS 3 #define OTG_MAX_ATTEMPTS 3 Loading