ARM: OMAP5: Add HWMOD_SWSUP_SIDLE_ACT flag for UART
diff mbox

Message ID 20170118114807.9543-1-vigneshr@ti.com
State New
Headers show

Commit Message

Vignesh Raghavendra Jan. 18, 2017, 11:48 a.m. UTC
According to the commit ca43ea345de9 ("ARM: OMAP2+: hwmod: Add a new
flag to handle SIDLE in SWSUP only in active"), UART IP needs the sidle
mode to be controlled in SW only while they are active. Once inactive,
the IP needs to be put back in HW control so they are also wakeup
capable. The flag HWMOD_SWSUP_SIDLE takes care of this. So add this flag
to all instances of UART.

With this change, 8250 UART now gives out proper RX Timeout interrupts
and is usable as console.

Signed-off-by: Vignesh R <vigneshr@ti.com>
---

Tested on OMAP5 uEVM.

 arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Lokesh Vutla Jan. 19, 2017, 9:05 a.m. UTC | #1
On Wednesday 18 January 2017 05:18 PM, Vignesh R wrote:
> According to the commit ca43ea345de9 ("ARM: OMAP2+: hwmod: Add a new
> flag to handle SIDLE in SWSUP only in active"), UART IP needs the sidle
> mode to be controlled in SW only while they are active. Once inactive,
> the IP needs to be put back in HW control so they are also wakeup
> capable. The flag HWMOD_SWSUP_SIDLE takes care of this. So add this flag
> to all instances of UART.
> 
> With this change, 8250 UART now gives out proper RX Timeout interrupts
> and is usable as console.
> 
> Signed-off-by: Vignesh R <vigneshr@ti.com>

Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>

Thanks and regards,
Lokesh
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Jan. 20, 2017, 6:11 p.m. UTC | #2
* Lokesh Vutla <lokeshvutla@ti.com> [170119 01:08]:
> 
> 
> On Wednesday 18 January 2017 05:18 PM, Vignesh R wrote:
> > According to the commit ca43ea345de9 ("ARM: OMAP2+: hwmod: Add a new
> > flag to handle SIDLE in SWSUP only in active"), UART IP needs the sidle
> > mode to be controlled in SW only while they are active. Once inactive,
> > the IP needs to be put back in HW control so they are also wakeup
> > capable. The flag HWMOD_SWSUP_SIDLE takes care of this. So add this flag
> > to all instances of UART.
> > 
> > With this change, 8250 UART now gives out proper RX Timeout interrupts
> > and is usable as console.
> > 
> > Signed-off-by: Vignesh R <vigneshr@ti.com>
> 
> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>

Thanks yeah this fixes the issue. As this is not a regression fix, applying
into omapf-rov-4.11/fixes-not-urgent.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index 8cdfd9b7ab4f..a2d763a4cc57 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -1748,6 +1748,7 @@  static struct omap_hwmod omap54xx_uart1_hwmod = {
 	.name		= "uart1",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
+	.flags		= HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {
@@ -1763,6 +1764,7 @@  static struct omap_hwmod omap54xx_uart2_hwmod = {
 	.name		= "uart2",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
+	.flags		= HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {
@@ -1778,7 +1780,7 @@  static struct omap_hwmod omap54xx_uart3_hwmod = {
 	.name		= "uart3",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
-	.flags		= DEBUG_OMAP4UART3_FLAGS,
+	.flags		= DEBUG_OMAP4UART3_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {
@@ -1794,7 +1796,7 @@  static struct omap_hwmod omap54xx_uart4_hwmod = {
 	.name		= "uart4",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
-	.flags		= DEBUG_OMAP4UART4_FLAGS,
+	.flags		= DEBUG_OMAP4UART4_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {
@@ -1810,6 +1812,7 @@  static struct omap_hwmod omap54xx_uart5_hwmod = {
 	.name		= "uart5",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
+	.flags		= HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {
@@ -1825,6 +1828,7 @@  static struct omap_hwmod omap54xx_uart6_hwmod = {
 	.name		= "uart6",
 	.class		= &omap54xx_uart_hwmod_class,
 	.clkdm_name	= "l4per_clkdm",
+	.flags		= HWMOD_SWSUP_SIDLE_ACT,
 	.main_clk	= "func_48m_fclk",
 	.prcm = {
 		.omap4 = {