Skip to contentSkip to conversation

ARM: OMAP: fix MMC2 loopback clock handling

PATCH New Grazvydas Ignotas 3 participants 3 messages Jan 12, 2012 – Jan 27, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling

Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.

Fix this by making it disable the clock if board data says so.

---
depends on "ARM: OMAP: fix erroneous mmc2 clock change on mmc3 setup"
http://marc.info/?l=linux-omap&m=132416866125291&w=2

 arch/arm/mach-omap2/hsmmc.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/hsmmc.c +5 -4
index 8658bd7..ad0adb5 100644
@@ -175,11 +175,12 @@ static void hsmmc2_select_input_clk_src(struct omap_mmc_platform_data *mmc)
 {
 	u32 reg;
 
-	if (mmc->slots[0].internal_clock) {
-		reg = omap_ctrl_readl(control_devconf1_offset);
+	reg = omap_ctrl_readl(control_devconf1_offset);
+	if (mmc->slots[0].internal_clock)
 		reg |= OMAP2_MMCSDIO2ADPCLKISEL;
-		omap_ctrl_writel(reg, control_devconf1_offset);
-	}
+	else
+		reg &= ~OMAP2_MMCSDIO2ADPCLKISEL;
+	omap_ctrl_writel(reg, control_devconf1_offset);
 }
 
 static void hsmmc2_before_set_reg(struct device *dev, int slot,
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling

Quoted 8 lines · Grazvydas Ignotas

Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.

Fix this by making it disable the clock if board data says so.

Quoted 28 lines

---
depends on "ARM: OMAP: fix erroneous mmc2 clock change on mmc3 setup"
http://marc.info/?l=linux-omap&m=132416866125291&w=2

 arch/arm/mach-omap2/hsmmc.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/hsmmc.c +5 -4
index 8658bd7..ad0adb5 100644
@@ -175,11 +175,12 @@ static void hsmmc2_select_input_clk_src(struct omap_mmc_platform_data *mmc)
 {
 	u32 reg;
 
-	if (mmc->slots[0].internal_clock) {
-		reg = omap_ctrl_readl(control_devconf1_offset);
+	reg = omap_ctrl_readl(control_devconf1_offset);
+	if (mmc->slots[0].internal_clock)
 		reg |= OMAP2_MMCSDIO2ADPCLKISEL;
-		omap_ctrl_writel(reg, control_devconf1_offset);
-	}
+	else
+		reg &= ~OMAP2_MMCSDIO2ADPCLKISEL;
+	omap_ctrl_writel(reg, control_devconf1_offset);
 }
 
 static void hsmmc2_before_set_reg(struct device *dev, int slot,
Signature · 2 lines
Regards,
Igor.
maintainer
#2 lore raw

PATCH 1/1 ARM: OMAP: fix MMC2 loopback clock handling

Quoted 11 lines · Igor Grinberg
Quoted 8 lines · Grazvydas Ignotas

Currently MMC2 setup code can only enable loopback clock and relies on reset value for boards that need to have it disabled. This causes a problem with certain bootloaders that always enable that clock, resulting with unwanted bootloader dependencies.

Fix this by making it disable the clock if board data says so.

Thanks applying into fixes.

Tony