Thread (7 messages) 7 messages, 3 authors, 2012-05-30

Re: Regression for non-eMMC cards with commit fa550189?

From: Felipe Balbi <hidden>
Date: 2012-05-29 12:50:26
Also in: linux-arm-kernel, linux-omap
Subsystem: arm port, omap2+ support, the rest · Maintainers: Russell King, Aaro Koskinen, Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren, Linus Torvalds

Hi,

On Tue, May 29, 2012 at 05:47:32AM -0700, Tony Lindgren wrote:
* Felipe Balbi [off-list ref] [120529 00:46]:
quoted
Can you enable debugging on menelaus so we see what the driver is doing ?

I believe that to change the VMMC's supply voltage you need to turn off
the regulator, meaning LDO_CTRL7[1:0] = 0b00.
Looks like it's some kind of race between the slots that now gets triggered
in the omap driver.

Commenting out the second slot in the board file fixes things. I tried adding
a mutex to protect the sequence between POWER_UP and POWER_ON, but no luck yet.

Also adding printk statements here and there makes it work again.
does this help ?
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 518091c..5a224fc 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -397,8 +397,8 @@ static int n8x0_mmc_late_init(struct device *dev)
 	if (r < 0)
 		return r;
 
-	n8x0_mmc_set_power(dev, 0, MMC_POWER_ON, 16); /* MMC_VDD_28_29 */
-	n8x0_mmc_set_power(dev, 1, MMC_POWER_ON, 16);
+//	n8x0_mmc_set_power(dev, 0, MMC_POWER_ON, 16); /* MMC_VDD_28_29 */
+//	n8x0_mmc_set_power(dev, 1, MMC_POWER_ON, 16);
 
 	r = menelaus_set_mmc_slot(1, 1, 0, 1);
 	if (r < 0)
-- 
balbi

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help