2024-01-23 15:50:59

by Maciej Strozek

[permalink] [raw]
Subject: [RESEND PATCH v3] mfd: wm831x: Remove redundant forever while loop

Current code excutes 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 <[email protected]>
---
V2 -> V3: formatting changes: fixed a comment and 2 line-ups, added a new line
V1 -> V2: removed unused variable 'timeout'

drivers/mfd/wm831x-auxadc.c | 43 ++++++++++++++++---------------------
1 file changed, 18 insertions(+), 25 deletions(-)

diff --git a/drivers/mfd/wm831x-auxadc.c b/drivers/mfd/wm831x-auxadc.c
index 65b98f3fbd92..18618a8f9206 100644
--- a/drivers/mfd/wm831x-auxadc.c
+++ b/drivers/mfd/wm831x-auxadc.c
@@ -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);
--
2.34.1



2024-01-24 11:34:45

by Charles Keepax

[permalink] [raw]
Subject: Re: [RESEND PATCH v3] mfd: wm831x: Remove redundant forever while loop

On Tue, Jan 23, 2024 at 03:42:59PM +0000, Maciej Strozek wrote:
> Current code excutes 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 <[email protected]>
> ---

Reviewed-by: Charles Keepax <[email protected]>

Thanks,
Charles

2024-01-25 13:47:22

by Lee Jones

[permalink] [raw]
Subject: Re: (subset) [RESEND PATCH v3] mfd: wm831x: Remove redundant forever while loop

On Tue, 23 Jan 2024 15:42:59 +0000, Maciej Strozek wrote:
> Current code excutes 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.
>
>

Applied, thanks!

[1/1] mfd: wm831x: Remove redundant forever while loop
commit: 1e0ea9e75ff3f395ad6f85f0be2258ef114a53dc

--
Lee Jones [李琼斯]