diff options
author | Mason Wang <masonwang@google.com> | 2022-05-04 07:57:14 +0000 |
---|---|---|
committer | Android Partner Code Review <android-gerrit-partner@google.com> | 2022-05-04 07:57:14 +0000 |
commit | 8b837e15a2a2e139b1d3ba85c32fa8b79ce512ce (patch) | |
tree | 340e696dfa18a767766e633a4c7f7885be82a562 | |
parent | 48552cf06b7594b48dea7ff4135c89b5be119a82 (diff) | |
parent | 7f4f9a848ad7899b7e66e62d304fc18f79debd73 (diff) | |
download | focaltech_touch-8b837e15a2a2e139b1d3ba85c32fa8b79ce512ce.tar.gz |
Merge "touch/focaltech: Fix accessing null pointer during shutdown." into android13-gs-pixel-5.10
-rw-r--r-- | ft3658/focaltech_core.c | 50 |
1 files changed, 16 insertions, 34 deletions
diff --git a/ft3658/focaltech_core.c b/ft3658/focaltech_core.c index afe1404..937cfbd 100644 --- a/ft3658/focaltech_core.c +++ b/ft3658/focaltech_core.c @@ -2907,20 +2907,11 @@ err_heatmap_probe: #endif #if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) || \ IS_ENABLED(CONFIG_TOUCHSCREEN_HEATMAP) - if (ts_data->trans_raw) { - kfree_safe(ts_data->trans_raw); - ts_data->trans_raw = NULL; - } + kfree_safe(ts_data->trans_raw); err_trans_raw: - if (ts_data->heatmap_raw) { - kfree_safe(ts_data->heatmap_raw); - ts_data->heatmap_raw = NULL; - } + kfree_safe(ts_data->heatmap_raw); err_heatmap_raw: - if (ts_data->heatmap_buff) { - kfree_safe(ts_data->heatmap_buff); - ts_data->heatmap_buff = NULL; - } + kfree_safe(ts_data->heatmap_buff); err_heatmap_buff: #endif #if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) @@ -2970,28 +2961,6 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data) fts_release_apk_debug_channel(ts_data); fts_remove_sysfs(ts_data); -#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) - touch_offload_cleanup(&ts_data->offload); -#endif -#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) || \ - IS_ENABLED(CONFIG_TOUCHSCREEN_HEATMAP) - if (ts_data->heatmap_buff) { - kfree_safe(ts_data->heatmap_buff); - ts_data->heatmap_buff = NULL; - } - if (ts_data->heatmap_raw) { - kfree_safe(ts_data->heatmap_raw); - ts_data->heatmap_raw = NULL; - } - if (ts_data->trans_raw) { - kfree_safe(ts_data->trans_raw); - ts_data->trans_raw = NULL; - } -#endif - -#if IS_ENABLED(CONFIG_TOUCHSCREEN_HEATMAP) - heatmap_remove(&ts_data->v4l2); -#endif fts_ex_mode_exit(ts_data); fts_fwupg_exit(ts_data); @@ -3043,6 +3012,19 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data) unregister_early_suspend(&ts_data->early_suspend); #endif +#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) + touch_offload_cleanup(&ts_data->offload); +#endif +#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD) || \ + IS_ENABLED(CONFIG_TOUCHSCREEN_HEATMAP) + kfree_safe(ts_data->heatmap_buff); + kfree_safe(ts_data->heatmap_raw); + kfree_safe(ts_data->trans_raw); +#endif +#if IS_ENABLED(CONFIG_TOUCHSCREEN_HEATMAP) + heatmap_remove(&ts_data->v4l2); +#endif + if (gpio_is_valid(ts_data->pdata->reset_gpio)) gpio_free(ts_data->pdata->reset_gpio); |