mfd: Fix mismatch in twl4030 mutex lock-unlock
A mutex is locked on entry into twl4030_madc_conversion(). Immediate return on some error conditions leaves the mutex locked. This patch ensures that mutex is always unlocked before leaving the function. Signed-off-by: Sanjeev Premi <premi@ti.com> Cc: Keerthy <j-keerthy@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Родитель
2b959e7f87
Коммит
e178ccb335
|
@ -530,13 +530,13 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
|
|||
if (ret) {
|
||||
dev_err(twl4030_madc->dev,
|
||||
"unable to write sel register 0x%X\n", method->sel + 1);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, ch_lsb, method->sel);
|
||||
if (ret) {
|
||||
dev_err(twl4030_madc->dev,
|
||||
"unable to write sel register 0x%X\n", method->sel + 1);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
/* Select averaging for all channels if do_avg is set */
|
||||
if (req->do_avg) {
|
||||
|
@ -546,7 +546,7 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
|
|||
dev_err(twl4030_madc->dev,
|
||||
"unable to write avg register 0x%X\n",
|
||||
method->avg + 1);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
ret = twl_i2c_write_u8(TWL4030_MODULE_MADC,
|
||||
ch_lsb, method->avg);
|
||||
|
@ -554,7 +554,7 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
|
|||
dev_err(twl4030_madc->dev,
|
||||
"unable to write sel reg 0x%X\n",
|
||||
method->sel + 1);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
if (req->type == TWL4030_MADC_IRQ_ONESHOT && req->func_cb != NULL) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче