Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Input: wm97xx - use guard notation when acquiring mutex

Guard notation simplifies code.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

+23 -34
+23 -34
drivers/input/touchscreen/wm97xx-core.c
··· 126 126 int timeout = 0; 127 127 128 128 /* get codec */ 129 - mutex_lock(&wm->codec_mutex); 129 + guard(mutex)(&wm->codec_mutex); 130 130 131 131 /* When the touchscreen is not in use, we may have to power up 132 132 * the AUX ADC before we can use sample the AUX inputs-> ··· 160 160 wm->codec->dig_enable(wm, false); 161 161 } 162 162 163 - mutex_unlock(&wm->codec_mutex); 164 163 return (rc == RC_VALID ? auxval & 0xfff : -EBUSY); 165 164 } 166 165 EXPORT_SYMBOL_GPL(wm97xx_read_aux_adc); ··· 175 176 enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio) 176 177 { 177 178 u16 status; 178 - enum wm97xx_gpio_status ret; 179 179 180 - mutex_lock(&wm->codec_mutex); 180 + guard(mutex)(&wm->codec_mutex); 181 + 181 182 status = wm97xx_reg_read(wm, AC97_GPIO_STATUS); 182 - 183 - if (status & gpio) 184 - ret = WM97XX_GPIO_HIGH; 185 - else 186 - ret = WM97XX_GPIO_LOW; 187 - 188 - mutex_unlock(&wm->codec_mutex); 189 - return ret; 183 + return (status & gpio) ? WM97XX_GPIO_HIGH : WM97XX_GPIO_LOW; 190 184 } 191 185 EXPORT_SYMBOL_GPL(wm97xx_get_gpio); 192 186 ··· 197 205 { 198 206 u16 reg; 199 207 200 - mutex_lock(&wm->codec_mutex); 208 + guard(mutex)(&wm->codec_mutex); 209 + 201 210 reg = wm97xx_reg_read(wm, AC97_GPIO_STATUS); 202 211 203 212 if (status == WM97XX_GPIO_HIGH) ··· 210 217 wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg << 1); 211 218 else 212 219 wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg); 213 - mutex_unlock(&wm->codec_mutex); 214 220 } 215 221 EXPORT_SYMBOL_GPL(wm97xx_set_gpio); 216 222 ··· 223 231 { 224 232 u16 reg; 225 233 226 - mutex_lock(&wm->codec_mutex); 234 + guard(mutex)(&wm->codec_mutex); 235 + 227 236 reg = wm97xx_reg_read(wm, AC97_GPIO_POLARITY); 228 237 229 238 if (pol == WM97XX_GPIO_POL_HIGH) ··· 257 264 reg &= ~gpio; 258 265 259 266 wm97xx_reg_write(wm, AC97_GPIO_CFG, reg); 260 - mutex_unlock(&wm->codec_mutex); 261 267 } 262 268 EXPORT_SYMBOL_GPL(wm97xx_config_gpio); 263 269 ··· 295 303 wm->pen_is_down = 0; 296 304 } else { 297 305 u16 status, pol; 298 - mutex_lock(&wm->codec_mutex); 306 + 307 + guard(mutex)(&wm->codec_mutex); 308 + 299 309 status = wm97xx_reg_read(wm, AC97_GPIO_STATUS); 300 310 pol = wm97xx_reg_read(wm, AC97_GPIO_POLARITY); 301 311 ··· 317 323 else 318 324 wm97xx_reg_write(wm, AC97_GPIO_STATUS, status & 319 325 ~WM97XX_GPIO_13); 320 - mutex_unlock(&wm->codec_mutex); 321 326 } 322 327 323 328 /* If the system is not using continuous mode or it provides a ··· 375 382 struct wm97xx_data data; 376 383 int rc; 377 384 378 - mutex_lock(&wm->codec_mutex); 385 + guard(mutex)(&wm->codec_mutex); 379 386 380 387 if (wm->mach_ops && wm->mach_ops->acc_enabled) 381 388 rc = wm->mach_ops->acc_pen_down(wm); ··· 415 422 abs_y[0] > (data.y & 0xfff) || 416 423 abs_y[1] < (data.y & 0xfff)) { 417 424 dev_dbg(wm->dev, "Measurement out of range, dropping it\n"); 418 - rc = RC_AGAIN; 419 - goto out; 425 + return RC_AGAIN; 420 426 } 421 427 422 428 input_report_abs(wm->input_dev, ABS_X, data.x & 0xfff); ··· 431 439 wm->ts_reader_interval = wm->ts_reader_min_interval; 432 440 } 433 441 434 - out: 435 - mutex_unlock(&wm->codec_mutex); 436 442 return rc; 437 443 } 438 444 ··· 763 773 else 764 774 suspend_mode = 0; 765 775 766 - mutex_lock(&wm->input_dev->mutex); 776 + guard(mutex)(&wm->input_dev->mutex); 777 + 767 778 if (input_device_enabled(wm->input_dev)) 768 779 cancel_delayed_work_sync(&wm->ts_reader); 769 780 ··· 782 791 reg = wm97xx_reg_read(wm, AC97_EXTENDED_MID) | 0x8000; 783 792 wm97xx_reg_write(wm, AC97_EXTENDED_MID, reg); 784 793 } 785 - mutex_unlock(&wm->input_dev->mutex); 786 794 787 795 return 0; 788 796 } ··· 790 800 { 791 801 struct wm97xx *wm = dev_get_drvdata(dev); 792 802 793 - mutex_lock(&wm->input_dev->mutex); 803 + guard(mutex)(&wm->input_dev->mutex); 804 + 794 805 /* restore digitiser and gpios */ 795 806 if (wm->id == WM9713_ID2) { 796 807 wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig[0]); ··· 818 827 queue_delayed_work(wm->ts_workq, &wm->ts_reader, 819 828 wm->ts_reader_interval); 820 829 } 821 - mutex_unlock(&wm->input_dev->mutex); 822 830 823 831 return 0; 824 832 } ··· 830 840 int wm97xx_register_mach_ops(struct wm97xx *wm, 831 841 struct wm97xx_mach_ops *mach_ops) 832 842 { 833 - mutex_lock(&wm->codec_mutex); 834 - if (wm->mach_ops) { 835 - mutex_unlock(&wm->codec_mutex); 843 + guard(mutex)(&wm->codec_mutex); 844 + 845 + if (wm->mach_ops) 836 846 return -EINVAL; 837 - } 847 + 838 848 wm->mach_ops = mach_ops; 839 - mutex_unlock(&wm->codec_mutex); 840 849 841 850 return 0; 842 851 } ··· 843 854 844 855 void wm97xx_unregister_mach_ops(struct wm97xx *wm) 845 856 { 846 - mutex_lock(&wm->codec_mutex); 857 + guard(mutex)(&wm->codec_mutex); 858 + 847 859 wm->mach_ops = NULL; 848 - mutex_unlock(&wm->codec_mutex); 849 860 } 850 861 EXPORT_SYMBOL_GPL(wm97xx_unregister_mach_ops); 851 862