diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch new file mode 100644 index 00000000..d9b05173 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm-wip-cpuidle/0001-OMAP2-clockdomain-Add-an-api-to-read-idle-mode.patch @@ -0,0 +1,77 @@ +From 988f50cb51d18e81ed2f7673a09694d28c9d086a Mon Sep 17 00:00:00 2001 +From: Rajendra Nayak <rnayak@ti.com> +Date: Tue, 5 Apr 2011 15:22:31 +0530 +Subject: [PATCH 1/6] OMAP2+: clockdomain: Add an api to read idle mode + +Add a clockdomain api to check if hardware supervised +idle transitions are enabled on a clockdomain. + +Signed-off-by: Rajendra Nayak <rnayak@ti.com> +--- + arch/arm/mach-omap2/clockdomain.c | 21 +++++++++++++++++++++ + arch/arm/mach-omap2/clockdomain.h | 3 +++ + 2 files changed, 24 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c +index 6cb6c03..2ab3686 100644 +--- a/arch/arm/mach-omap2/clockdomain.c ++++ b/arch/arm/mach-omap2/clockdomain.c +@@ -795,6 +795,27 @@ void clkdm_deny_idle(struct clockdomain *clkdm) + arch_clkdm->clkdm_deny_idle(clkdm); + } + ++/** ++ * clkdm_is_idle - Check if the clkdm hwsup/autoidle is enabled ++ * @clkdm: struct clockdomain * ++ * ++ * Returns true if the clockdomain is in hardware-supervised ++ * idle mode, or 0 otherwise. ++ * ++ */ ++int clkdm_is_idle(struct clockdomain *clkdm) ++{ ++ if (!clkdm) ++ return -EINVAL; ++ ++ if (!arch_clkdm || !arch_clkdm->clkdm_is_idle) ++ return -EINVAL; ++ ++ pr_debug("clockdomain: reading idle state for %s\n", clkdm->name); ++ ++ return arch_clkdm->clkdm_is_idle(clkdm); ++} ++ + + /* Clockdomain-to-clock framework interface code */ + +diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h +index 5823584..085ed82 100644 +--- a/arch/arm/mach-omap2/clockdomain.h ++++ b/arch/arm/mach-omap2/clockdomain.h +@@ -138,6 +138,7 @@ struct clockdomain { + * @clkdm_wakeup: Force a clockdomain to wakeup + * @clkdm_allow_idle: Enable hw supervised idle transitions for clock domain + * @clkdm_deny_idle: Disable hw supervised idle transitions for clock domain ++ * @clkdm_is_idle: Check if hw supervised idle transitions are enabled + * @clkdm_clk_enable: Put the clkdm in right state for a clock enable + * @clkdm_clk_disable: Put the clkdm in right state for a clock disable + */ +@@ -154,6 +155,7 @@ struct clkdm_ops { + int (*clkdm_wakeup)(struct clockdomain *clkdm); + void (*clkdm_allow_idle)(struct clockdomain *clkdm); + void (*clkdm_deny_idle)(struct clockdomain *clkdm); ++ int (*clkdm_is_idle)(struct clockdomain *clkdm); + int (*clkdm_clk_enable)(struct clockdomain *clkdm); + int (*clkdm_clk_disable)(struct clockdomain *clkdm); + }; +@@ -177,6 +179,7 @@ int clkdm_clear_all_sleepdeps(struct clockdomain *clkdm); + + void clkdm_allow_idle(struct clockdomain *clkdm); + void clkdm_deny_idle(struct clockdomain *clkdm); ++int clkdm_is_idle(struct clockdomain *clkdm); + + int clkdm_wakeup(struct clockdomain *clkdm); + int clkdm_sleep(struct clockdomain *clkdm); +-- +1.6.6.1 + |