Commit adcbc949 authored by Wolfram Sang's avatar Wolfram Sang Committed by Ulf Hansson

mmc: sh_mobile_sdhi: remove obsolete irq_by_name registration

There is no user left in the kernel, so this code can be removed.
(Legacy, non-DT sh_mobile boards have been removed a while ago.) The

diff looks more complicated than it is: The if-block for multiplexed isr
is now the main code path, the rest is removed.
Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 13bbd8af
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/mmc/sh_mobile_sdhi.h>
#include <linux/mfd/tmio.h> #include <linux/mfd/tmio.h>
#include <linux/sh_dma.h> #include <linux/sh_dma.h>
#include <linux/delay.h> #include <linux/delay.h>
...@@ -316,7 +315,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) ...@@ -316,7 +315,6 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
struct tmio_mmc_host *host; struct tmio_mmc_host *host;
struct resource *res; struct resource *res;
int irq, ret, i = 0; int irq, ret, i = 0;
bool multiplexed_isr = true;
struct tmio_mmc_dma *dma_priv; struct tmio_mmc_dma *dma_priv;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
...@@ -408,62 +406,23 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev) ...@@ -408,62 +406,23 @@ static int sh_mobile_sdhi_probe(struct platform_device *pdev)
if (ret < 0) if (ret < 0)
goto efree; goto efree;
/* while (1) {
* Allow one or more specific (named) ISRs or irq = platform_get_irq(pdev, i);
* one or more multiplexed (un-named) ISRs. if (irq < 0)
*/ break;
i++;
irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_CARD_DETECT); ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0,
if (irq >= 0) {
multiplexed_isr = false;
ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_card_detect_irq, 0,
dev_name(&pdev->dev), host); dev_name(&pdev->dev), host);
if (ret) if (ret)
goto eirq; goto eirq;
} }
irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_SDIO); /* There must be at least one IRQ source */
if (irq >= 0) { if (!i) {
multiplexed_isr = false;
ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_sdio_irq, 0,
dev_name(&pdev->dev), host);
if (ret)
goto eirq;
}
irq = platform_get_irq_byname(pdev, SH_MOBILE_SDHI_IRQ_SDCARD);
if (irq >= 0) {
multiplexed_isr = false;
ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_sdcard_irq, 0,
dev_name(&pdev->dev), host);
if (ret)
goto eirq;
} else if (!multiplexed_isr) {
dev_err(&pdev->dev,
"Principal SD-card IRQ is missing among named interrupts\n");
ret = irq; ret = irq;
goto eirq; goto eirq;
} }
if (multiplexed_isr) {
while (1) {
irq = platform_get_irq(pdev, i);
if (irq < 0)
break;
i++;
ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0,
dev_name(&pdev->dev), host);
if (ret)
goto eirq;
}
/* There must be at least one IRQ source */
if (!i) {
ret = irq;
goto eirq;
}
}
dev_info(&pdev->dev, "%s base at 0x%08lx max clock rate %u MHz\n", dev_info(&pdev->dev, "%s base at 0x%08lx max clock rate %u MHz\n",
mmc_hostname(host->mmc), (unsigned long) mmc_hostname(host->mmc), (unsigned long)
(platform_get_resource(pdev, IORESOURCE_MEM, 0)->start), (platform_get_resource(pdev, IORESOURCE_MEM, 0)->start),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment