Re: [PATCHv4 7/8] ARM: OMAP: clockdomain: add support for preventing autodep delete

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tero,

On Friday 13 July 2012 07:49 PM, Tero Kristo wrote:
Some clockdomains bug out if their autodeps are deleted before idle.
This happens namely with OMAP3 PER domain, it will bug out if it
doesn't have wakedeps enabled when it enters off-mode. This patch
adds support for new flag 'CLKDM_NO_AUTODEP_DISABLE' which does this.

I had one more thought on how we could handle this (without adding a new
flag :-))
How about marking OMAP3 PER with a CLKDM_NO_AUTODEPS (already existing
flag) and setting a sleep/wakeup dependency of OMAP3 PER with MPU and
IVA one time sometime during late PM init. Because thats what we intent
to do, which is have a sleep/wakeup dependency set *always* and never
try to remove it, right?

regards,
Rajendra


Signed-off-by: Tero Kristo<t-kristo@xxxxxx>
---
  arch/arm/mach-omap2/clockdomain.c |    3 +++
  arch/arm/mach-omap2/clockdomain.h |    4 ++++
  2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index 7f5423e..56cef58 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -201,6 +201,9 @@ void _clkdm_del_autodeps(struct clockdomain *clkdm)
  	if (!autodeps || clkdm->flags&  CLKDM_NO_AUTODEPS)
  		return;

+	if (clkdm->flags&  CLKDM_NO_AUTODEP_DISABLE)
+		return;
+
  	for (autodep = autodeps; autodep->clkdm.ptr; autodep++) {
  		if (IS_ERR(autodep->clkdm.ptr))
  			continue;
diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h
index 373399a..1fc5314 100644
--- a/arch/arm/mach-omap2/clockdomain.h
+++ b/arch/arm/mach-omap2/clockdomain.h
@@ -31,12 +31,16 @@
   *
   * CLKDM_NO_AUTODEPS: Prevent "autodeps" from being added/removed from this
   *     clockdomain.  (Currently, this applies to OMAP3 clockdomains only.)
+ * CLKDM_NO_AUTODEP_DISABLE: Prevent clockdomain code from deleting autodeps.
+ *     Needed for PER domain on omap3, as it will bug out with off-mode if
+ *     wakedeps are removed.
   */
  #define CLKDM_CAN_FORCE_SLEEP			(1<<  0)
  #define CLKDM_CAN_FORCE_WAKEUP			(1<<  1)
  #define CLKDM_CAN_ENABLE_AUTO			(1<<  2)
  #define CLKDM_CAN_DISABLE_AUTO			(1<<  3)
  #define CLKDM_NO_AUTODEPS			(1<<  4)
+#define CLKDM_NO_AUTODEP_DISABLE		(1<<  5)

  #define CLKDM_CAN_HWSUP		(CLKDM_CAN_ENABLE_AUTO | CLKDM_CAN_DISABLE_AUTO)
  #define CLKDM_CAN_SWSUP		(CLKDM_CAN_FORCE_SLEEP | CLKDM_CAN_FORCE_WAKEUP)

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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux