mfd: wm831x: Remove redundant forever while loop
authorMaciej Strozek <mstrozek@opensource.cirrus.com>
Tue, 23 Jan 2024 15:42:59 +0000 (15:42 +0000)
committerLee Jones <lee@kernel.org>
Fri, 23 Feb 2024 14:58:01 +0000 (14:58 +0000)
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>
drivers/mfd/wm831x-auxadc.c

index 65b98f3fbd929100391913cb9faae2744c1ca08b..18618a8f92062e9415f157020ffbeba46df359cd 100644 (file)
@@ -152,7 +152,7 @@ static irqreturn_t wm831x_auxadc_irq(int irq, void *irq_data)
 static int wm831x_auxadc_read_polled(struct wm831x *wm831x,
                                     enum wm831x_auxadc input)
 {
-       int ret, src, timeout;
+       int ret, src;
 
        mutex_lock(&wm831x->auxadc_lock);
 
@@ -179,32 +179,25 @@ static int wm831x_auxadc_read_polled(struct wm831x *wm831x,
                goto disable;
        }
 
-       /* If we're not using interrupts then poll the
-        * interrupt status register */
-       timeout = 5;
-       while (timeout) {
-               msleep(1);
+       /* If we're not using interrupts then read the interrupt status register */
+       msleep(20);
 
-               ret = wm831x_reg_read(wm831x,
-                                     WM831X_INTERRUPT_STATUS_1);
-               if (ret < 0) {
-                       dev_err(wm831x->dev,
-                               "ISR 1 read failed: %d\n", ret);
-                       goto disable;
-               }
+       ret = wm831x_reg_read(wm831x, WM831X_INTERRUPT_STATUS_1);
+       if (ret < 0) {
+               dev_err(wm831x->dev,
+                       "ISR 1 read failed: %d\n", ret);
+               goto disable;
+       }
 
-               /* Did it complete? */
-               if (ret & WM831X_AUXADC_DATA_EINT) {
-                       wm831x_reg_write(wm831x,
-                                        WM831X_INTERRUPT_STATUS_1,
-                                        WM831X_AUXADC_DATA_EINT);
-                       break;
-               } else {
-                       dev_err(wm831x->dev,
-                               "AUXADC conversion timeout\n");
-                       ret = -EBUSY;
-                       goto disable;
-               }
+       /* Did it complete? */
+       if (ret & WM831X_AUXADC_DATA_EINT) {
+               wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1,
+                               WM831X_AUXADC_DATA_EINT);
+       } else {
+               dev_err(wm831x->dev,
+                       "AUXADC conversion timeout\n");
+               ret = -EBUSY;
+               goto disable;
        }
 
        ret = wm831x_reg_read(wm831x, WM831X_AUXADC_DATA);