Skip to contentSkip to conversation

ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

PATCH New Tero Kristo 3 participants 5 messages Dec 22, 2017 – Feb 22, 2018

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

PATCH 1/1 ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

The optional clocks must be enabled before the main clock after the transition to clkctrl controlled clocks is done. Otherwise the module we attempt to enable might be stuck in transition.

---
Hi Tony,

This patch fixes a regression seen in linux-next, where certain peripherals fail to enable after the clkctrl changes are in. The case seen has been with mcasp3, where it fails to transition to enabled during the audio driver probe. Not sure where you want to pick this up, maybe as early rc fixes if its too late to push this to linux-next?

 arch/arm/mach-omap2/omap_hwmod.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/omap_hwmod.c +3 -3
index 7324048..340d05c 100644
@@ -976,6 +976,9 @@ static int _enable_clocks(struct omap_hwmod *oh)
 
 	pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
 
+	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
+		_enable_optional_clocks(oh);
+
 	if (oh->_clk)
 		clk_enable(oh->_clk);
 
@@ -984,9 +987,6 @@ static int _enable_clocks(struct omap_hwmod *oh)
 			clk_enable(os->_clk);
 	}
 
-	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
-		_enable_optional_clocks(oh);
-
 	/* The opt clocks are controlled by the device driver. */
 
 	return 0;
Signature · 4 lines
1.9.1

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
#1 lore raw

PATCH 1/1 ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

Quoted 6 lines · Tero Kristo

The optional clocks must be enabled before the main clock after the transition to clkctrl controlled clocks is done. Otherwise the module we attempt to enable might be stuck in transition.

Tested the patch on both DRA7-EVM and DRA72-EVM. I no longer see the issue:

Quoted 37 lines

---
Hi Tony,

This patch fixes a regression seen in linux-next, where certain peripherals fail to enable after the clkctrl changes are in. The case seen has been with mcasp3, where it fails to transition to enabled during the audio driver probe. Not sure where you want to pick this up, maybe as early rc fixes if its too late to push this to linux-next?

 arch/arm/mach-omap2/omap_hwmod.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/omap_hwmod.c +3 -3
index 7324048..340d05c 100644
@@ -976,6 +976,9 @@ static int _enable_clocks(struct omap_hwmod *oh)
 
 	pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
 
+	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
+		_enable_optional_clocks(oh);
+
 	if (oh->_clk)
 		clk_enable(oh->_clk);
 
@@ -984,9 +987,6 @@ static int _enable_clocks(struct omap_hwmod *oh)
 			clk_enable(os->_clk);
 	}
 
-	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
-		_enable_optional_clocks(oh);
-
 	/* The opt clocks are controlled by the device driver. */
 
 	return 0;
maintainer
#2 lore raw

PATCH 1/1 ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

Quoted 7 lines · Keerthy
Quoted 4 lines · Tero Kristo

The optional clocks must be enabled before the main clock after the transition to clkctrl controlled clocks is done. Otherwise the module we attempt to enable might be stuck in transition.

Quoted 15 lines
Quoted 2 lines

Tested the patch on both DRA7-EVM and DRA72-EVM. I no longer see the issue:

Quoted 8 lines

---
Hi Tony,

This patch fixes a regression seen in linux-next, where certain peripherals fail to enable after the clkctrl changes are in. The case seen has been with mcasp3, where it fails to transition to enabled during the audio driver probe. Not sure where you want to pick this up, maybe as early rc fixes if its too late to push this to linux-next?

Thanks applying into omap-for-v4.16/soc, yeah we should get it merged during the merge window as a fix.

Regards,

Tony

Quoted 28 lines
Quoted 28 lines
 arch/arm/mach-omap2/omap_hwmod.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/omap_hwmod.c +3 -3
index 7324048..340d05c 100644
@@ -976,6 +976,9 @@ static int _enable_clocks(struct omap_hwmod *oh)
 
 	pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
 
+	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
+		_enable_optional_clocks(oh);
+
 	if (oh->_clk)
 		clk_enable(oh->_clk);
 
@@ -984,9 +987,6 @@ static int _enable_clocks(struct omap_hwmod *oh)
 			clk_enable(os->_clk);
 	}
 
-	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
-		_enable_optional_clocks(oh);
-
 	/* The opt clocks are controlled by the device driver. */
 
 	return 0;
#3 lore raw

PATCH 1/1 ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

Quoted 18 lines · Tony Lindgren
Quoted 17 lines · Keerthy
Quoted 6 lines · Tero Kristo

The optional clocks must be enabled before the main clock after the transition to clkctrl controlled clocks is done. Otherwise the module we attempt to enable might be stuck in transition.

Tested the patch on both DRA7-EVM and DRA72-EVM. I no longer see the issue:

Quoted 3 lines

---
Hi Tony,

Quoted 8 lines
Quoted 5 lines
Quoted 5 lines

This patch fixes a regression seen in linux-next, where certain peripherals fail to enable after the clkctrl changes are in. The case seen has been with mcasp3, where it fails to transition to enabled during the audio driver probe. Not sure where you want to pick this up, maybe as early rc fixes if its too late to push this to linux-next?

Thanks applying into omap-for-v4.16/soc, yeah we should get it merged during the merge window as a fix.

Tony,

I think this missed the merge for some reason? Can you queue this up as a fix as its still needed?

-Tero

Quoted 28 lines

Regards,

Tony

Quoted 21 lines
Quoted 21 lines
  arch/arm/mach-omap2/omap_hwmod.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/omap_hwmod.c +3 -0
index 7324048..340d05c 100644
@@ -976,6 +976,9 @@ static int _enable_clocks(struct omap_hwmod *oh)
 
  	pr_debug("omap_hwmod: %s: enabling clocks\n", oh->name);
 
+	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
+		_enable_optional_clocks(oh);
+
  	if (oh->_clk)
  		clk_enable(oh->_clk);
 
@@ -984,9 +987,6 @@ static int _enable_clocks(struct omap_hwmod *oh)
  			clk_enable(os->_clk);
  	}
 
Quoted 7 lines
Quoted 7 lines

arch/arm/mach-omap2/omap_hwmod.c static int _enable_clocks(struct omap_hwmod *oh) · line 992

Quoted 7 lines
arch/arm/mach-omap2/omap_hwmod.c +0 -3
-	if (oh->flags & HWMOD_OPT_CLKS_NEEDED)
-		_enable_optional_clocks(oh);
-
  	/* The opt clocks are controlled by the device driver. */
 
  	return 0;

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

maintainer
#4 lore raw

PATCH 1/1 ARM: OMAP2+: hwmod_core: enable optional clocks before main clock

Quoted 2 lines · Tero Kristo

I think this missed the merge for some reason? Can you queue this up as a fix as its still needed?

Yes sorry I noticed too it missed the merge window. I sent a pull request for that last week in the fixes:

[GIT PULL] omap fixes for v4.16-rc cycle

So it should get there hopefully this week.

Regards,

Tony