[MMC] Add mmc_detect_change() delay support for PXAMCI driver
authorRichard Purdie <rpurdie@rpsys.net>
Thu, 8 Sep 2005 21:48:16 +0000 (22:48 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 8 Sep 2005 21:48:16 +0000 (22:48 +0100)
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>
drivers/mmc/pxamci.c
include/asm-arm/arch-pxa/mmc.h

index 5223cd3..b53af57 100644 (file)
@@ -423,7 +423,9 @@ static void pxamci_dma_irq(int dma, void *devid, struct pt_regs *regs)
 
 static irqreturn_t pxamci_detect_irq(int irq, void *devid, struct pt_regs *regs)
 {
-       mmc_detect_change(devid, 0);
+       struct pxamci_host *host = mmc_priv(devid);
+
+       mmc_detect_change(devid, host->pdata->detect_delay);
        return IRQ_HANDLED;
 }
 
index 9718063..88c17dd 100644 (file)
@@ -9,6 +9,7 @@ struct mmc_host;
 
 struct pxamci_platform_data {
        unsigned int ocr_mask;                  /* available voltages */
+       unsigned long detect_delay;             /* delay in jiffies before detecting cards after interrupt */
        int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *);
        int (*get_ro)(struct device *);
        void (*setpower)(struct device *, unsigned int);