aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2005-09-08 17:48:16 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-09-08 17:48:16 -0400
commitc26971cbb39727b0b692c6236f890ba13046a663 (patch)
tree7fe39c6770cc87c3d04121cf92727c0ebebe0012
parent01357dcac62ac028de65a1c315eb75c530c8a5d6 (diff)
[MMC] Add mmc_detect_change() delay support for PXAMCI driver
Allow PXA platforms to pass an appropriate delay value to the PXA MCI driver for delaying detection changes. Signed-Off-By: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--drivers/mmc/pxamci.c4
-rw-r--r--include/asm-arm/arch-pxa/mmc.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c
index 5223cd3bfc1e..b53af57074e3 100644
--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -423,7 +423,9 @@ static void pxamci_dma_irq(int dma, void *devid, struct pt_regs *regs)
423 423
424static irqreturn_t pxamci_detect_irq(int irq, void *devid, struct pt_regs *regs) 424static irqreturn_t pxamci_detect_irq(int irq, void *devid, struct pt_regs *regs)
425{ 425{
426 mmc_detect_change(devid, 0); 426 struct pxamci_host *host = mmc_priv(devid);
427
428 mmc_detect_change(devid, host->pdata->detect_delay);
427 return IRQ_HANDLED; 429 return IRQ_HANDLED;
428} 430}
429 431
diff --git a/include/asm-arm/arch-pxa/mmc.h b/include/asm-arm/arch-pxa/mmc.h
index 9718063a2119..88c17dd02ed2 100644
--- a/include/asm-arm/arch-pxa/mmc.h
+++ b/include/asm-arm/arch-pxa/mmc.h
@@ -9,6 +9,7 @@ struct mmc_host;
9 9
10struct pxamci_platform_data { 10struct pxamci_platform_data {
11 unsigned int ocr_mask; /* available voltages */ 11 unsigned int ocr_mask; /* available voltages */
12 unsigned long detect_delay; /* delay in jiffies before detecting cards after interrupt */
12 int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *); 13 int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *);
13 int (*get_ro)(struct device *); 14 int (*get_ro)(struct device *);
14 void (*setpower)(struct device *, unsigned int); 15 void (*setpower)(struct device *, unsigned int);