* [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers
@ 2021-08-12 20:32 Sergey Shtylyov
2021-08-12 20:33 ` Sergey Shtylyov
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Sergey Shtylyov @ 2021-08-12 20:32 UTC (permalink / raw)
To: linux-i2c, Ard Biesheuvel
Here are 2 patches against the 'i2c/for-current' branch of Wolfram's 'linux.git' repo.
The affected drivers call platform_get_irq() but override its result in case of error
which prevents the deferred probing from working.
I've dropped the patch fixing the i2c-pca-platform driver as I considered a fallback
to polling better than (not guaranteed to work) deferred probing...
[1/2] i2c: iop3xx: fix deferred probing
[2/2] i2c: synquacer: fix deferred probing
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers
2021-08-12 20:32 [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers Sergey Shtylyov
@ 2021-08-12 20:33 ` Sergey Shtylyov
2021-08-12 20:35 ` [PATCH v3 1/2] i2c: iop3xx: fix deferred probing Sergey Shtylyov
2021-08-12 20:39 ` [PATCH v2 2/2] i2c: synquacer: " Sergey Shtylyov
2 siblings, 0 replies; 8+ messages in thread
From: Sergey Shtylyov @ 2021-08-12 20:33 UTC (permalink / raw)
To: linux-i2c, Ard Biesheuvel
The subject should've had v3, not v2, sorry!
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/2] i2c: iop3xx: fix deferred probing
2021-08-12 20:32 [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers Sergey Shtylyov
2021-08-12 20:33 ` Sergey Shtylyov
@ 2021-08-12 20:35 ` Sergey Shtylyov
2021-08-17 19:45 ` Wolfram Sang
2021-08-12 20:39 ` [PATCH v2 2/2] i2c: synquacer: " Sergey Shtylyov
2 siblings, 1 reply; 8+ messages in thread
From: Sergey Shtylyov @ 2021-08-12 20:35 UTC (permalink / raw)
To: linux-i2c, Ard Biesheuvel
When adding the code to handle platform_get_irq*() errors in the commit
489447380a29 ("[PATCH] handle errors returned by platform_get_irq*()"),
the actual error code was enforced to be -ENXIO in the driver for some
strange reason. This didn't matter much until the deferred probing was
introduced -- which requires an actual error code to be propagated
upstream from the failure site.
While fixing this, also stop overriding the errors from request_irq() to
-EIO (done since the pre-git era).
Fixes: 489447380a29 ("[PATCH] handle errors returned by platform_get_irq*()")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
Changed in version 2:
- refreshed the patch.
Changed in version 2:
- added an article and a space to the patch description;
- updated domain in the OMP email addresses.
drivers/i2c/busses/i2c-iop3xx.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Index: linux/drivers/i2c/busses/i2c-iop3xx.c
===================================================================
--- linux.orig/drivers/i2c/busses/i2c-iop3xx.c
+++ linux/drivers/i2c/busses/i2c-iop3xx.c
@@ -467,16 +467,14 @@ iop3xx_i2c_probe(struct platform_device
irq = platform_get_irq(pdev, 0);
if (irq < 0) {
- ret = -ENXIO;
+ ret = irq;
goto unmap;
}
ret = request_irq(irq, iop3xx_i2c_irq_handler, 0,
pdev->name, adapter_data);
- if (ret) {
- ret = -EIO;
+ if (ret)
goto unmap;
- }
memcpy(new_adapter->name, pdev->name, strlen(pdev->name));
new_adapter->owner = THIS_MODULE;
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/2] i2c: iop3xx: fix deferred probing
2021-08-12 20:35 ` [PATCH v3 1/2] i2c: iop3xx: fix deferred probing Sergey Shtylyov
@ 2021-08-17 19:45 ` Wolfram Sang
0 siblings, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2021-08-17 19:45 UTC (permalink / raw)
To: Sergey Shtylyov; +Cc: linux-i2c, Ard Biesheuvel
[-- Attachment #1: Type: text/plain, Size: 765 bytes --]
On Thu, Aug 12, 2021 at 11:35:09PM +0300, Sergey Shtylyov wrote:
> When adding the code to handle platform_get_irq*() errors in the commit
> 489447380a29 ("[PATCH] handle errors returned by platform_get_irq*()"),
> the actual error code was enforced to be -ENXIO in the driver for some
> strange reason. This didn't matter much until the deferred probing was
> introduced -- which requires an actual error code to be propagated
> upstream from the failure site.
>
> While fixing this, also stop overriding the errors from request_irq() to
> -EIO (done since the pre-git era).
>
> Fixes: 489447380a29 ("[PATCH] handle errors returned by platform_get_irq*()")
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] i2c: synquacer: fix deferred probing
2021-08-12 20:32 [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers Sergey Shtylyov
2021-08-12 20:33 ` Sergey Shtylyov
2021-08-12 20:35 ` [PATCH v3 1/2] i2c: iop3xx: fix deferred probing Sergey Shtylyov
@ 2021-08-12 20:39 ` Sergey Shtylyov
2021-08-16 9:29 ` Ard Biesheuvel
2021-08-17 19:42 ` Wolfram Sang
2 siblings, 2 replies; 8+ messages in thread
From: Sergey Shtylyov @ 2021-08-12 20:39 UTC (permalink / raw)
To: linux-i2c, Ard Biesheuvel
The driver overrides the error codes returned by platform_get_irq() to
-ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the
error codes upstream...
Fixes: 0d676a6c4390 ("i2c: add support for Socionext SynQuacer I2C controller")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
---
drivers/i2c/busses/i2c-synquacer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux/drivers/i2c/busses/i2c-synquacer.c
===================================================================
--- linux.orig/drivers/i2c/busses/i2c-synquacer.c
+++ linux/drivers/i2c/busses/i2c-synquacer.c
@@ -578,7 +578,7 @@ static int synquacer_i2c_probe(struct pl
i2c->irq = platform_get_irq(pdev, 0);
if (i2c->irq < 0)
- return -ENODEV;
+ return i2c->irq;
ret = devm_request_irq(&pdev->dev, i2c->irq, synquacer_i2c_isr,
0, dev_name(&pdev->dev), i2c);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] i2c: synquacer: fix deferred probing
2021-08-12 20:39 ` [PATCH v2 2/2] i2c: synquacer: " Sergey Shtylyov
@ 2021-08-16 9:29 ` Ard Biesheuvel
2021-08-17 19:42 ` Wolfram Sang
1 sibling, 0 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2021-08-16 9:29 UTC (permalink / raw)
To: Sergey Shtylyov; +Cc: linux-i2c
On Thu, 12 Aug 2021 at 22:39, Sergey Shtylyov <s.shtylyov@omp.ru> wrote:
>
> The driver overrides the error codes returned by platform_get_irq() to
> -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
> permanently instead of the deferred probing. Switch to propagating the
> error codes upstream...
>
> Fixes: 0d676a6c4390 ("i2c: add support for Socionext SynQuacer I2C controller")
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
>
> ---
> drivers/i2c/busses/i2c-synquacer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux/drivers/i2c/busses/i2c-synquacer.c
> ===================================================================
> --- linux.orig/drivers/i2c/busses/i2c-synquacer.c
> +++ linux/drivers/i2c/busses/i2c-synquacer.c
> @@ -578,7 +578,7 @@ static int synquacer_i2c_probe(struct pl
>
> i2c->irq = platform_get_irq(pdev, 0);
> if (i2c->irq < 0)
> - return -ENODEV;
> + return i2c->irq;
>
> ret = devm_request_irq(&pdev->dev, i2c->irq, synquacer_i2c_isr,
> 0, dev_name(&pdev->dev), i2c);
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] i2c: synquacer: fix deferred probing
2021-08-12 20:39 ` [PATCH v2 2/2] i2c: synquacer: " Sergey Shtylyov
2021-08-16 9:29 ` Ard Biesheuvel
@ 2021-08-17 19:42 ` Wolfram Sang
1 sibling, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2021-08-17 19:42 UTC (permalink / raw)
To: Sergey Shtylyov; +Cc: linux-i2c, Ard Biesheuvel
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
On Thu, Aug 12, 2021 at 11:39:11PM +0300, Sergey Shtylyov wrote:
> The driver overrides the error codes returned by platform_get_irq() to
> -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe
> permanently instead of the deferred probing. Switch to propagating the
> error codes upstream...
>
> Fixes: 0d676a6c4390 ("i2c: add support for Socionext SynQuacer I2C controller")
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omprussia.ru>
>
Applied to for-next, thanks!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers
@ 2021-06-24 20:17 Sergey Shtylyov
0 siblings, 0 replies; 8+ messages in thread
From: Sergey Shtylyov @ 2021-06-24 20:17 UTC (permalink / raw)
To: linux-i2c, Ard Biesheuvel
Here are 3 patches against the 'i2c/for-current' branch of Wolfram's 'linux.git' repo.
The affected drivers call platform_get_irq() but override its result in case of error
which prevents the deferred probing from working.
[1/3] i2c: iop3xx: fix deferred probing
[2/3] i2c: pca-platform: fix deferred probing
[3/3] i2c: synquacer: fix deferred probing
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-08-17 19:45 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-12 20:32 [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers Sergey Shtylyov
2021-08-12 20:33 ` Sergey Shtylyov
2021-08-12 20:35 ` [PATCH v3 1/2] i2c: iop3xx: fix deferred probing Sergey Shtylyov
2021-08-17 19:45 ` Wolfram Sang
2021-08-12 20:39 ` [PATCH v2 2/2] i2c: synquacer: " Sergey Shtylyov
2021-08-16 9:29 ` Ard Biesheuvel
2021-08-17 19:42 ` Wolfram Sang
-- strict thread matches above, loose matches on Subject: below --
2021-06-24 20:17 [PATCH v2 0/3] Fix deferred probing in the I2C bus drivers Sergey Shtylyov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.