summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2022-12-26 14:50:54 +0800
committerdavidycchen <davidycchen@google.com>2022-12-26 15:51:27 +0800
commitab5ad8a0698bee68c6c04929202242fb83d37ad3 (patch)
tree48ef9efbeccdbe22a3acc926a24fbb1ceca6382c
parent1fba6aed071bc8f4c4a75e18db9a06981f9384bd (diff)
downloadsynaptics_touch-android-gs-raviole-5.10-android13-qpr3-beta1.tar.gz
synaptics: Refine module remove function orderandroid-t-qpr3-beta-3_r0.5android-t-qpr3-beta-3_r0.4android-t-qpr3-beta-3_r0.3android-t-qpr3-beta-3.1_r0.5android-t-qpr3-beta-3.1_r0.4android-t-qpr3-beta-3.1_r0.3android-t-qpr3-beta-2_r0.5android-t-qpr3-beta-2_r0.4android-t-qpr3-beta-2_r0.3android-t-qpr3-beta-1_r0.5android-t-qpr3-beta-1_r0.4android-t-qpr3-beta-1_r0.3android-t-qpr3-beta-1_r0.1android-13.0.0_r0.93android-13.0.0_r0.92android-13.0.0_r0.85android-13.0.0_r0.84android-13.0.0_r0.83android-13.0.0_r0.82android-13.0.0_r0.127android-13.0.0_r0.126android-13.0.0_r0.125android-13.0.0_r0.124android-13.0.0_r0.123android-13.0.0_r0.121android-13.0.0_r0.117android-13.0.0_r0.116android-13.0.0_r0.115android-13.0.0_r0.114android-13.0.0_r0.113android-13.0.0_r0.112android-13.0.0_r0.107android-13.0.0_r0.106android-13.0.0_r0.105android-13.0.0_r0.104android-13.0.0_r0.103android-13.0.0_r0.100android-gs-tangorpro-5.10-android13-qpr3android-gs-raviole-5.10-t-qpr3-beta-3android-gs-raviole-5.10-t-qpr3-beta-2android-gs-raviole-5.10-android13-qpr3-beta1android-gs-raviole-5.10-android13-qpr3android-gs-pantah-5.10-t-qpr3-beta-3android-gs-pantah-5.10-t-qpr3-beta-2android-gs-pantah-5.10-android13-qpr3-beta1android-gs-pantah-5.10-android13-qpr3android-gs-lynx-5.10-android13-qpr3android-gs-felix-5.10-android13-qpr3-candroid-gs-felix-5.10-android13-qpr3android-gs-felix-5.10-android13-d3android-gs-bluejay-5.10-t-qpr3-beta-3android-gs-bluejay-5.10-t-qpr3-beta-2android-gs-bluejay-5.10-android13-qpr3-beta1android-gs-bluejay-5.10-android13-qpr3
Free IRQ before touch_offload, cpu_latency_qos and raw_data_buffer because those functions are used in interrupt handler. Bug: 263591433 Test: reboot the device. Change-Id: Ibac7ee297f5911019a4cb8771e0e8fa9ae0ea2c7 Signed-off-by: davidycchen <davidycchen@google.com>
-rw-r--r--syna_tcm2.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/syna_tcm2.c b/syna_tcm2.c
index dcd10d2..e6d7610 100644
--- a/syna_tcm2.c
+++ b/syna_tcm2.c
@@ -3350,10 +3350,6 @@ static int syna_dev_remove(struct platform_device *pdev)
if (tcm->tbn_register_mask)
unregister_tbn(&tcm->tbn_register_mask);
#endif
- cpu_latency_qos_remove_request(&tcm->pm_qos_req);
-
- if (tcm->raw_data_buffer)
- kfree(tcm->raw_data_buffer);
#if defined(USE_DRM_BRIDGE)
syna_unregister_panel_bridge(&tcm->panel_bridge);
@@ -3372,6 +3368,12 @@ static int syna_dev_remove(struct platform_device *pdev)
syna_cdev_remove_sysfs(tcm);
#endif
+ /* check the connection statusm, and do disconnection */
+ if (tcm->dev_disconnect(tcm) < 0)
+ LOGE("Fail to do device disconnection\n");
+
+ cpu_latency_qos_remove_request(&tcm->pm_qos_req);
+
#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD)
touch_offload_cleanup(&tcm->offload);
#endif
@@ -3380,9 +3382,10 @@ static int syna_dev_remove(struct platform_device *pdev)
heatmap_remove(&tcm->v4l2);
#endif
- /* check the connection statusm, and do disconnection */
- if (tcm->dev_disconnect(tcm) < 0)
- LOGE("Fail to do device disconnection\n");
+ if (tcm->raw_data_buffer) {
+ kfree(tcm->raw_data_buffer);
+ tcm->raw_data_buffer = NULL;
+ }
syna_tcm_buf_release(&tcm->event_data);