|
@@ -282,6 +282,7 @@ error:
|
|
|
dev_err(&sr_info->pdev->dev, "%s: ERROR in registering"
|
|
|
"interrupt handler. Smartreflex will"
|
|
|
"not function as desired\n", __func__);
|
|
|
+ kfree(name);
|
|
|
kfree(sr_info);
|
|
|
return ret;
|
|
|
}
|
|
@@ -879,7 +880,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
|
|
|
ret = sr_late_init(sr_info);
|
|
|
if (ret) {
|
|
|
pr_warning("%s: Error in SR late init\n", __func__);
|
|
|
- return ret;
|
|
|
+ goto err_release_region;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -890,14 +891,17 @@ static int __init omap_sr_probe(struct platform_device *pdev)
|
|
|
* not try to create rest of the debugfs entries.
|
|
|
*/
|
|
|
vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm);
|
|
|
- if (!vdd_dbg_dir)
|
|
|
- return -EINVAL;
|
|
|
+ if (!vdd_dbg_dir) {
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto err_release_region;
|
|
|
+ }
|
|
|
|
|
|
dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir);
|
|
|
if (IS_ERR(dbg_dir)) {
|
|
|
dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n",
|
|
|
__func__);
|
|
|
- return PTR_ERR(dbg_dir);
|
|
|
+ ret = PTR_ERR(dbg_dir);
|
|
|
+ goto err_release_region;
|
|
|
}
|
|
|
|
|
|
(void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, dbg_dir,
|
|
@@ -913,7 +917,8 @@ static int __init omap_sr_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(nvalue_dir)) {
|
|
|
dev_err(&pdev->dev, "%s: Unable to create debugfs directory"
|
|
|
"for n-values\n", __func__);
|
|
|
- return PTR_ERR(nvalue_dir);
|
|
|
+ ret = PTR_ERR(nvalue_dir);
|
|
|
+ goto err_release_region;
|
|
|
}
|
|
|
|
|
|
omap_voltage_get_volttable(sr_info->voltdm, &volt_data);
|
|
@@ -922,7 +927,8 @@ static int __init omap_sr_probe(struct platform_device *pdev)
|
|
|
" corresponding vdd vdd_%s. Cannot create debugfs"
|
|
|
"entries for n-values\n",
|
|
|
__func__, sr_info->voltdm->name);
|
|
|
- return -ENODATA;
|
|
|
+ ret = -ENODATA;
|
|
|
+ goto err_release_region;
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < sr_info->nvalue_count; i++) {
|