RE: [PATCHv4 1/8] OMAP3: Clockdomain: Added API for checking if HWSUP is enabled

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

 



 

>-----Original Message-----
>From: ext Paul Walmsley [mailto:paul@xxxxxxxxx] 
>Sent: 02 February, 2010 00:11
>To: Kristo Tero (Nokia-D/Tampere)
>Cc: linux-omap@xxxxxxxxxxxxxxx
>Subject: Re: [PATCHv4 1/8] OMAP3: Clockdomain: Added API for 
>checking if HWSUP is enabled
>
>Hi Tero,
>
>On Fri, 22 Jan 2010, Tero Kristo wrote:
>
>> From: Tero Kristo <tero.kristo@xxxxxxxxx>
>> 
>> omap2_clkdm_get_hwsup(clkdm) can be used to check if automatic HW
>> transitions for the domain are enabled or not. This is needed for the
>> powerdomain code that adds support for INACTIVE state, as it needs to
>> disable HWSUP on the fly for ON state, and re-enable it 
>after returning
>> to some other state.
>> 
>> Signed-off-by: Tero Kristo <tero.kristo@xxxxxxxxx>
>
>An updated patch with some revisions is below.  Please let me know if 
>there's something that still should be changed.  The revisions are:

Your changes look okay to me.

>
>1. Split the if-statement expressions up into separate lines per 
>CodingStyle
>
>2. Rename omap2_clkdm_get_hwsup() to omap2_clkdm_read_hwsup() 
>to follow 
>the general practice in this file and powerdomain.c that 
>functions with 
>'_get_' in the name read configuration data, and functions 
>with '_read_' 
>read from the hardware (or a cache of the hardware register)
>
>3. Add OMAP4 support
>
>4. Added the extra asterisk in the comment body to indicate 
>kerneldoc-format comment
>
>5. Updated patch to apply after the current round of 2.6.34 changes
>
>
>regards,
>
>- Paul
>
>From fc2f8ad184e012a5574e1110c359354d247a1709 Mon Sep 17 00:00:00 2001
>From: Tero Kristo <tero.kristo@xxxxxxxxx>
>Date: Mon, 1 Feb 2010 13:41:26 -0700
>Subject: [PATCH] OMAP3: Clockdomain: Added API for checking if 
>HWSUP is enabled
>
>omap2_clkdm_read_hwsup(clkdm) can be used to check if automatic HW
>transitions for the domain are enabled or not. This is needed for the
>powerdomain code that adds support for INACTIVE state, as it needs to
>disable HWSUP on the fly for ON state, and re-enable it after returning
>to some other state.
>
>Signed-off-by: Tero Kristo <tero.kristo@xxxxxxxxx>
>[paul@xxxxxxxxx: added kerneldoc comment magic start; changed function
> name to omap2_clkdm_read_hwsup(); broke up expressions in function
> body; added OMAP4 support]
>Signed-off-by: Paul Walmsley <paul@xxxxxxxxx>
>---
> arch/arm/mach-omap2/clockdomain.c             |   30 
>+++++++++++++++++++++++++
> arch/arm/plat-omap/include/plat/clockdomain.h |    1 +
> 2 files changed, 31 insertions(+), 0 deletions(-)
>
>diff --git a/arch/arm/mach-omap2/clockdomain.c 
>b/arch/arm/mach-omap2/clockdomain.c
>index a38a615..8dce3c9 100644
>--- a/arch/arm/mach-omap2/clockdomain.c
>+++ b/arch/arm/mach-omap2/clockdomain.c
>@@ -868,6 +868,36 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
> }
> 
> /**
>+ * omap2_clkdm_read_hwsup - read the hwsup idle transition bit
>+ * @clkdm: struct clockdomain *
>+ *
>+ * Checks whether hardware is allowed to switch the clockdomain @clkdm
>+ * automatically into active or idle states. Returns -EINVAL if @clkdm
>+ * is NULL; otherwise, 1 if hardware auto-idle is enabled, 0 if not.
>+ */
>+int omap2_clkdm_read_hwsup(struct clockdomain *clkdm)
>+{
>+	u32 u, v;
>+
>+	if (!clkdm)
>+		return -EINVAL;
>+
>+	u = cm_read_mod_reg(clkdm->pwrdm.ptr->prcm_offs, CM_CLKSTCTRL);
>+	u &= clkdm->clktrctrl_mask;
>+
>+	if (cpu_is_omap24xx())
>+		v = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
>+	else if (cpu_is_omap34xx() || cpu_is_omap44xx())
>+		v = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
>+	else
>+		BUG();
>+
>+	v <<= __ffs(clkdm->clktrctrl_mask);
>+
>+	return (u == v) ? 1 : 0;
>+}
>+
>+/**
>  * omap2_clkdm_allow_idle - enable hwsup idle transitions for clkdm
>  * @clkdm: struct clockdomain *
>  *
>diff --git a/arch/arm/plat-omap/include/plat/clockdomain.h 
>b/arch/arm/plat-omap/include/plat/clockdomain.h
>index ba0a6c0..9d25f4e 100644
>--- a/arch/arm/plat-omap/include/plat/clockdomain.h
>+++ b/arch/arm/plat-omap/include/plat/clockdomain.h
>@@ -129,6 +129,7 @@ int clkdm_del_sleepdep(struct clockdomain 
>*clkdm1, struct clockdomain *clkdm2);
> int clkdm_read_sleepdep(struct clockdomain *clkdm1, struct 
>clockdomain *clkdm2);
> int clkdm_clear_all_sleepdeps(struct clockdomain *clkdm);
> 
>+int omap2_clkdm_read_hwsup(struct clockdomain *clkdm);
> void omap2_clkdm_allow_idle(struct clockdomain *clkdm);
> void omap2_clkdm_deny_idle(struct clockdomain *clkdm);
> 
>-- 
>1.6.6.rc2.5.g49666
>
>--
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