s3cmci: make SDIO IRQ hardware IRQ support build-time configurable
PATCH 27/42 s3cmci: make SDIO IRQ hardware IRQ support build-time configurable
From: Ben Dooks <[email protected]>
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 <[email protected]>
Cc <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/mmc/host/Kconfig | 7 +++++++ drivers/mmc/host/s3cmci.c | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-)
drivers/mmc/host/Kconfig renamed from drivers/mmc/host/Kconfig~s3cmci-make-sdio-irq-hardware-irq-support-build-time-configurable +7 -0
@@ -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
drivers/mmc/host/s3cmci.c renamed from drivers/mmc/host/s3cmci.c~s3cmci-make-sdio-irq-hardware-irq-support-build-time-configurable +7 -2
@@ -1715,7 +1715,11 @@ static int __devinit s3cmci_probe(struct 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;
@@ -1750,8 +1754,9 @@ static int __devinit s3cmci_probe(structs3cmci_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 ;
_