浏览代码

touch: fix parade driver deinit sequence

driver context is freed before calling power off sequence,
which is resulting invalid memory access causing system crash.

complete power off sequence before free up driver context.

Change-Id: Ib6665d904d2747ec87a62b47cfadcb91f713ffe6
Signed-off-by: Surya Teja Kudiri <[email protected]>
Surya Teja Kudiri 2 年之前
父节点
当前提交
0fb4da9875
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      pt/pt_core.c

+ 1 - 1
pt/pt_core.c

@@ -17344,7 +17344,6 @@ error_detect:
 	if (cd->cpdata->setup_power)
 		cd->cpdata->setup_power(cd->cpdata, PT_MT_POWER_OFF, dev);
 	sysfs_remove_group(&dev->kobj, &early_attr_group);
-	kfree(cd);
 error_enable_regulator:
 	pt_del_core(dev);
 	dev_set_drvdata(dev, NULL);
@@ -17352,6 +17351,7 @@ error_enable_regulator:
 error_get_regulator:
 	pt_get_regulator(cd, false);
 error_alloc_data:
+	kfree(cd);
 error_no_pdata:
 	pr_err("%s failed.\n", __func__);
 	return rc;