diff options
author | davidycchen <davidycchen@google.com> | 2022-12-26 14:50:54 +0800 |
---|---|---|
committer | davidycchen <davidycchen@google.com> | 2022-12-26 15:51:27 +0800 |
commit | ab5ad8a0698bee68c6c04929202242fb83d37ad3 (patch) | |
tree | 48ef9efbeccdbe22a3acc926a24fbb1ceca6382c | |
parent | 1fba6aed071bc8f4c4a75e18db9a06981f9384bd (diff) | |
download | synaptics_touch-ab5ad8a0698bee68c6c04929202242fb83d37ad3.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.c | 17 |
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); |