touchscreen_mmi: Properly handle the deletion process.

input_unregister_device and input_free_device should not call twice.
And after device be freed.
And devm_kfree is no need call after device freed.

Change-Id: I23fc92c196b33b029c6da0924cb468f2c63a3597
Signed-off-by: haojl2 <haojl2@motorola.com>
Reviewed-on: https://gerrit.mot.com/1570151
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: <litong20@motorola.com>
Reviewed-by: Jianqi Yang <yangj@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
haojl2 2020-05-21 17:36:35 +08:00 • committed by Jialei Hao
commit 91d4490a4e

View file

@ -209,12 +209,16 @@ int ts_mmi_gesture_init(struct ts_mmi_dev *touch_cdev)
unregister_sensor_input_device:
input_unregister_device(sensor_input_dev);
sensor_input_dev = NULL;
free_touch_events_data:
devm_kfree(DEV_TS, events_data);
if (events_data)
devm_kfree(DEV_TS, events_data);
free_sensor_pdata:
devm_kfree(&sensor_input_dev->dev, sensor_pdata);
if (sensor_input_dev && sensor_pdata)
devm_kfree(&sensor_input_dev->dev, sensor_pdata);
free_sensor_input_dev:
input_free_device(sensor_input_dev);
if (sensor_input_dev)
input_free_device(sensor_input_dev);
exit:
return 1;
}
@ -223,9 +227,7 @@ int ts_mmi_gesture_remove(struct ts_mmi_dev *touch_cdev)
{
sensors_classdev_unregister(&sensor_pdata->ps_cdev);
input_unregister_device(sensor_pdata->input_sensor_dev);
devm_kfree(&sensor_pdata->input_sensor_dev->dev, sensor_pdata);
devm_kfree(DEV_TS, events_data);
input_free_device(sensor_pdata->input_sensor_dev);
sensor_pdata = NULL;
return 0;