mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Input: wm97xx - use guard notation when acquiring mutex
Guard notation simplifies code. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
@@ -126,7 +126,7 @@ int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel)
|
||||
int timeout = 0;
|
||||
|
||||
/* get codec */
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
/* When the touchscreen is not in use, we may have to power up
|
||||
* the AUX ADC before we can use sample the AUX inputs->
|
||||
@@ -160,7 +160,6 @@ int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel)
|
||||
wm->codec->dig_enable(wm, false);
|
||||
}
|
||||
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
return (rc == RC_VALID ? auxval & 0xfff : -EBUSY);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm97xx_read_aux_adc);
|
||||
@@ -176,18 +175,11 @@ EXPORT_SYMBOL_GPL(wm97xx_read_aux_adc);
|
||||
enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio)
|
||||
{
|
||||
u16 status;
|
||||
enum wm97xx_gpio_status ret;
|
||||
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
status = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
|
||||
|
||||
if (status & gpio)
|
||||
ret = WM97XX_GPIO_HIGH;
|
||||
else
|
||||
ret = WM97XX_GPIO_LOW;
|
||||
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
return ret;
|
||||
return (status & gpio) ? WM97XX_GPIO_HIGH : WM97XX_GPIO_LOW;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm97xx_get_gpio);
|
||||
|
||||
@@ -205,7 +197,8 @@ void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
|
||||
{
|
||||
u16 reg;
|
||||
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
reg = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
|
||||
|
||||
if (status == WM97XX_GPIO_HIGH)
|
||||
@@ -217,7 +210,6 @@ void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
|
||||
wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg << 1);
|
||||
else
|
||||
wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg);
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm97xx_set_gpio);
|
||||
|
||||
@@ -231,7 +223,8 @@ void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_dir dir,
|
||||
{
|
||||
u16 reg;
|
||||
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
reg = wm97xx_reg_read(wm, AC97_GPIO_POLARITY);
|
||||
|
||||
if (pol == WM97XX_GPIO_POL_HIGH)
|
||||
@@ -264,7 +257,6 @@ void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_dir dir,
|
||||
reg &= ~gpio;
|
||||
|
||||
wm97xx_reg_write(wm, AC97_GPIO_CFG, reg);
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm97xx_config_gpio);
|
||||
|
||||
@@ -303,7 +295,9 @@ static irqreturn_t wm97xx_pen_interrupt(int irq, void *dev_id)
|
||||
wm->pen_is_down = 0;
|
||||
} else {
|
||||
u16 status, pol;
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
status = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
|
||||
pol = wm97xx_reg_read(wm, AC97_GPIO_POLARITY);
|
||||
|
||||
@@ -323,7 +317,6 @@ static irqreturn_t wm97xx_pen_interrupt(int irq, void *dev_id)
|
||||
else
|
||||
wm97xx_reg_write(wm, AC97_GPIO_STATUS, status &
|
||||
~WM97XX_GPIO_13);
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
}
|
||||
|
||||
/* If the system is not using continuous mode or it provides a
|
||||
@@ -382,7 +375,7 @@ static int wm97xx_read_samples(struct wm97xx *wm)
|
||||
struct wm97xx_data data;
|
||||
int rc;
|
||||
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
if (wm->mach_ops && wm->mach_ops->acc_enabled)
|
||||
rc = wm->mach_ops->acc_pen_down(wm);
|
||||
@@ -422,8 +415,7 @@ static int wm97xx_read_samples(struct wm97xx *wm)
|
||||
abs_y[0] > (data.y & 0xfff) ||
|
||||
abs_y[1] < (data.y & 0xfff)) {
|
||||
dev_dbg(wm->dev, "Measurement out of range, dropping it\n");
|
||||
rc = RC_AGAIN;
|
||||
goto out;
|
||||
return RC_AGAIN;
|
||||
}
|
||||
|
||||
input_report_abs(wm->input_dev, ABS_X, data.x & 0xfff);
|
||||
@@ -439,8 +431,6 @@ static int wm97xx_read_samples(struct wm97xx *wm)
|
||||
wm->ts_reader_interval = wm->ts_reader_min_interval;
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -773,7 +763,8 @@ static int wm97xx_suspend(struct device *dev)
|
||||
else
|
||||
suspend_mode = 0;
|
||||
|
||||
mutex_lock(&wm->input_dev->mutex);
|
||||
guard(mutex)(&wm->input_dev->mutex);
|
||||
|
||||
if (input_device_enabled(wm->input_dev))
|
||||
cancel_delayed_work_sync(&wm->ts_reader);
|
||||
|
||||
@@ -791,7 +782,6 @@ static int wm97xx_suspend(struct device *dev)
|
||||
reg = wm97xx_reg_read(wm, AC97_EXTENDED_MID) | 0x8000;
|
||||
wm97xx_reg_write(wm, AC97_EXTENDED_MID, reg);
|
||||
}
|
||||
mutex_unlock(&wm->input_dev->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -800,7 +790,8 @@ static int wm97xx_resume(struct device *dev)
|
||||
{
|
||||
struct wm97xx *wm = dev_get_drvdata(dev);
|
||||
|
||||
mutex_lock(&wm->input_dev->mutex);
|
||||
guard(mutex)(&wm->input_dev->mutex);
|
||||
|
||||
/* restore digitiser and gpios */
|
||||
if (wm->id == WM9713_ID2) {
|
||||
wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig[0]);
|
||||
@@ -827,7 +818,6 @@ static int wm97xx_resume(struct device *dev)
|
||||
queue_delayed_work(wm->ts_workq, &wm->ts_reader,
|
||||
wm->ts_reader_interval);
|
||||
}
|
||||
mutex_unlock(&wm->input_dev->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -840,13 +830,12 @@ static DEFINE_SIMPLE_DEV_PM_OPS(wm97xx_pm_ops, wm97xx_suspend, wm97xx_resume);
|
||||
int wm97xx_register_mach_ops(struct wm97xx *wm,
|
||||
struct wm97xx_mach_ops *mach_ops)
|
||||
{
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
if (wm->mach_ops) {
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
if (wm->mach_ops)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
wm->mach_ops = mach_ops;
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -854,9 +843,9 @@ EXPORT_SYMBOL_GPL(wm97xx_register_mach_ops);
|
||||
|
||||
void wm97xx_unregister_mach_ops(struct wm97xx *wm)
|
||||
{
|
||||
mutex_lock(&wm->codec_mutex);
|
||||
guard(mutex)(&wm->codec_mutex);
|
||||
|
||||
wm->mach_ops = NULL;
|
||||
mutex_unlock(&wm->codec_mutex);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(wm97xx_unregister_mach_ops);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user