Browse Source

[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>
Richard Purdie 20 years ago
parent
commit
c26971cbb3
2 changed files with 4 additions and 1 deletions
  1. 3 1
      drivers/mmc/pxamci.c
  2. 1 0
      include/asm-arm/arch-pxa/mmc.h

+ 3 - 1
drivers/mmc/pxamci.c

@@ -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;
 }
 

+ 1 - 0
include/asm-arm/arch-pxa/mmc.h

@@ -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);