mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
Input: max8997_haptic - use guard notation when acquiring mutex
Using guard notation makes the code more compact and error handling more robust by ensuring that mutexes are released in all code paths when control leaves critical section. Reviewed-by: Javier Carrasco <javier.carrasco.cruz@gmail.com> Link: https://lore.kernel.org/r/20240904044834.1048468-1-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
452e0adff2
commit
844111df52
1 changed files with 5 additions and 10 deletions
|
@ -153,19 +153,19 @@ static void max8997_haptic_enable(struct max8997_haptic *chip)
|
|||
{
|
||||
int error;
|
||||
|
||||
mutex_lock(&chip->mutex);
|
||||
guard(mutex)(&chip->mutex);
|
||||
|
||||
error = max8997_haptic_set_duty_cycle(chip);
|
||||
if (error) {
|
||||
dev_err(chip->dev, "set_pwm_cycle failed, error: %d\n", error);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!chip->enabled) {
|
||||
error = regulator_enable(chip->regulator);
|
||||
if (error) {
|
||||
dev_err(chip->dev, "Failed to enable regulator\n");
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
max8997_haptic_configure(chip);
|
||||
if (chip->mode == MAX8997_EXTERNAL_MODE) {
|
||||
|
@ -173,19 +173,16 @@ static void max8997_haptic_enable(struct max8997_haptic *chip)
|
|||
if (error) {
|
||||
dev_err(chip->dev, "Failed to enable PWM\n");
|
||||
regulator_disable(chip->regulator);
|
||||
goto out;
|
||||
return;
|
||||
}
|
||||
}
|
||||
chip->enabled = true;
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&chip->mutex);
|
||||
}
|
||||
|
||||
static void max8997_haptic_disable(struct max8997_haptic *chip)
|
||||
{
|
||||
mutex_lock(&chip->mutex);
|
||||
guard(mutex)(&chip->mutex);
|
||||
|
||||
if (chip->enabled) {
|
||||
chip->enabled = false;
|
||||
|
@ -194,8 +191,6 @@ static void max8997_haptic_disable(struct max8997_haptic *chip)
|
|||
pwm_disable(chip->pwm);
|
||||
regulator_disable(chip->regulator);
|
||||
}
|
||||
|
||||
mutex_unlock(&chip->mutex);
|
||||
}
|
||||
|
||||
static void max8997_haptic_play_effect_work(struct work_struct *work)
|
||||
|
|
Loading…
Add table
Reference in a new issue