Skip to content

Commit

Permalink
s3cmci: make SDIO IRQ hardware IRQ support build-time configurable
Browse files Browse the repository at this point in the history
We have found a couple of boards where the SDIO IRQ hardware support has
failed to work properly, and thus we should make it configurable whether
or not to be included in the driver.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Ben Dooks authored and Linus Torvalds committed Oct 1, 2009
1 parent 68c5ed5 commit 5a2c4fe
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
7 changes: 7 additions & 0 deletions drivers/mmc/host/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,13 @@ config MMC_S3C

If unsure, say N.

config MMC_S3C_HW_SDIO_IRQ
bool "Hardware support for SDIO IRQ"
depends on MMC_S3C
help
Enable the hardware support for SDIO interrupts instead of using
the generic polling code.

choice
prompt "Samsung S3C SD/MMC transfer code"
depends on MMC_S3C
Expand Down
9 changes: 7 additions & 2 deletions drivers/mmc/host/s3cmci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1715,7 +1715,11 @@ static int __devinit s3cmci_probe(struct platform_device *pdev)

mmc->ops = &s3cmci_ops;
mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
#ifdef CONFIG_MMC_S3C_HW_SDIO_IRQ
mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ;
#else
mmc->caps = MMC_CAP_4_BIT_DATA;
#endif
mmc->f_min = host->clk_rate / (host->clk_div * 256);
mmc->f_max = host->clk_rate / host->clk_div;

Expand Down Expand Up @@ -1750,8 +1754,9 @@ static int __devinit s3cmci_probe(struct platform_device *pdev)
s3cmci_debugfs_attach(host);

platform_set_drvdata(pdev, mmc);
dev_info(&pdev->dev, "%s - using %s\n", mmc_hostname(mmc),
s3cmci_host_usedma(host) ? "dma" : "pio");
dev_info(&pdev->dev, "%s - using %s, %s SDIO IRQ\n", mmc_hostname(mmc),
s3cmci_host_usedma(host) ? "dma" : "pio",
mmc->caps & MMC_CAP_SDIO_IRQ ? "hw" : "sw");

return 0;

Expand Down

0 comments on commit 5a2c4fe

Please sign in to comment.