From 56a6f88a34d1c0e0a12037c3330ef5ad53deef85 Mon Sep 17 00:00:00 2001 From: Mao Jinlong Date: Thu, 5 Jan 2017 19:37:08 +0800 Subject: [PATCH] input: qpnp-power-on: set boot_reason when system-reset exists Some platforms don't configure qcom,secondary-pon-reset like 8998. So set boot_reason when "qcom,system-reset" node exists to avoid setting a wrong value to boot_reason. CRs-Fixed: 1102732 Change-Id: I9e9ff2f2d0ffac6baa5d0663664001eb30638e87 Signed-off-by: Mao Jinlong --- drivers/input/misc/qpnp-power-on.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/input/misc/qpnp-power-on.c b/drivers/input/misc/qpnp-power-on.c index e1c16aa5da43..add11d47ea2f 100644 --- a/drivers/input/misc/qpnp-power-on.c +++ b/drivers/input/misc/qpnp-power-on.c @@ -2084,6 +2084,9 @@ static int qpnp_pon_probe(struct platform_device *pdev) return rc; } + if (sys_reset) + boot_reason = ffs(pon_sts); + index = ffs(pon_sts) - 1; cold_boot = !qpnp_pon_is_warm_reset(); if (index >= ARRAY_SIZE(qpnp_pon_reason) || index < 0) { @@ -2297,8 +2300,6 @@ static int qpnp_pon_probe(struct platform_device *pdev) list_add(&pon->list, &spon_dev_list); spin_unlock_irqrestore(&spon_list_slock, flags); pon->is_spon = true; - } else { - boot_reason = ffs(pon_sts); } /* config whether store the hard reset reason */