From bcb890a074ef9fca95f9a5e246e349ad8b8c691f Mon Sep 17 00:00:00 2001 From: zhuwg1 Date: Wed, 15 Dec 2021 19:56:30 +0800 Subject: [PATCH] mmi_charger:use orderly shutdown in factory mode On user-debug build, use an orderly shutdown for factory kill instead of a kernel power off. The orderly shutdown will attempt to call the reboot binary from userspace first, and then fallback to kernel power off if it fails. Change-Id: Ia3d80b828670a5098afccbca2d934f9d32255a93 Signed-off-by: zhuwg1 Reviewed-on: https://gerrit.mot.com/2145390 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Yonghua Yan Reviewed-by: Xiangpo Zhao Submit-Approved: Jira Key --- drivers/power/mmi_charger/Kbuild | 4 ++++ drivers/power/mmi_charger/mmi_charger.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/power/mmi_charger/Kbuild b/drivers/power/mmi_charger/Kbuild index 5eab38f4ce74..9edaf802fdbd 100755 --- a/drivers/power/mmi_charger/Kbuild +++ b/drivers/power/mmi_charger/Kbuild @@ -3,6 +3,10 @@ EXTRA_CFLAGS += -Wall EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/drivers/power/mmi_charger EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include +ifeq ($(TARGET_BUILD_VARIANT),userdebug) + EXTRA_CFLAGS += -DMMI_GKI_API_ALLOWANCE +endif + obj-m += mmi_charger.o KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../mmi_info/$(GKI_OBJ_MODULE_DIR)/Module.symvers diff --git a/drivers/power/mmi_charger/mmi_charger.c b/drivers/power/mmi_charger/mmi_charger.c index 2aaae5405cbd..8890f6956346 100644 --- a/drivers/power/mmi_charger/mmi_charger.c +++ b/drivers/power/mmi_charger/mmi_charger.c @@ -2014,10 +2014,10 @@ static void mmi_charger_heartbeat_work(struct work_struct *work) chip->factory_kill_armed = true; } else if (chip->factory_kill_armed && !factory_kill_disable) { mmi_warn(chip, "Factory kill power off\n"); -#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE - kernel_power_off(); -#else +#if (KERNEL_VERSION(5, 10, 0) > LINUX_VERSION_CODE) || defined(MMI_GKI_API_ALLOWANCE) orderly_poweroff(true); +#else + kernel_power_off(); #endif } else { chip->factory_kill_armed = false;