mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
DLKM:optimise drv2624 remove function
-release related resource about vibtator registered in probe -issue:DLKM // kernel panic when rmmod drv2624 module Change-Id: Icbd222c3f7bff00dd87be366ca2cb00eb8546ad6 Signed-off-by: Wen Xie <xiewen3@motorola.com> Reviewed-on: https://gerrit.mot.com/1246599 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Wang Wang <wangwang1@lenovo.com> Submit-Approved: Jira Key
This commit is contained in:
parent
fe2395f620
commit
c50762fa4c
1 changed files with 9 additions and 1 deletions
|
|
@ -1610,6 +1610,7 @@ drv2624_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|||
static int drv2624_remove(struct i2c_client *client)
|
||||
{
|
||||
struct drv2624_data *ctrl = i2c_get_clientdata(client);
|
||||
int i = 0;
|
||||
|
||||
if (gpio_is_valid(ctrl->msPlatData.mnGpioNRST))
|
||||
gpio_free(ctrl->msPlatData.mnGpioNRST);
|
||||
|
|
@ -1617,8 +1618,15 @@ static int drv2624_remove(struct i2c_client *client)
|
|||
if (gpio_is_valid(ctrl->msPlatData.mnGpioINT))
|
||||
gpio_free(ctrl->msPlatData.mnGpioINT);
|
||||
|
||||
misc_deregister(&drv2624_misc);
|
||||
free_irq(client->irq, ctrl);
|
||||
cancel_work_sync(&ctrl->vibrator_work);
|
||||
drv2624_class_vibrator(ctrl, false);
|
||||
wake_lock_destroy(&ctrl->wklock);
|
||||
misc_deregister(&drv2624_misc);
|
||||
for (i = 0; i < ARRAY_SIZE(drv2624_led_classdev_attrs); i++)
|
||||
sysfs_remove_file(&ctrl->cdev.dev->kobj,
|
||||
&drv2624_led_classdev_attrs[i].attr);
|
||||
devm_led_classdev_unregister(ctrl->dev, &(ctrl->cdev));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue