From ed1e4e94168334a5fb0bac8fc5662ac8a675c67c Mon Sep 17 00:00:00 2001 From: Yonghua Yan Date: Wed, 24 Apr 2019 22:44:19 +0800 Subject: [PATCH] power: qpnp-smbcharger-mmi: Handle DCIN presence The heartbeat_work breaks and output error log when accesses the DCIN status register for presence detection. As the DCIN is not supported in PMI632 chip and the address at 0x14XX is undefined, so it return -ENODEV when access it. So for PMI632 chip, just consider it as successful with data 0 returned for DCIN presence check. Mot-CRs-fixed: (CR) Change-Id: Id459296ec20bb679e1803b820be1bd288a1cdc75 Signed-off-by: Yonghua Yan Reviewed-on: https://gerrit.mot.com/1342040 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Kenneth Kessler Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/1355879 --- .../power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c index fff92d8417f2..57985929db75 100644 --- a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c +++ b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c @@ -1438,9 +1438,19 @@ static int get_prop_dc_present(struct smb_mmi_charger *chg, int rc; u8 stat; + /* + * PMI632 has no DCIN support and address at 0x14XX is undefined, + * so just return 0 to avoid too much err log and heatbeat_work + * break + */ + if (chg->smb_version == PMI632_SUBTYPE) { + val->intval = 0; + return 0; + } + rc = smblib_read_mmi(chg, DCIN_INT_RT_STS, &stat); if (rc < 0) { - pr_err("Couldn't read USBIN_RT_STS rc=%d\n", rc); + pr_err("Couldn't read DCIN_RT_STS rc=%d\n", rc); return rc; }