Loading drivers/mmc/mmc.c +8 −4 Original line number Diff line number Diff line Loading @@ -1079,12 +1079,16 @@ static void mmc_setup(struct mmc_host *host) /** * mmc_detect_change - process change of state on a MMC socket * @host: host which changed state. * @delay: optional delay to wait before detection (jiffies) * * All we know is that card(s) have been inserted or removed * from the socket(s). We don't know which socket or cards. */ void mmc_detect_change(struct mmc_host *host) void mmc_detect_change(struct mmc_host *host, unsigned long delay) { if (delay) schedule_delayed_work(&host->detect, delay); else schedule_work(&host->detect); } Loading Loading @@ -1189,7 +1193,7 @@ int mmc_add_host(struct mmc_host *host) ret = mmc_add_host_sysfs(host); if (ret == 0) { mmc_power_off(host); mmc_detect_change(host); mmc_detect_change(host, 0); } return ret; Loading Loading @@ -1259,7 +1263,7 @@ EXPORT_SYMBOL(mmc_suspend_host); */ int mmc_resume_host(struct mmc_host *host) { mmc_detect_change(host); mmc_detect_change(host, 0); return 0; } Loading drivers/mmc/mmci.c +1 −1 Original line number Diff line number Diff line Loading @@ -442,7 +442,7 @@ static void mmci_check_status(unsigned long data) status = host->plat->status(mmc_dev(host->mmc)); if (status ^ host->oldstat) mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); host->oldstat = status; mod_timer(&host->timer, jiffies + HZ); Loading drivers/mmc/pxamci.c +3 −1 Original line number Diff line number Diff line Loading @@ -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); struct pxamci_host *host = mmc_priv(devid); mmc_detect_change(devid, host->pdata->detect_delay); return IRQ_HANDLED; } Loading drivers/mmc/wbsd.c +2 −2 Original line number Diff line number Diff line Loading @@ -1122,7 +1122,7 @@ static void wbsd_detect_card(unsigned long data) DBG("Executing card detection\n"); mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); } /* Loading Loading @@ -1198,7 +1198,7 @@ static void wbsd_tasklet_card(unsigned long param) */ spin_unlock(&host->lock); mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); } else spin_unlock(&host->lock); Loading include/asm-arm/arch-pxa/mmc.h +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
drivers/mmc/mmc.c +8 −4 Original line number Diff line number Diff line Loading @@ -1079,12 +1079,16 @@ static void mmc_setup(struct mmc_host *host) /** * mmc_detect_change - process change of state on a MMC socket * @host: host which changed state. * @delay: optional delay to wait before detection (jiffies) * * All we know is that card(s) have been inserted or removed * from the socket(s). We don't know which socket or cards. */ void mmc_detect_change(struct mmc_host *host) void mmc_detect_change(struct mmc_host *host, unsigned long delay) { if (delay) schedule_delayed_work(&host->detect, delay); else schedule_work(&host->detect); } Loading Loading @@ -1189,7 +1193,7 @@ int mmc_add_host(struct mmc_host *host) ret = mmc_add_host_sysfs(host); if (ret == 0) { mmc_power_off(host); mmc_detect_change(host); mmc_detect_change(host, 0); } return ret; Loading Loading @@ -1259,7 +1263,7 @@ EXPORT_SYMBOL(mmc_suspend_host); */ int mmc_resume_host(struct mmc_host *host) { mmc_detect_change(host); mmc_detect_change(host, 0); return 0; } Loading
drivers/mmc/mmci.c +1 −1 Original line number Diff line number Diff line Loading @@ -442,7 +442,7 @@ static void mmci_check_status(unsigned long data) status = host->plat->status(mmc_dev(host->mmc)); if (status ^ host->oldstat) mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); host->oldstat = status; mod_timer(&host->timer, jiffies + HZ); Loading
drivers/mmc/pxamci.c +3 −1 Original line number Diff line number Diff line Loading @@ -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); struct pxamci_host *host = mmc_priv(devid); mmc_detect_change(devid, host->pdata->detect_delay); return IRQ_HANDLED; } Loading
drivers/mmc/wbsd.c +2 −2 Original line number Diff line number Diff line Loading @@ -1122,7 +1122,7 @@ static void wbsd_detect_card(unsigned long data) DBG("Executing card detection\n"); mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); } /* Loading Loading @@ -1198,7 +1198,7 @@ static void wbsd_tasklet_card(unsigned long param) */ spin_unlock(&host->lock); mmc_detect_change(host->mmc); mmc_detect_change(host->mmc, 0); } else spin_unlock(&host->lock); Loading
include/asm-arm/arch-pxa/mmc.h +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading