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

mfd: wm831x: Remove redundant forever while loop

Current code executes only once despite the while loop, so remove the
loop. Also msleep(1) will likely result in a larger sleep, so increase
its value for clarity while keeping the same behaviour.

Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20240123154259.81258-1-mstrozek@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>

authored by

Maciej Strozek and committed by
Lee Jones
efe4c790 944e823d

+18 -25
+18 -25
drivers/mfd/wm831x-auxadc.c
··· 152 152 static int wm831x_auxadc_read_polled(struct wm831x *wm831x, 153 153 enum wm831x_auxadc input) 154 154 { 155 - int ret, src, timeout; 155 + int ret, src; 156 156 157 157 mutex_lock(&wm831x->auxadc_lock); 158 158 ··· 179 179 goto disable; 180 180 } 181 181 182 - /* If we're not using interrupts then poll the 183 - * interrupt status register */ 184 - timeout = 5; 185 - while (timeout) { 186 - msleep(1); 182 + /* If we're not using interrupts then read the interrupt status register */ 183 + msleep(20); 187 184 188 - ret = wm831x_reg_read(wm831x, 189 - WM831X_INTERRUPT_STATUS_1); 190 - if (ret < 0) { 191 - dev_err(wm831x->dev, 192 - "ISR 1 read failed: %d\n", ret); 193 - goto disable; 194 - } 185 + ret = wm831x_reg_read(wm831x, WM831X_INTERRUPT_STATUS_1); 186 + if (ret < 0) { 187 + dev_err(wm831x->dev, 188 + "ISR 1 read failed: %d\n", ret); 189 + goto disable; 190 + } 195 191 196 - /* Did it complete? */ 197 - if (ret & WM831X_AUXADC_DATA_EINT) { 198 - wm831x_reg_write(wm831x, 199 - WM831X_INTERRUPT_STATUS_1, 200 - WM831X_AUXADC_DATA_EINT); 201 - break; 202 - } else { 203 - dev_err(wm831x->dev, 204 - "AUXADC conversion timeout\n"); 205 - ret = -EBUSY; 206 - goto disable; 207 - } 192 + /* Did it complete? */ 193 + if (ret & WM831X_AUXADC_DATA_EINT) { 194 + wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1, 195 + WM831X_AUXADC_DATA_EINT); 196 + } else { 197 + dev_err(wm831x->dev, 198 + "AUXADC conversion timeout\n"); 199 + ret = -EBUSY; 200 + goto disable; 208 201 } 209 202 210 203 ret = wm831x_reg_read(wm831x, WM831X_AUXADC_DATA);