struct eeti_ts *eeti = dev_id;
int error;
- mutex_lock(&eeti->mutex);
+ guard(mutex)(&eeti->mutex);
do {
/*
} while (eeti->running && eeti->attn_gpio);
- mutex_unlock(&eeti->mutex);
return IRQ_HANDLED;
}
static void eeti_ts_start(struct eeti_ts *eeti)
{
- mutex_lock(&eeti->mutex);
+ guard(mutex)(&eeti->mutex);
eeti->running = true;
enable_irq(eeti->client->irq);
*/
if (eeti->attn_gpio && gpiod_get_value_cansleep(eeti->attn_gpio))
eeti_ts_read(eeti);
-
- mutex_unlock(&eeti->mutex);
}
static void eeti_ts_stop(struct eeti_ts *eeti)
struct eeti_ts *eeti = i2c_get_clientdata(client);
struct input_dev *input_dev = eeti->input;
- mutex_lock(&input_dev->mutex);
-
- if (input_device_enabled(input_dev))
- eeti_ts_stop(eeti);
-
- mutex_unlock(&input_dev->mutex);
+ scoped_guard(mutex, &input_dev->mutex) {
+ if (input_device_enabled(input_dev))
+ eeti_ts_stop(eeti);
+ }
if (device_may_wakeup(&client->dev))
enable_irq_wake(client->irq);
if (device_may_wakeup(&client->dev))
disable_irq_wake(client->irq);
- mutex_lock(&input_dev->mutex);
-
- if (input_device_enabled(input_dev))
- eeti_ts_start(eeti);
-
- mutex_unlock(&input_dev->mutex);
+ scoped_guard(mutex, &input_dev->mutex) {
+ if (input_device_enabled(input_dev))
+ eeti_ts_start(eeti);
+ }
return 0;
}