* [PATCH v0 1/4] i2c: bcm-iproc: Use complete() instead of complete_all()
2016-08-03 12:03 [PATCH v0 0/4] Use complete() instead of complete_all() Daniel Wagner
@ 2016-08-03 12:03 ` Daniel Wagner
2016-08-03 16:36 ` Ray Jui
2016-08-03 12:03 ` [PATCH v0 2/4] i2c: bcm-kona: " Daniel Wagner
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Daniel Wagner @ 2016-08-03 12:03 UTC (permalink / raw)
To: Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().
The usage pattern of the completion is:
bcm_iproc_i2c_xfer_single_msg()
reinit_completion()
...
(activate the transfer)
...
wait_for_completion_timeout()
Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
drivers/i2c/busses/i2c-bcm-iproc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c
index 19c8438..95f7cac 100644
--- a/drivers/i2c/busses/i2c-bcm-iproc.c
+++ b/drivers/i2c/busses/i2c-bcm-iproc.c
@@ -158,7 +158,7 @@ static irqreturn_t bcm_iproc_i2c_isr(int irq, void *data)
if (status & BIT(IS_M_START_BUSY_SHIFT)) {
iproc_i2c->xfer_is_done = 1;
- complete_all(&iproc_i2c->done);
+ complete(&iproc_i2c->done);
}
writel(status, iproc_i2c->base + IS_OFFSET);
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v0 1/4] i2c: bcm-iproc: Use complete() instead of complete_all()
2016-08-03 12:03 ` [PATCH v0 1/4] i2c: bcm-iproc: " Daniel Wagner
@ 2016-08-03 16:36 ` Ray Jui
0 siblings, 0 replies; 10+ messages in thread
From: Ray Jui @ 2016-08-03 16:36 UTC (permalink / raw)
To: Daniel Wagner, Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
Hi Daniel,
On 8/3/2016 5:03 AM, Daniel Wagner wrote:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
>
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
>
> The usage pattern of the completion is:
>
> bcm_iproc_i2c_xfer_single_msg()
> reinit_completion()
> ...
> (activate the transfer)
> ...
> wait_for_completion_timeout()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
> ---
> drivers/i2c/busses/i2c-bcm-iproc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c
> index 19c8438..95f7cac 100644
> --- a/drivers/i2c/busses/i2c-bcm-iproc.c
> +++ b/drivers/i2c/busses/i2c-bcm-iproc.c
> @@ -158,7 +158,7 @@ static irqreturn_t bcm_iproc_i2c_isr(int irq, void *data)
>
> if (status & BIT(IS_M_START_BUSY_SHIFT)) {
> iproc_i2c->xfer_is_done = 1;
> - complete_all(&iproc_i2c->done);
> + complete(&iproc_i2c->done);
> }
>
> writel(status, iproc_i2c->base + IS_OFFSET);
>
Yes each time there's only one waiter invoked from the main transfer
routine 'bcm_iproc_i2c_xfer_single_msg'.
This change looks good to me, thanks!
Acked-by: Ray Jui <ray.jui@broadcom.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v0 2/4] i2c: bcm-kona: Use complete() instead of complete_all()
2016-08-03 12:03 [PATCH v0 0/4] Use complete() instead of complete_all() Daniel Wagner
2016-08-03 12:03 ` [PATCH v0 1/4] i2c: bcm-iproc: " Daniel Wagner
@ 2016-08-03 12:03 ` Daniel Wagner
2016-08-03 16:38 ` Ray Jui
2016-08-05 4:16 ` Tim Kryger
2016-08-03 12:03 ` [PATCH v0 3/4] i2c: brcmstb: " Daniel Wagner
2016-08-03 12:03 ` [PATCH v0 4/4] i2c: meson: " Daniel Wagner
3 siblings, 2 replies; 10+ messages in thread
From: Daniel Wagner @ 2016-08-03 12:03 UTC (permalink / raw)
To: Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().
The usage pattern of the completion is:
bcm_kona_send_i2c_cmd()
reinit_completion()
...
bcm_kona_i2c_send_cmd_to_ctrl()
...
wait_for_completion_timeout()
Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-bcm-kona.c b/drivers/i2c/busses/i2c-bcm-kona.c
index ac9f476..f987432 100644
--- a/drivers/i2c/busses/i2c-bcm-kona.c
+++ b/drivers/i2c/busses/i2c-bcm-kona.c
@@ -229,7 +229,7 @@ static irqreturn_t bcm_kona_i2c_isr(int irq, void *devid)
dev->base + TXFCR_OFFSET);
writel(status & ~ISR_RESERVED_MASK, dev->base + ISR_OFFSET);
- complete_all(&dev->done);
+ complete(&dev->done);
return IRQ_HANDLED;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v0 2/4] i2c: bcm-kona: Use complete() instead of complete_all()
2016-08-03 12:03 ` [PATCH v0 2/4] i2c: bcm-kona: " Daniel Wagner
@ 2016-08-03 16:38 ` Ray Jui
2016-08-05 4:16 ` Tim Kryger
1 sibling, 0 replies; 10+ messages in thread
From: Ray Jui @ 2016-08-03 16:38 UTC (permalink / raw)
To: Daniel Wagner, Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
Hi Daniel,
On 8/3/2016 5:03 AM, Daniel Wagner wrote:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
>
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
>
> The usage pattern of the completion is:
>
> bcm_kona_send_i2c_cmd()
> reinit_completion()
> ...
> bcm_kona_i2c_send_cmd_to_ctrl()
> ...
> wait_for_completion_timeout()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
> ---
> drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-bcm-kona.c b/drivers/i2c/busses/i2c-bcm-kona.c
> index ac9f476..f987432 100644
> --- a/drivers/i2c/busses/i2c-bcm-kona.c
> +++ b/drivers/i2c/busses/i2c-bcm-kona.c
> @@ -229,7 +229,7 @@ static irqreturn_t bcm_kona_i2c_isr(int irq, void *devid)
> dev->base + TXFCR_OFFSET);
>
> writel(status & ~ISR_RESERVED_MASK, dev->base + ISR_OFFSET);
> - complete_all(&dev->done);
> + complete(&dev->done);
>
> return IRQ_HANDLED;
> }
>
This change looks good me! Thanks.
Acked-by: Ray Jui <ray.jui@broadcom.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v0 2/4] i2c: bcm-kona: Use complete() instead of complete_all()
2016-08-03 12:03 ` [PATCH v0 2/4] i2c: bcm-kona: " Daniel Wagner
2016-08-03 16:38 ` Ray Jui
@ 2016-08-05 4:16 ` Tim Kryger
1 sibling, 0 replies; 10+ messages in thread
From: Tim Kryger @ 2016-08-05 4:16 UTC (permalink / raw)
To: Daniel Wagner
Cc: Wolfram Sang, Kamal Dasu, Tim Kryger, Ray Jui, Daniel Wagner,
Linux Kernel Mailing List, Beniamino Galvani,
Broadcom Kernel Feedback, linux-i2c, linux-amlogic,
linux-arm-kernel
On Wed, Aug 3, 2016 at 5:03 AM, Daniel Wagner <wagi@monom.org> wrote:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
>
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
>
> The usage pattern of the completion is:
>
> bcm_kona_send_i2c_cmd()
> reinit_completion()
> ...
> bcm_kona_i2c_send_cmd_to_ctrl()
> ...
> wait_for_completion_timeout()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Reviewed-by: Tim Kryger <tim.kryger@gmail.com>
> ---
> drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-bcm-kona.c b/drivers/i2c/busses/i2c-bcm-kona.c
> index ac9f476..f987432 100644
> --- a/drivers/i2c/busses/i2c-bcm-kona.c
> +++ b/drivers/i2c/busses/i2c-bcm-kona.c
> @@ -229,7 +229,7 @@ static irqreturn_t bcm_kona_i2c_isr(int irq, void *devid)
> dev->base + TXFCR_OFFSET);
>
> writel(status & ~ISR_RESERVED_MASK, dev->base + ISR_OFFSET);
> - complete_all(&dev->done);
> + complete(&dev->done);
>
> return IRQ_HANDLED;
> }
> --
> 2.7.4
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v0 3/4] i2c: brcmstb: Use complete() instead of complete_all()
2016-08-03 12:03 [PATCH v0 0/4] Use complete() instead of complete_all() Daniel Wagner
2016-08-03 12:03 ` [PATCH v0 1/4] i2c: bcm-iproc: " Daniel Wagner
2016-08-03 12:03 ` [PATCH v0 2/4] i2c: bcm-kona: " Daniel Wagner
@ 2016-08-03 12:03 ` Daniel Wagner
2016-08-03 16:00 ` Kamal Dasu
2016-08-03 12:03 ` [PATCH v0 4/4] i2c: meson: " Daniel Wagner
3 siblings, 1 reply; 10+ messages in thread
From: Daniel Wagner @ 2016-08-03 12:03 UTC (permalink / raw)
To: Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().
The usage pattern of the completion is:
brcmstb_send_i2c_cmd()
reinit_completion()
...
/* initiate transfer by setting iic_enable */
...
brcmstb_i2c_wait_for_completion()
Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
drivers/i2c/busses/i2c-brcmstb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-brcmstb.c b/drivers/i2c/busses/i2c-brcmstb.c
index 6a8cfc1..ab4ff96 100644
--- a/drivers/i2c/busses/i2c-brcmstb.c
+++ b/drivers/i2c/busses/i2c-brcmstb.c
@@ -228,7 +228,7 @@ static irqreturn_t brcmstb_i2c_isr(int irq, void *devid)
return IRQ_NONE;
brcmstb_i2c_enable_disable_irq(dev, INT_DISABLE);
- complete_all(&dev->done);
+ complete(&dev->done);
dev_dbg(dev->device, "isr handled");
return IRQ_HANDLED;
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v0 3/4] i2c: brcmstb: Use complete() instead of complete_all()
2016-08-03 12:03 ` [PATCH v0 3/4] i2c: brcmstb: " Daniel Wagner
@ 2016-08-03 16:00 ` Kamal Dasu
0 siblings, 0 replies; 10+ messages in thread
From: Kamal Dasu @ 2016-08-03 16:00 UTC (permalink / raw)
To: Daniel Wagner
Cc: Wolfram Sang, Beniamino Galvani, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
Jayachandran C <jchandra@broadcom.com>,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
LGTM
On Wed, Aug 3, 2016 at 8:03 AM, Daniel Wagner <wagi@monom.org> wrote:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
>
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
>
> The usage pattern of the completion is:
>
> brcmstb_send_i2c_cmd()
> reinit_completion()
> ...
> /* initiate transfer by setting iic_enable */
> ...
> brcmstb_i2c_wait_for_completion()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Reviewed-by: Kamal Dasu <kdasu.kdev@gmail.com>
> ---
> drivers/i2c/busses/i2c-brcmstb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-brcmstb.c b/drivers/i2c/busses/i2c-brcmstb.c
> index 6a8cfc1..ab4ff96 100644
> --- a/drivers/i2c/busses/i2c-brcmstb.c
> +++ b/drivers/i2c/busses/i2c-brcmstb.c
> @@ -228,7 +228,7 @@ static irqreturn_t brcmstb_i2c_isr(int irq, void *devid)
> return IRQ_NONE;
>
> brcmstb_i2c_enable_disable_irq(dev, INT_DISABLE);
> - complete_all(&dev->done);
> + complete(&dev->done);
>
> dev_dbg(dev->device, "isr handled");
> return IRQ_HANDLED;
> --
> 2.7.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v0 4/4] i2c: meson: Use complete() instead of complete_all()
2016-08-03 12:03 [PATCH v0 0/4] Use complete() instead of complete_all() Daniel Wagner
` (2 preceding siblings ...)
2016-08-03 12:03 ` [PATCH v0 3/4] i2c: brcmstb: " Daniel Wagner
@ 2016-08-03 12:03 ` Daniel Wagner
2016-08-16 13:12 ` Kevin Hilman
3 siblings, 1 reply; 10+ messages in thread
From: Daniel Wagner @ 2016-08-03 12:03 UTC (permalink / raw)
To: Wolfram Sang
Cc: Beniamino Galvani, Kamal Dasu, Ray Jui, Tim Kryger,
linux-amlogic, linux-arm-kernel, linux-i2c,
bcm-kernel-feedback-list, linux-kernel, Daniel Wagner
From: Daniel Wagner <daniel.wagner@bmw-carit.de>
There is only one waiter for the completion, therefore there
is no need to use complete_all(). Let's make that clear by
using complete() instead of complete_all().
The usage pattern of the completion is:
meson_i2c_xfer_msg()
reinit_completion()
...
/* Start the transfer */
...
wait_for_completion_timeout()
Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
drivers/i2c/busses/i2c-meson.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c
index 71d3929..76e2898 100644
--- a/drivers/i2c/busses/i2c-meson.c
+++ b/drivers/i2c/busses/i2c-meson.c
@@ -211,7 +211,7 @@ static void meson_i2c_stop(struct meson_i2c *i2c)
meson_i2c_add_token(i2c, TOKEN_STOP);
} else {
i2c->state = STATE_IDLE;
- complete_all(&i2c->done);
+ complete(&i2c->done);
}
}
@@ -238,7 +238,7 @@ static irqreturn_t meson_i2c_irq(int irqno, void *dev_id)
dev_dbg(i2c->dev, "error bit set\n");
i2c->error = -ENXIO;
i2c->state = STATE_IDLE;
- complete_all(&i2c->done);
+ complete(&i2c->done);
goto out;
}
@@ -269,7 +269,7 @@ static irqreturn_t meson_i2c_irq(int irqno, void *dev_id)
break;
case STATE_STOP:
i2c->state = STATE_IDLE;
- complete_all(&i2c->done);
+ complete(&i2c->done);
break;
case STATE_IDLE:
break;
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v0 4/4] i2c: meson: Use complete() instead of complete_all()
2016-08-03 12:03 ` [PATCH v0 4/4] i2c: meson: " Daniel Wagner
@ 2016-08-16 13:12 ` Kevin Hilman
0 siblings, 0 replies; 10+ messages in thread
From: Kevin Hilman @ 2016-08-16 13:12 UTC (permalink / raw)
To: Daniel Wagner
Cc: Wolfram Sang, Kamal Dasu, Tim Kryger, Ray Jui, Daniel Wagner,
linux-kernel, Beniamino Galvani, bcm-kernel-feedback-list,
linux-i2c, linux-amlogic, linux-arm-kernel
Daniel Wagner <wagi@monom.org> writes:
> From: Daniel Wagner <daniel.wagner@bmw-carit.de>
>
> There is only one waiter for the completion, therefore there
> is no need to use complete_all(). Let's make that clear by
> using complete() instead of complete_all().
>
> The usage pattern of the completion is:
>
> meson_i2c_xfer_msg()
> reinit_completion()
> ...
> /* Start the transfer */
> ...
> wait_for_completion_timeout()
>
> Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Acked-by: Kevin Hilman <khilman@baylibre.com>
^ permalink raw reply [flat|nested] 10+ messages in thread