diff --git a/goodix_berlin_driver/goodix_brl_hw.c b/goodix_berlin_driver/goodix_brl_hw.c index 3cb79b7ba8..d4646dad3d 100644 --- a/goodix_berlin_driver/goodix_brl_hw.c +++ b/goodix_berlin_driver/goodix_brl_hw.c @@ -1,6 +1,7 @@ /* * Goodix Touchscreen Driver * Copyright (C) 2020 - 2021 Goodix, Inc. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -260,19 +261,41 @@ power_off: #define GOODIX_SLEEP_CMD 0x84 int brl_suspend(struct goodix_ts_core *cd) { +#ifdef GOODIX_SUSPEND_GESTURE_ENABLE struct goodix_ts_cmd sleep_cmd; sleep_cmd.cmd = GOODIX_SLEEP_CMD; sleep_cmd.len = 4; if (cd->hw_ops->send_cmd(cd, &sleep_cmd)) ts_err("failed send sleep cmd"); - +#else + if (cd->hw_ops->power_on(cd, 0)) + ts_err("failed power off"); +#endif return 0; } int brl_resume(struct goodix_ts_core *cd) { - return cd->hw_ops->reset(cd, GOODIX_NORMAL_RESET_DELAY_MS); + int ret = 0; + +#ifdef GOODIX_SUSPEND_GESTURE_ENABLE + ret = cd->hw_ops->reset(cd, GOODIX_NORMAL_RESET_DELAY_MS); +#else + ret = cd->hw_ops->power_on(cd, 1); + if (ret) { + ts_err("failed power on"); + return ret; + } + + ret = cd->hw_ops->reset(cd, GOODIX_NORMAL_RESET_DELAY_MS); + if (ret) { + ts_err("failed reset tp"); + return ret; + } +#endif + + return ret; } #define GOODIX_GESTURE_CMD_BA 0x12 diff --git a/goodix_berlin_driver/goodix_ts_core.c b/goodix_berlin_driver/goodix_ts_core.c index 30f069a045..aadf88cffd 100644 --- a/goodix_berlin_driver/goodix_ts_core.c +++ b/goodix_berlin_driver/goodix_ts_core.c @@ -1,6 +1,7 @@ /* * Goodix Touchscreen Driver * Copyright (C) 2020 - 2021 Goodix, Inc. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -2066,10 +2067,10 @@ skip_goodix_ts_irq_setup: /* create procfs files */ goodix_ts_procfs_init(cd); - +#ifdef GOODIX_SUSPEND_GESTURE_ENABLE /* gesture init */ gesture_module_init(); - +#endif /* inspect init */ inspect_module_init(); @@ -2608,7 +2609,9 @@ static int goodix_ts_remove(struct platform_device *pdev) goodix_tools_exit(); if (core_data->init_stage >= CORE_INIT_STAGE2) { + #ifdef GOODIX_SUSPEND_GESTURE_ENABLE gesture_module_exit(); + #endif inspect_module_exit(); hw_ops->irq_enable(core_data, false);