diff options
author | Richard Purdie <rpurdie@rpsys.net> | 2005-09-08 17:48:16 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-09-08 17:48:16 -0400 |
commit | c26971cbb39727b0b692c6236f890ba13046a663 (patch) | |
tree | 7fe39c6770cc87c3d04121cf92727c0ebebe0012 | |
parent | 01357dcac62ac028de65a1c315eb75c530c8a5d6 (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.c | 4 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/mmc.h | 1 |
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 | ||
424 | static irqreturn_t pxamci_detect_irq(int irq, void *devid, struct pt_regs *regs) | 424 | static 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 | ||
10 | struct pxamci_platform_data { | 10 | struct 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); |