From ed71cf0ac908582b7f194a932fbba1a0763e63aa Mon Sep 17 00:00:00 2001 From: Balaji T K Date: Wed, 1 Jun 2011 16:45:22 +0530 Subject: [PATCH] --- yaml --- r: 253161 b: refs/heads/master c: 1fcecf281b99f9ca262ae7fbc3703c421be5c857 h: refs/heads/master i: 253159: ea3dd22b45cf78a66504553ff6db5b5788be2689 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/hsmmc.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d211c8548245..8c842cef3c53 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1704bf15deb6de20f8f4272c8d8232b36bbc7484 +refs/heads/master: 1fcecf281b99f9ca262ae7fbc3703c421be5c857 diff --git a/trunk/arch/arm/mach-omap2/hsmmc.c b/trunk/arch/arm/mach-omap2/hsmmc.c index 857f7daa3286..66868c5d5a29 100644 --- a/trunk/arch/arm/mach-omap2/hsmmc.c +++ b/trunk/arch/arm/mach-omap2/hsmmc.c @@ -145,6 +145,7 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, int power_on, int vdd) { u32 reg; + unsigned long timeout; if (power_on) { reg = omap4_ctrl_pad_readl(control_pbias_offset); @@ -157,9 +158,15 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, OMAP4_MMC1_PWRDNZ_MASK | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); omap4_ctrl_pad_writel(reg, control_pbias_offset); - /* 4 microsec delay for comparator to generate an error*/ - udelay(4); - reg = omap4_ctrl_pad_readl(control_pbias_offset); + + timeout = jiffies + msecs_to_jiffies(5); + do { + reg = omap4_ctrl_pad_readl(control_pbias_offset); + if (!(reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK)) + break; + usleep_range(100, 200); + } while (!time_after(jiffies, timeout)); + if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK) { pr_err("Pbias Voltage is not same as LDO\n"); /* Caution : On VMODE_ERROR Power Down MMC IO */