mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
mmc: davinci: fix mmc_add_host order in probe
mmc_add_host() makes the host visible to the MMC core. Register the interrupt handlers and advertise MMC_CAP_SDIO_IRQ before that, so the core cannot start using the host before IRQ handling is set up. Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com> Signed-off-by: Ulf Hansson <ulfh@kernel.org>
This commit is contained in:
parent
4401e07263
commit
d04e0151d3
|
|
@ -1294,14 +1294,10 @@ static int davinci_mmcsd_probe(struct platform_device *pdev)
|
|||
goto cpu_freq_fail;
|
||||
}
|
||||
|
||||
ret = mmc_add_host(mmc);
|
||||
if (ret < 0)
|
||||
goto mmc_add_host_fail;
|
||||
|
||||
ret = devm_request_irq(&pdev->dev, irq, mmc_davinci_irq, 0,
|
||||
mmc_hostname(mmc), host);
|
||||
if (ret)
|
||||
goto request_irq_fail;
|
||||
goto mmc_add_host_fail;
|
||||
|
||||
if (host->sdio_irq >= 0) {
|
||||
ret = devm_request_irq(&pdev->dev, host->sdio_irq,
|
||||
|
|
@ -1311,6 +1307,10 @@ static int davinci_mmcsd_probe(struct platform_device *pdev)
|
|||
mmc->caps |= MMC_CAP_SDIO_IRQ;
|
||||
}
|
||||
|
||||
ret = mmc_add_host(mmc);
|
||||
if (ret < 0)
|
||||
goto mmc_add_host_fail;
|
||||
|
||||
rename_region(mem, mmc_hostname(mmc));
|
||||
|
||||
if (mmc->caps & MMC_CAP_8_BIT_DATA)
|
||||
|
|
@ -1324,8 +1324,6 @@ static int davinci_mmcsd_probe(struct platform_device *pdev)
|
|||
|
||||
return 0;
|
||||
|
||||
request_irq_fail:
|
||||
mmc_remove_host(mmc);
|
||||
mmc_add_host_fail:
|
||||
mmc_davinci_cpufreq_deregister(host);
|
||||
cpu_freq_fail:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user