| From c2df53c5806cfd746dae08e07bc8c4ad247c3b70 Mon Sep 17 00:00:00 2001 |
| From: Sergey Shtylyov <s.shtylyov@omp.ru> |
| Date: Sat, 17 Jun 2023 23:36:21 +0300 |
| Subject: mmc: sunxi: fix deferred probing |
| |
| From: Sergey Shtylyov <s.shtylyov@omp.ru> |
| |
| commit c2df53c5806cfd746dae08e07bc8c4ad247c3b70 upstream. |
| |
| The driver overrides the error codes and IRQ0 returned by platform_get_irq() |
| to -EINVAL, 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. Since commit ce753ad1549c ("platform: finally disallow IRQ0 |
| in platform_get_irq() and its ilk") IRQ0 is no longer returned by those APIs, |
| so we now can safely ignore it... |
| |
| Fixes: 2408a08583d2 ("mmc: sunxi-mmc: Handle return value of platform_get_irq") |
| Cc: stable@vger.kernel.org # v5.19+ |
| Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru> |
| Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> |
| Link: https://lore.kernel.org/r/20230617203622.6812-12-s.shtylyov@omp.ru |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/mmc/host/sunxi-mmc.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c |
| index 3db9f32d6a7b..69dcb8805e05 100644 |
| --- a/drivers/mmc/host/sunxi-mmc.c |
| +++ b/drivers/mmc/host/sunxi-mmc.c |
| @@ -1350,8 +1350,8 @@ static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host, |
| return ret; |
| |
| host->irq = platform_get_irq(pdev, 0); |
| - if (host->irq <= 0) { |
| - ret = -EINVAL; |
| + if (host->irq < 0) { |
| + ret = host->irq; |
| goto error_disable_mmc; |
| } |
| |
| -- |
| 2.41.0 |
| |