From: Zubair Lutfullah Kakakhel Date: Wed, 28 Mar 2018 21:00:47 +0000 (-0300) Subject: mmc: jz4740: Reset the device requesting the interrupt X-Git-Tag: v4.18-rc1~137^2~85 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=436a3cfddcb7a9b92a2035464139ea6be2afe74c;p=users%2Fwilly%2Flinux.git mmc: jz4740: Reset the device requesting the interrupt In case a bootloader leaves the device in a bad state, requesting the interrupt before resetting results in a bad interrupt loop. Signed-off-by: Zubair Lutfullah Kakakhel [Ezequiel: cleanup commit description] Tested-by: Mathieu Malaterre Signed-off-by: Ezequiel Garcia Signed-off-by: Ulf Hansson --- diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c index b11f65077ce7..9f316d953b30 100644 --- a/drivers/mmc/host/jz4740_mmc.c +++ b/drivers/mmc/host/jz4740_mmc.c @@ -1027,6 +1027,8 @@ static int jz4740_mmc_probe(struct platform_device* pdev) spin_lock_init(&host->lock); host->irq_mask = 0xffff; + jz4740_mmc_reset(host); + ret = request_threaded_irq(host->irq, jz_mmc_irq, jz_mmc_irq_worker, 0, dev_name(&pdev->dev), host); if (ret) { @@ -1034,7 +1036,6 @@ static int jz4740_mmc_probe(struct platform_device* pdev) goto err_free_gpios; } - jz4740_mmc_reset(host); jz4740_mmc_clock_disable(host); timer_setup(&host->timeout_timer, jz4740_mmc_timeout, 0);