All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition
@ 2017-03-13 11:53 ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Hi,

On DRA7 platform, DCAN1 module has an issue when it's clockdomain
(WKUPAON) is configured in HW_AUTO. After DCAN1 is enabled and disabled
the module remains stuck in transition.

Suggested workaround by Silicon team is to disable HW_AUTO for
WKUPAON clockdomain when DCAN1 module is active.

These patches provide a new flag for hwmod data to support this
behaviour and fix up dra7 hwmod data as well to fix this issue
on dra7x-evms.

This patch allows DCAN1 to be functional as well as not prevent
Core Retention as WKUPAON clockdomain is put back into HW_AUTO
whenever DCAN1 is not active (e.g. runtime suspended).

Without this series, we can see the following warning messages
when the CAN interface is brought up and down.

~# ifconfig can0 up
[   36.418299] net can0: c_can_hw_raminit_wait_syscon: time out
[   36.424642] c_can_platform 4ae3c000.can can0: setting BTR=1c04 BRPE=0000
~# ifconfig can0 down
[   50.488786] omap_hwmod: dcan1: _wait_target_disable failed
[   50.502855] omap_hwmod: dcan1: _wait_target_disable failed

cheers,
-roger

Roger Quadros (3):
  ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
  ARM: DRA7: hwmod_data: Prevent wait_target_disable error for
    usb_otg_ss

Sekhar Nori (1):
  ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags

 arch/arm/mach-omap2/omap_hwmod.c          | 4 ++--
 arch/arm/mach-omap2/omap_hwmod.h          | 7 ++++++-
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 4 ++++
 3 files changed, 12 insertions(+), 3 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition
@ 2017-03-13 11:53 ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Hi,

On DRA7 platform, DCAN1 module has an issue when it's clockdomain
(WKUPAON) is configured in HW_AUTO. After DCAN1 is enabled and disabled
the module remains stuck in transition.

Suggested workaround by Silicon team is to disable HW_AUTO for
WKUPAON clockdomain when DCAN1 module is active.

These patches provide a new flag for hwmod data to support this
behaviour and fix up dra7 hwmod data as well to fix this issue
on dra7x-evms.

This patch allows DCAN1 to be functional as well as not prevent
Core Retention as WKUPAON clockdomain is put back into HW_AUTO
whenever DCAN1 is not active (e.g. runtime suspended).

Without this series, we can see the following warning messages
when the CAN interface is brought up and down.

~# ifconfig can0 up
[   36.418299] net can0: c_can_hw_raminit_wait_syscon: time out
[   36.424642] c_can_platform 4ae3c000.can can0: setting BTR=1c04 BRPE=0000
~# ifconfig can0 down
[   50.488786] omap_hwmod: dcan1: _wait_target_disable failed
[   50.502855] omap_hwmod: dcan1: _wait_target_disable failed

cheers,
-roger

Roger Quadros (3):
  ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
  ARM: DRA7: hwmod_data: Prevent wait_target_disable error for
    usb_otg_ss

Sekhar Nori (1):
  ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags

 arch/arm/mach-omap2/omap_hwmod.c          | 4 ++--
 arch/arm/mach-omap2/omap_hwmod.h          | 7 ++++++-
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 4 ++++
 3 files changed, 12 insertions(+), 3 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
  2017-03-13 11:53 ` Roger Quadros
@ 2017-03-13 11:53   ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

From: Sekhar Nori <nsekhar@ti.com>

'flags' member of omap_hwmod structure is fast running
out of space with 16 different flags already defined.

Make flags a 32-bit entity so as to allow for more flags.

This results is a ~2.3K data section size increase with
TI config fragments.

before:
   text	   data	    bss	    dec	    hex	filename
8886648	 610452	 261876	9758976	 94e900	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8886584	 612820	 261876	9761280	 94f200	vmlinux

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 7890401..9e1c4ed 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -698,7 +698,7 @@ struct omap_hwmod {
 	struct list_head		node;
 	struct omap_hwmod_ocp_if	*_mpu_port;
 	unsigned int			(*xlate_irq)(unsigned int);
-	u16				flags;
+	u32				flags;
 	u8				mpu_rt_idx;
 	u8				response_lat;
 	u8				rst_lines_cnt;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
@ 2017-03-13 11:53   ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

From: Sekhar Nori <nsekhar@ti.com>

'flags' member of omap_hwmod structure is fast running
out of space with 16 different flags already defined.

Make flags a 32-bit entity so as to allow for more flags.

This results is a ~2.3K data section size increase with
TI config fragments.

before:
   text	   data	    bss	    dec	    hex	filename
8886648	 610452	 261876	9758976	 94e900	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8886584	 612820	 261876	9761280	 94f200	vmlinux

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 7890401..9e1c4ed 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -698,7 +698,7 @@ struct omap_hwmod {
 	struct list_head		node;
 	struct omap_hwmod_ocp_if	*_mpu_port;
 	unsigned int			(*xlate_irq)(unsigned int);
-	u16				flags;
+	u32				flags;
 	u8				mpu_rt_idx;
 	u8				response_lat;
 	u8				rst_lines_cnt;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-13 11:53 ` Roger Quadros
@ 2017-03-13 11:53   ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c | 4 ++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index e8b9887..7a29f48 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
@ 2017-03-13 11:53   ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c | 4 ++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index e8b9887..7a29f48 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 3/4] ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
  2017-03-13 11:53 ` Roger Quadros
@ 2017-03-13 11:53   ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Add HWMOD_CLKDM_NOAUTO flag to DCAN1 module.

Without this DCAN1 module remains stuck in transition
after the CAN interface is brought down. This is also suggested
in Errata i893 "DCAN Initialization Sequence".

Add the HWMOD_CLKDM_NOAUTO to DCAN2 module as well
as it is mentioned in Errata i893.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index d058529..896f238 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -359,6 +359,7 @@ static struct omap_hwmod dra7xx_dcan1_hwmod = {
 	.class		= &dra7xx_dcan_hwmod_class,
 	.clkdm_name	= "wkupaon_clkdm",
 	.main_clk	= "dcan1_sys_clk_mux",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_WKUPAON_DCAN1_CLKCTRL_OFFSET,
@@ -374,6 +375,7 @@ static struct omap_hwmod dra7xx_dcan2_hwmod = {
 	.class		= &dra7xx_dcan_hwmod_class,
 	.clkdm_name	= "l4per2_clkdm",
 	.main_clk	= "sys_clkin1",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L4PER2_DCAN2_CLKCTRL_OFFSET,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 3/4] ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
@ 2017-03-13 11:53   ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

Add HWMOD_CLKDM_NOAUTO flag to DCAN1 module.

Without this DCAN1 module remains stuck in transition
after the CAN interface is brought down. This is also suggested
in Errata i893 "DCAN Initialization Sequence".

Add the HWMOD_CLKDM_NOAUTO to DCAN2 module as well
as it is mentioned in Errata i893.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index d058529..896f238 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -359,6 +359,7 @@ static struct omap_hwmod dra7xx_dcan1_hwmod = {
 	.class		= &dra7xx_dcan_hwmod_class,
 	.clkdm_name	= "wkupaon_clkdm",
 	.main_clk	= "dcan1_sys_clk_mux",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_WKUPAON_DCAN1_CLKCTRL_OFFSET,
@@ -374,6 +375,7 @@ static struct omap_hwmod dra7xx_dcan2_hwmod = {
 	.class		= &dra7xx_dcan_hwmod_class,
 	.clkdm_name	= "l4per2_clkdm",
 	.main_clk	= "sys_clkin1",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L4PER2_DCAN2_CLKCTRL_OFFSET,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 4/4] ARM: DRA7: hwmod_data: Prevent wait_target_disable error for usb_otg_ss
  2017-03-13 11:53 ` Roger Quadros
@ 2017-03-13 11:53   ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

It seems that if L3_INIT clkdomain is kept in HW_AUTO while usb_otg_ss
is in use then there are random chances that the usb_otg_ss module
will fail to completely idle. i.e. IDLEST = 0x2 instead of 0x3.

Preventing L3_INIT from HW_AUTO while usb_otg_ss module is in use
fixes this issue.

We don't know yet if usb_otg_ss instances 3 and 4 are affected by this
issue or not so don't add this flag for those instances.

Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index 896f238..2d1141a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -2702,6 +2702,7 @@ static struct omap_hwmod dra7xx_usb_otg_ss1_hwmod = {
 	.class		= &dra7xx_usb_otg_ss_hwmod_class,
 	.clkdm_name	= "l3init_clkdm",
 	.main_clk	= "dpll_core_h13x2_ck",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L3INIT_USB_OTG_SS1_CLKCTRL_OFFSET,
@@ -2723,6 +2724,7 @@ static struct omap_hwmod dra7xx_usb_otg_ss2_hwmod = {
 	.class		= &dra7xx_usb_otg_ss_hwmod_class,
 	.clkdm_name	= "l3init_clkdm",
 	.main_clk	= "dpll_core_h13x2_ck",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L3INIT_USB_OTG_SS2_CLKCTRL_OFFSET,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 4/4] ARM: DRA7: hwmod_data: Prevent wait_target_disable error for usb_otg_ss
@ 2017-03-13 11:53   ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:53 UTC (permalink / raw)
  To: paul, tony
  Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, Roger Quadros

It seems that if L3_INIT clkdomain is kept in HW_AUTO while usb_otg_ss
is in use then there are random chances that the usb_otg_ss module
will fail to completely idle. i.e. IDLEST = 0x2 instead of 0x3.

Preventing L3_INIT from HW_AUTO while usb_otg_ss module is in use
fixes this issue.

We don't know yet if usb_otg_ss instances 3 and 4 are affected by this
issue or not so don't add this flag for those instances.

Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
index 896f238..2d1141a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
@@ -2702,6 +2702,7 @@ static struct omap_hwmod dra7xx_usb_otg_ss1_hwmod = {
 	.class		= &dra7xx_usb_otg_ss_hwmod_class,
 	.clkdm_name	= "l3init_clkdm",
 	.main_clk	= "dpll_core_h13x2_ck",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L3INIT_USB_OTG_SS1_CLKCTRL_OFFSET,
@@ -2723,6 +2724,7 @@ static struct omap_hwmod dra7xx_usb_otg_ss2_hwmod = {
 	.class		= &dra7xx_usb_otg_ss_hwmod_class,
 	.clkdm_name	= "l3init_clkdm",
 	.main_clk	= "dpll_core_h13x2_ck",
+	.flags		= HWMOD_CLKDM_NOAUTO,
 	.prcm = {
 		.omap4 = {
 			.clkctrl_offs = DRA7XX_CM_L3INIT_USB_OTG_SS2_CLKCTRL_OFFSET,
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition
  2017-03-13 11:53 ` Roger Quadros
@ 2017-03-13 11:55   ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:55 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

On 13/03/17 13:53, Roger Quadros wrote:
> Hi,
> 
> On DRA7 platform, DCAN1 module has an issue when it's clockdomain
> (WKUPAON) is configured in HW_AUTO. After DCAN1 is enabled and disabled
> the module remains stuck in transition.
> 
> Suggested workaround by Silicon team is to disable HW_AUTO for
> WKUPAON clockdomain when DCAN1 module is active.
> 
> These patches provide a new flag for hwmod data to support this
> behaviour and fix up dra7 hwmod data as well to fix this issue
> on dra7x-evms.
> 
> This patch allows DCAN1 to be functional as well as not prevent
> Core Retention as WKUPAON clockdomain is put back into HW_AUTO
> whenever DCAN1 is not active (e.g. runtime suspended).
> 
> Without this series, we can see the following warning messages
> when the CAN interface is brought up and down.
> 
> ~# ifconfig can0 up
> [   36.418299] net can0: c_can_hw_raminit_wait_syscon: time out
> [   36.424642] c_can_platform 4ae3c000.can can0: setting BTR=1c04 BRPE=0000
> ~# ifconfig can0 down
> [   50.488786] omap_hwmod: dcan1: _wait_target_disable failed
> [   50.502855] omap_hwmod: dcan1: _wait_target_disable failed

Forgot to mention that usb_otg_ss modules are also having
similar behaviour and patch 4 addresses that.

> 
> cheers,
> -roger
> 
> Roger Quadros (3):
>   ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
>   ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
>   ARM: DRA7: hwmod_data: Prevent wait_target_disable error for
>     usb_otg_ss
> 
> Sekhar Nori (1):
>   ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
> 
>  arch/arm/mach-omap2/omap_hwmod.c          | 4 ++--
>  arch/arm/mach-omap2/omap_hwmod.h          | 7 ++++++-
>  arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 4 ++++
>  3 files changed, 12 insertions(+), 3 deletions(-)
> 

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition
@ 2017-03-13 11:55   ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-13 11:55 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

On 13/03/17 13:53, Roger Quadros wrote:
> Hi,
> 
> On DRA7 platform, DCAN1 module has an issue when it's clockdomain
> (WKUPAON) is configured in HW_AUTO. After DCAN1 is enabled and disabled
> the module remains stuck in transition.
> 
> Suggested workaround by Silicon team is to disable HW_AUTO for
> WKUPAON clockdomain when DCAN1 module is active.
> 
> These patches provide a new flag for hwmod data to support this
> behaviour and fix up dra7 hwmod data as well to fix this issue
> on dra7x-evms.
> 
> This patch allows DCAN1 to be functional as well as not prevent
> Core Retention as WKUPAON clockdomain is put back into HW_AUTO
> whenever DCAN1 is not active (e.g. runtime suspended).
> 
> Without this series, we can see the following warning messages
> when the CAN interface is brought up and down.
> 
> ~# ifconfig can0 up
> [   36.418299] net can0: c_can_hw_raminit_wait_syscon: time out
> [   36.424642] c_can_platform 4ae3c000.can can0: setting BTR=1c04 BRPE=0000
> ~# ifconfig can0 down
> [   50.488786] omap_hwmod: dcan1: _wait_target_disable failed
> [   50.502855] omap_hwmod: dcan1: _wait_target_disable failed

Forgot to mention that usb_otg_ss modules are also having
similar behaviour and patch 4 addresses that.

> 
> cheers,
> -roger
> 
> Roger Quadros (3):
>   ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
>   ARM: DRA7: hwmod: Fix DCAN1 stuck in transition
>   ARM: DRA7: hwmod_data: Prevent wait_target_disable error for
>     usb_otg_ss
> 
> Sekhar Nori (1):
>   ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
> 
>  arch/arm/mach-omap2/omap_hwmod.c          | 4 ++--
>  arch/arm/mach-omap2/omap_hwmod.h          | 7 ++++++-
>  arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 4 ++++
>  3 files changed, 12 insertions(+), 3 deletions(-)
> 

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
  2017-03-13 11:53   ` Roger Quadros
@ 2017-03-13 13:35     ` Sekhar Nori
  -1 siblings, 0 replies; 29+ messages in thread
From: Sekhar Nori @ 2017-03-13 13:35 UTC (permalink / raw)
  To: Roger Quadros, paul, tony; +Cc: bcousson, t-kristo, linux-omap, linux-kernel

On Monday 13 March 2017 05:23 PM, Roger Quadros wrote:
> From: Sekhar Nori <nsekhar@ti.com>
> 
> 'flags' member of omap_hwmod structure is fast running
> out of space with 16 different flags already defined.
> 
> Make flags a 32-bit entity so as to allow for more flags.
> 
> This results is a ~2.3K data section size increase with
> TI config fragments.

This line needs to be changed to refer to omap2plus_defconfig.

> 
> before:
>    text	   data	    bss	    dec	    hex	filename
> 8886648	 610452	 261876	9758976	 94e900	vmlinux
> 
> after:
>    text	   data	    bss	    dec	    hex	filename
> 8886584	 612820	 261876	9761280	 94f200	vmlinux

I guess this data is probably stale as well. Here is the before and
after numbers using omap2plus_defconfig on v4.11-rc2

before:
   text	   data	    bss	    dec	    hex	filename
8186930	3082444	8252992	19522366	129e33e	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8186922	3084812	8252992	19524726	129ec76	vmlinux

The size increase remains at ~2.3K in data section.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
@ 2017-03-13 13:35     ` Sekhar Nori
  0 siblings, 0 replies; 29+ messages in thread
From: Sekhar Nori @ 2017-03-13 13:35 UTC (permalink / raw)
  To: Roger Quadros, paul, tony; +Cc: bcousson, t-kristo, linux-omap, linux-kernel

On Monday 13 March 2017 05:23 PM, Roger Quadros wrote:
> From: Sekhar Nori <nsekhar@ti.com>
> 
> 'flags' member of omap_hwmod structure is fast running
> out of space with 16 different flags already defined.
> 
> Make flags a 32-bit entity so as to allow for more flags.
> 
> This results is a ~2.3K data section size increase with
> TI config fragments.

This line needs to be changed to refer to omap2plus_defconfig.

> 
> before:
>    text	   data	    bss	    dec	    hex	filename
> 8886648	 610452	 261876	9758976	 94e900	vmlinux
> 
> after:
>    text	   data	    bss	    dec	    hex	filename
> 8886584	 612820	 261876	9761280	 94f200	vmlinux

I guess this data is probably stale as well. Here is the before and
after numbers using omap2plus_defconfig on v4.11-rc2

before:
   text	   data	    bss	    dec	    hex	filename
8186930	3082444	8252992	19522366	129e33e	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8186922	3084812	8252992	19524726	129ec76	vmlinux

The size increase remains at ~2.3K in data section.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
  2017-03-13 13:35     ` Sekhar Nori
@ 2017-03-14 10:49       ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-14 10:49 UTC (permalink / raw)
  To: Sekhar Nori, paul, tony; +Cc: bcousson, t-kristo, linux-omap, linux-kernel

On 13/03/17 15:35, Sekhar Nori wrote:
> On Monday 13 March 2017 05:23 PM, Roger Quadros wrote:
>> From: Sekhar Nori <nsekhar@ti.com>
>>
>> 'flags' member of omap_hwmod structure is fast running
>> out of space with 16 different flags already defined.
>>
>> Make flags a 32-bit entity so as to allow for more flags.
>>
>> This results is a ~2.3K data section size increase with
>> TI config fragments.
> 
> This line needs to be changed to refer to omap2plus_defconfig.

OK.

> 
>>
>> before:
>>    text	   data	    bss	    dec	    hex	filename
>> 8886648	 610452	 261876	9758976	 94e900	vmlinux
>>
>> after:
>>    text	   data	    bss	    dec	    hex	filename
>> 8886584	 612820	 261876	9761280	 94f200	vmlinux
> 
> I guess this data is probably stale as well. Here is the before and
> after numbers using omap2plus_defconfig on v4.11-rc2
> 
> before:
>    text	   data	    bss	    dec	    hex	filename
> 8186930	3082444	8252992	19522366	129e33e	vmlinux
> 
> after:
>    text	   data	    bss	    dec	    hex	filename
> 8186922	3084812	8252992	19524726	129ec76	vmlinux
> 
> The size increase remains at ~2.3K in data section.
> 

Thanks for the new figures. I'll resend the patch with updated data.

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
@ 2017-03-14 10:49       ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-14 10:49 UTC (permalink / raw)
  To: Sekhar Nori, paul, tony; +Cc: bcousson, t-kristo, linux-omap, linux-kernel

On 13/03/17 15:35, Sekhar Nori wrote:
> On Monday 13 March 2017 05:23 PM, Roger Quadros wrote:
>> From: Sekhar Nori <nsekhar@ti.com>
>>
>> 'flags' member of omap_hwmod structure is fast running
>> out of space with 16 different flags already defined.
>>
>> Make flags a 32-bit entity so as to allow for more flags.
>>
>> This results is a ~2.3K data section size increase with
>> TI config fragments.
> 
> This line needs to be changed to refer to omap2plus_defconfig.

OK.

> 
>>
>> before:
>>    text	   data	    bss	    dec	    hex	filename
>> 8886648	 610452	 261876	9758976	 94e900	vmlinux
>>
>> after:
>>    text	   data	    bss	    dec	    hex	filename
>> 8886584	 612820	 261876	9761280	 94f200	vmlinux
> 
> I guess this data is probably stale as well. Here is the before and
> after numbers using omap2plus_defconfig on v4.11-rc2
> 
> before:
>    text	   data	    bss	    dec	    hex	filename
> 8186930	3082444	8252992	19522366	129e33e	vmlinux
> 
> after:
>    text	   data	    bss	    dec	    hex	filename
> 8186922	3084812	8252992	19524726	129ec76	vmlinux
> 
> The size increase remains at ~2.3K in data section.
> 

Thanks for the new figures. I'll resend the patch with updated data.

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v2 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
  2017-03-13 11:53   ` Roger Quadros
@ 2017-03-14 12:07     ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-14 12:07 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, rogerq

From: Sekhar Nori <nsekhar@ti.com>

'flags' member of omap_hwmod structure is fast running
out of space with 16 different flags already defined.

Make flags a 32-bit entity so as to allow for more flags.

This results is a ~2.3K data section size increase with
omap2plus_defconfig on v4.11-rc2.

before:
   text	   data	    bss	    dec	    hex	filename
8186930	3082444	8252992	19522366	129e33e	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8186922	3084812	8252992	19524726	129ec76	vmlinux

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
-Updated size metrics for v4.11-rc2 in commit message.

 arch/arm/mach-omap2/omap_hwmod.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 7890401..9e1c4ed 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -698,7 +698,7 @@ struct omap_hwmod {
 	struct list_head		node;
 	struct omap_hwmod_ocp_if	*_mpu_port;
 	unsigned int			(*xlate_irq)(unsigned int);
-	u16				flags;
+	u32				flags;
 	u8				mpu_rt_idx;
 	u8				response_lat;
 	u8				rst_lines_cnt;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags
@ 2017-03-14 12:07     ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-14 12:07 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel, rogerq

From: Sekhar Nori <nsekhar@ti.com>

'flags' member of omap_hwmod structure is fast running
out of space with 16 different flags already defined.

Make flags a 32-bit entity so as to allow for more flags.

This results is a ~2.3K data section size increase with
omap2plus_defconfig on v4.11-rc2.

before:
   text	   data	    bss	    dec	    hex	filename
8186930	3082444	8252992	19522366	129e33e	vmlinux

after:
   text	   data	    bss	    dec	    hex	filename
8186922	3084812	8252992	19524726	129ec76	vmlinux

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
-Updated size metrics for v4.11-rc2 in commit message.

 arch/arm/mach-omap2/omap_hwmod.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 7890401..9e1c4ed 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -698,7 +698,7 @@ struct omap_hwmod {
 	struct list_head		node;
 	struct omap_hwmod_ocp_if	*_mpu_port;
 	unsigned int			(*xlate_irq)(unsigned int);
-	u16				flags;
+	u32				flags;
 	u8				mpu_rt_idx;
 	u8				response_lat;
 	u8				rst_lines_cnt;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-13 11:53   ` Roger Quadros
  (?)
@ 2017-03-14 15:48   ` Tony Lindgren
  2017-03-16  7:59       ` Roger Quadros
  -1 siblings, 1 reply; 29+ messages in thread
From: Tony Lindgren @ 2017-03-14 15:48 UTC (permalink / raw)
  To: Roger Quadros; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

* Roger Quadros <rogerq@ti.com> [170313 04:55]:

> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
>  		_idle_sysc(oh);
>  	_del_initiator_dep(oh, mpu_oh);
>  
> -	if (oh->clkdm)
> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
>  		clkdm_deny_idle(oh->clkdm);
>  
>  	if (oh->flags & HWMOD_BLOCK_WFI)

Is this change to _idle() really needed? It seems that the
clkdm_deny_idle() there is paired with the clkdm_allow_idle()
later on in the same function?

Regards,

Tony

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-14 15:48   ` Tony Lindgren
@ 2017-03-16  7:59       ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-16  7:59 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

Tony,

On 14/03/17 17:48, Tony Lindgren wrote:
> * Roger Quadros <rogerq@ti.com> [170313 04:55]:
> 
>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
>>  		_idle_sysc(oh);
>>  	_del_initiator_dep(oh, mpu_oh);
>>  
>> -	if (oh->clkdm)
>> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
>>  		clkdm_deny_idle(oh->clkdm);
>>  
>>  	if (oh->flags & HWMOD_BLOCK_WFI)
> 
> Is this change to _idle() really needed? It seems that the
> clkdm_deny_idle() there is paired with the clkdm_allow_idle()
> later on in the same function?
> 

You are right. This change to _idle() is unnecessary. I'll send an update.

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
@ 2017-03-16  7:59       ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-16  7:59 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

Tony,

On 14/03/17 17:48, Tony Lindgren wrote:
> * Roger Quadros <rogerq@ti.com> [170313 04:55]:
> 
>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
>>  		_idle_sysc(oh);
>>  	_del_initiator_dep(oh, mpu_oh);
>>  
>> -	if (oh->clkdm)
>> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
>>  		clkdm_deny_idle(oh->clkdm);
>>  
>>  	if (oh->flags & HWMOD_BLOCK_WFI)
> 
> Is this change to _idle() really needed? It seems that the
> clkdm_deny_idle() there is paired with the clkdm_allow_idle()
> later on in the same function?
> 

You are right. This change to _idle() is unnecessary. I'll send an update.

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-16  7:59       ` Roger Quadros
@ 2017-03-16  8:04         ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-16  8:04 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

On 16/03/17 09:59, Roger Quadros wrote:
> Tony,
> 
> On 14/03/17 17:48, Tony Lindgren wrote:
>> * Roger Quadros <rogerq@ti.com> [170313 04:55]:
>>
>>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>>> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
>>>  		_idle_sysc(oh);
>>>  	_del_initiator_dep(oh, mpu_oh);
>>>  
>>> -	if (oh->clkdm)
>>> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
>>>  		clkdm_deny_idle(oh->clkdm);
>>>  
>>>  	if (oh->flags & HWMOD_BLOCK_WFI)
>>
>> Is this change to _idle() really needed? It seems that the
>> clkdm_deny_idle() there is paired with the clkdm_allow_idle()
>> later on in the same function?
>>
> 
> You are right. This change to _idle() is unnecessary. I'll send an update.
> 

Now I remember why I put it there.

When HWMOD_CLKDM_NOAUTO flag is set, _enable() does not
call clkdm_allow_idle() so the call to clkdm_deny_idle() in _idle() would
be redundant.

I think we should keep the patch as it is. What do you say?

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
@ 2017-03-16  8:04         ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-16  8:04 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

On 16/03/17 09:59, Roger Quadros wrote:
> Tony,
> 
> On 14/03/17 17:48, Tony Lindgren wrote:
>> * Roger Quadros <rogerq@ti.com> [170313 04:55]:
>>
>>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>>> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
>>>  		_idle_sysc(oh);
>>>  	_del_initiator_dep(oh, mpu_oh);
>>>  
>>> -	if (oh->clkdm)
>>> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
>>>  		clkdm_deny_idle(oh->clkdm);
>>>  
>>>  	if (oh->flags & HWMOD_BLOCK_WFI)
>>
>> Is this change to _idle() really needed? It seems that the
>> clkdm_deny_idle() there is paired with the clkdm_allow_idle()
>> later on in the same function?
>>
> 
> You are right. This change to _idle() is unnecessary. I'll send an update.
> 

Now I remember why I put it there.

When HWMOD_CLKDM_NOAUTO flag is set, _enable() does not
call clkdm_allow_idle() so the call to clkdm_deny_idle() in _idle() would
be redundant.

I think we should keep the patch as it is. What do you say?

-- 
cheers,
-roger

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-16  8:04         ` Roger Quadros
  (?)
@ 2017-03-16 15:24         ` Tony Lindgren
  -1 siblings, 0 replies; 29+ messages in thread
From: Tony Lindgren @ 2017-03-16 15:24 UTC (permalink / raw)
  To: Roger Quadros; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

* Roger Quadros <rogerq@ti.com> [170316 01:06]:
> On 16/03/17 09:59, Roger Quadros wrote:
> > Tony,
> > 
> > On 14/03/17 17:48, Tony Lindgren wrote:
> >> * Roger Quadros <rogerq@ti.com> [170313 04:55]:
> >>
> >>> --- a/arch/arm/mach-omap2/omap_hwmod.c
> >>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> >>> @@ -2149,7 +2149,7 @@ static int _idle(struct omap_hwmod *oh)
> >>>  		_idle_sysc(oh);
> >>>  	_del_initiator_dep(oh, mpu_oh);
> >>>  
> >>> -	if (oh->clkdm)
> >>> +	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
> >>>  		clkdm_deny_idle(oh->clkdm);
> >>>  
> >>>  	if (oh->flags & HWMOD_BLOCK_WFI)
> >>
> >> Is this change to _idle() really needed? It seems that the
> >> clkdm_deny_idle() there is paired with the clkdm_allow_idle()
> >> later on in the same function?
> >>
> > 
> > You are right. This change to _idle() is unnecessary. I'll send an update.
> > 
> 
> Now I remember why I put it there.
> 
> When HWMOD_CLKDM_NOAUTO flag is set, _enable() does not
> call clkdm_allow_idle() so the call to clkdm_deny_idle() in _idle() would
> be redundant.
> 
> I think we should keep the patch as it is. What do you say?

OK. Maybe add a comment there about that?

Regards,

Tony

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-13 11:53   ` Roger Quadros
@ 2017-03-17  8:39     ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-17  8:39 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
- add comment explaining why we don't call clkdm_deny_idle() in _idle()
if HWMOD_CLKDM_NOAUTO flag is set.

 arch/arm/mach-omap2/omap_hwmod.c | 9 +++++++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 0da4f2e..360fded 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,12 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	/*
+	 * If HWMOD_CLKDM_NOAUTO is set then we don't
+	 * deny idle the clkdm again since idle was already denied
+	 * in _enable()
+	 */
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
@ 2017-03-17  8:39     ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-17  8:39 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
- add comment explaining why we don't call clkdm_deny_idle() in _idle()
if HWMOD_CLKDM_NOAUTO flag is set.

 arch/arm/mach-omap2/omap_hwmod.c | 9 +++++++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 0da4f2e..360fded 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,12 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	/*
+	 * If HWMOD_CLKDM_NOAUTO is set then we don't
+	 * deny idle the clkdm again since idle was already denied
+	 * in _enable()
+	 */
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-13 11:53   ` Roger Quadros
@ 2017-03-17  8:58     ` Roger Quadros
  -1 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-17  8:58 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

>From fe0a37d5e53381c3f79c6b6cf7915e44789f516f Mon Sep 17 00:00:00 2001
From: Roger Quadros <rogerq@ti.com>
Date: Tue, 7 Feb 2017 16:52:57 +0530
Subject: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
- add comment explaining why we don't call clkdm_deny_idle() in _idle()

 arch/arm/mach-omap2/omap_hwmod.c | 9 +++++++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 0da4f2e..360fded 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,12 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	/*
+	 * If HWMOD_CLKDM_NOAUTO is set then we don't
+	 * deny idle the clkdm again since idle was already denied
+	 * in _enable()
+	 */
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v2 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
@ 2017-03-17  8:58     ` Roger Quadros
  0 siblings, 0 replies; 29+ messages in thread
From: Roger Quadros @ 2017-03-17  8:58 UTC (permalink / raw)
  To: paul, tony; +Cc: bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

>From fe0a37d5e53381c3f79c6b6cf7915e44789f516f Mon Sep 17 00:00:00 2001
From: Roger Quadros <rogerq@ti.com>
Date: Tue, 7 Feb 2017 16:52:57 +0530
Subject: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO

Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
clockdomain to be prevented from HW_AUTO while the hwmod is active.

This is needed to workaround some modules which don't function
correctly with HW_AUTO. e.g. DCAN on DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[nsekhar@ti.com: rebased to v4.9 kernel]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
v2:
- add comment explaining why we don't call clkdm_deny_idle() in _idle()

 arch/arm/mach-omap2/omap_hwmod.c | 9 +++++++--
 arch/arm/mach-omap2/omap_hwmod.h | 5 +++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 0da4f2e..360fded 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2092,7 +2092,7 @@ static int _enable(struct omap_hwmod *oh)
 
 	r = (soc_ops.wait_target_ready) ? soc_ops.wait_target_ready(oh) :
 		-EINVAL;
-	if (oh->clkdm)
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_allow_idle(oh->clkdm);
 
 	if (!r) {
@@ -2149,7 +2149,12 @@ static int _idle(struct omap_hwmod *oh)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
 
-	if (oh->clkdm)
+	/*
+	 * If HWMOD_CLKDM_NOAUTO is set then we don't
+	 * deny idle the clkdm again since idle was already denied
+	 * in _enable()
+	 */
+	if (oh->clkdm && !(oh->flags & HWMOD_CLKDM_NOAUTO))
 		clkdm_deny_idle(oh->clkdm);
 
 	if (oh->flags & HWMOD_BLOCK_WFI)
diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h
index 9e1c4ed..cda553a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -531,6 +531,10 @@ struct omap_hwmod_omap4_prcm {
  *     operate and they need to be handled at the same time as the main_clk.
  * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
  *     IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
+ * HWMOD_CLKDM_NOAUTO: Allows the hwmod's clockdomain to be prevented from
+ *     entering HW_AUTO while hwmod is active. This is needed to workaround
+ *     some modules which don't function correctly with HW_AUTO. For example,
+ *     DCAN on DRA7x SoC needs this to workaround errata i893.
  */
 #define HWMOD_SWSUP_SIDLE			(1 << 0)
 #define HWMOD_SWSUP_MSTANDBY			(1 << 1)
@@ -548,6 +552,7 @@ struct omap_hwmod_omap4_prcm {
 #define HWMOD_RECONFIG_IO_CHAIN			(1 << 13)
 #define HWMOD_OPT_CLKS_NEEDED			(1 << 14)
 #define HWMOD_NO_IDLE				(1 << 15)
+#define HWMOD_CLKDM_NOAUTO			(1 << 16)
 
 /*
  * omap_hwmod._int_flags definitions
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v2 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
  2017-03-17  8:58     ` Roger Quadros
  (?)
@ 2017-03-23 20:59     ` Tony Lindgren
  -1 siblings, 0 replies; 29+ messages in thread
From: Tony Lindgren @ 2017-03-23 20:59 UTC (permalink / raw)
  To: Roger Quadros; +Cc: paul, bcousson, t-kristo, nsekhar, linux-omap, linux-kernel

* Roger Quadros <rogerq@ti.com> [170317 02:00]:
> From fe0a37d5e53381c3f79c6b6cf7915e44789f516f Mon Sep 17 00:00:00 2001
> From: Roger Quadros <rogerq@ti.com>
> Date: Tue, 7 Feb 2017 16:52:57 +0530
> Subject: [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO
> 
> Introduce HWMOD_CLKDM_NOAUTO flag that allows the hwmod's
> clockdomain to be prevented from HW_AUTO while the hwmod is active.
> 
> This is needed to workaround some modules which don't function
> correctly with HW_AUTO. e.g. DCAN on DRA7.
> 
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> [nsekhar@ti.com: rebased to v4.9 kernel]
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> ---
> v2:
> - add comment explaining why we don't call clkdm_deny_idle() in _idle()

Thanks for updating it, applying all four into omap-for-v4.12/soc.

Tony

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2017-03-23 20:59 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-13 11:53 [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition Roger Quadros
2017-03-13 11:53 ` Roger Quadros
2017-03-13 11:53 ` [PATCH 1/4] ARM: OMAP2+: omap_hwmod: provide space for more hwmod flags Roger Quadros
2017-03-13 11:53   ` Roger Quadros
2017-03-13 13:35   ` Sekhar Nori
2017-03-13 13:35     ` Sekhar Nori
2017-03-14 10:49     ` Roger Quadros
2017-03-14 10:49       ` Roger Quadros
2017-03-14 12:07   ` [PATCH v2 " Roger Quadros
2017-03-14 12:07     ` Roger Quadros
2017-03-13 11:53 ` [PATCH 2/4] ARM: OMAP2+ hwmod: Allow modules to disable HW_AUTO Roger Quadros
2017-03-13 11:53   ` Roger Quadros
2017-03-14 15:48   ` Tony Lindgren
2017-03-16  7:59     ` Roger Quadros
2017-03-16  7:59       ` Roger Quadros
2017-03-16  8:04       ` Roger Quadros
2017-03-16  8:04         ` Roger Quadros
2017-03-16 15:24         ` Tony Lindgren
2017-03-17  8:39   ` Roger Quadros
2017-03-17  8:39     ` Roger Quadros
2017-03-17  8:58   ` [PATCH v2 " Roger Quadros
2017-03-17  8:58     ` Roger Quadros
2017-03-23 20:59     ` Tony Lindgren
2017-03-13 11:53 ` [PATCH 3/4] ARM: DRA7: hwmod: Fix DCAN1 stuck in transition Roger Quadros
2017-03-13 11:53   ` Roger Quadros
2017-03-13 11:53 ` [PATCH 4/4] ARM: DRA7: hwmod_data: Prevent wait_target_disable error for usb_otg_ss Roger Quadros
2017-03-13 11:53   ` Roger Quadros
2017-03-13 11:55 ` [PATCH 0/4] ARM: DRA7: Fix DCAN1 stuck-in-transition Roger Quadros
2017-03-13 11:55   ` Roger Quadros

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.