From: Paul Walmsley <paul@pwsan.com>
To: linux-omap@vger.kernel.org
Cc: Paul Walmsley <paul@pwsan.com>
Subject: [PATCH v2 03/23] OMAP2/3 clock: drop recalc function pointers from fixed rate clocks
Date: Sun, 04 Jan 2009 19:34:48 -0700 [thread overview]
Message-ID: <20090105023447.12661.66534.stgit@localhost.localdomain> (raw)
In-Reply-To: <20090105022953.12661.57701.stgit@localhost.localdomain>
Now that rate recalculation and rate propagation are two separate
operations, drop recalc function pointers from all fixed rate clocks.
Their rates are fixed, so there's no need to recalculate.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/clock24xx.h | 4 ----
arch/arm/mach-omap2/clock34xx.h | 10 ----------
arch/arm/plat-omap/clock.c | 18 ++++++++++--------
3 files changed, 10 insertions(+), 22 deletions(-)
diff --git a/arch/arm/mach-omap2/clock24xx.h b/arch/arm/mach-omap2/clock24xx.h
index 929a257..30f3c57 100644
--- a/arch/arm/mach-omap2/clock24xx.h
+++ b/arch/arm/mach-omap2/clock24xx.h
@@ -627,7 +627,6 @@ static struct clk func_32k_ck = {
.flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
RATE_FIXED | ALWAYS_ENABLED | RATE_PROPAGATES,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
/* Typical 12/13MHz in standalone mode, will be 26Mhz in chassis mode */
@@ -657,7 +656,6 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */
.flags = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
RATE_FIXED | ALWAYS_ENABLED | RATE_PROPAGATES,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
/*
@@ -709,7 +707,6 @@ static struct clk apll96_ck = {
.enable_bit = OMAP24XX_EN_96M_PLL_SHIFT,
.enable = &omap2_clk_fixed_enable,
.disable = &omap2_clk_fixed_disable,
- .recalc = &propagate_rate,
};
static struct clk apll54_ck = {
@@ -724,7 +721,6 @@ static struct clk apll54_ck = {
.enable_bit = OMAP24XX_EN_54M_PLL_SHIFT,
.enable = &omap2_clk_fixed_enable,
.disable = &omap2_clk_fixed_disable,
- .recalc = &propagate_rate,
};
/*
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
index 5357507..66cbe0c 100644
--- a/arch/arm/mach-omap2/clock34xx.h
+++ b/arch/arm/mach-omap2/clock34xx.h
@@ -67,7 +67,6 @@ static struct clk omap_32k_fck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk secure_32k_fck = {
@@ -76,7 +75,6 @@ static struct clk secure_32k_fck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
/* Virtual source clocks for osc_sys_ck */
@@ -86,7 +84,6 @@ static struct clk virt_12m_ck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk virt_13m_ck = {
@@ -95,7 +92,6 @@ static struct clk virt_13m_ck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk virt_16_8m_ck = {
@@ -104,7 +100,6 @@ static struct clk virt_16_8m_ck = {
.flags = CLOCK_IN_OMAP3430ES2 | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk virt_19_2m_ck = {
@@ -113,7 +108,6 @@ static struct clk virt_19_2m_ck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk virt_26m_ck = {
@@ -122,7 +116,6 @@ static struct clk virt_26m_ck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static struct clk virt_38_4m_ck = {
@@ -131,7 +124,6 @@ static struct clk virt_38_4m_ck = {
.flags = CLOCK_IN_OMAP343X | RATE_FIXED | RATE_PROPAGATES |
ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
static const struct clksel_rate osc_sys_12m_rates[] = {
@@ -220,7 +212,6 @@ static struct clk sys_altclk = {
.name = "sys_altclk",
.flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES | ALWAYS_ENABLED,
.clkdm = { .name = "cm_clkdm" },
- .recalc = &propagate_rate,
};
/*
@@ -232,7 +223,6 @@ static struct clk mcbsp_clks = {
.name = "mcbsp_clks",
.flags = CLOCK_IN_OMAP343X | RATE_PROPAGATES | ALWAYS_ENABLED,
.clkdm = { .name = "prm_clkdm" },
- .recalc = &propagate_rate,
};
/* PRM EXTERNAL CLOCK OUTPUT */
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index 9f458cb..35064cd 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -187,7 +187,8 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
if (arch_clock->clk_set_rate) {
ret = arch_clock->clk_set_rate(clk, rate);
if (ret == 0) {
- (*clk->recalc)(clk);
+ if (clk->recalc)
+ (*clk->recalc)(clk);
if (clk->flags & RATE_PROPAGATES)
propagate_rate(clk);
}
@@ -212,7 +213,8 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
if (arch_clock->clk_set_parent) {
ret = arch_clock->clk_set_parent(clk, parent);
if (ret == 0) {
- (*clk->recalc)(clk);
+ if (clk->recalc)
+ (*clk->recalc)(clk);
if (clk->flags & RATE_PROPAGATES)
propagate_rate(clk);
}
@@ -285,11 +287,10 @@ void propagate_rate(struct clk * tclk)
list_for_each_entry(clkp, &clocks, node) {
if (likely(clkp->parent != tclk))
continue;
- if (likely((u32)clkp->recalc)) {
+ if (clkp->recalc)
clkp->recalc(clkp);
- if (clkp->flags & RATE_PROPAGATES)
- propagate_rate(clkp);
- }
+ if (clkp->flags & RATE_PROPAGATES)
+ propagate_rate(clkp);
}
}
@@ -305,8 +306,9 @@ void recalculate_root_clocks(void)
struct clk *clkp;
list_for_each_entry(clkp, &clocks, node) {
- if (unlikely(!clkp->parent) && likely((u32)clkp->recalc)) {
- clkp->recalc(clkp);
+ if (unlikely(!clkp->parent)) {
+ if (clkp->recalc)
+ clkp->recalc(clkp);
if (clkp->flags & RATE_PROPAGATES)
propagate_rate(clkp);
}
next prev parent reply other threads:[~2009-01-05 3:22 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-05 2:34 [PATCH v2 00/23] OMAP clock: bug fixes, cleanup, optimization Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 01/23] OMAP2/3 clock: use standard set_rate fn in omap2_clk_arch_init() Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 02/23] OMAP clock: move rate recalc, propagation code up to plat-omap/clock.c Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 04/23] OMAP clock: support "dry run" rate and parent changes Paul Walmsley
2009-01-05 2:34 ` Paul Walmsley [this message]
2009-01-05 2:34 ` [PATCH v2 05/23] OMAP clock: track child clocks Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 06/23] OMAP clock: drop the RATE_PROPAGATES flag Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 07/23] OMAP clock: drop RATE_FIXED Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 09/23] OMAP2 clock: drop CONFIG_PARTICIPANT clock flag Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 08/23] OMAP clock: remove VIRTUAL_CLOCK Paul Walmsley
2009-01-06 2:03 ` Kevin Hilman
2009-01-06 2:34 ` Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 10/23] OMAP2/3 clock: remove clk->owner Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 11/23] OMAP clock: rearrange clock.h structure order Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 12/23] OMAP2/3 clock: don't use a barrier after clk_disable() Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 13/23] OMAP2xxx clock: consolidate DELAYED_APP clock commits; fix barrier Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 14/23] OMAP2/3 clock: convert remaining MPU barriers into OCP barriers Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 16/23] OMAP clock: add OMAP chip family-specific clk_register() option Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 15/23] OMAP clock: drop clk_get_usecount() Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 17/23] OMAP2/3 clock: every clock must have a clkdm Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 19/23] OMAP2/3 clock: omap2_clk_enable(): fix bugs in clockdomain handling Paul Walmsley
2009-01-05 2:34 ` [PATCH v2 18/23] OMAP2/3 clock: omap2_clk_enable(): refactor usecount check Paul Walmsley
2009-01-05 2:35 ` [PATCH v2 20/23] OMAP2/3 clock: omap2_clk_enable(): fix usecount decrement bug Paul Walmsley
[not found] ` <2ee9e08d0901060342q36a5ebd2i448d87ba55bb034d@mail.gmail.com>
2009-01-06 11:43 ` Fwd: " Anuj Aggarwal
2009-01-05 2:35 ` [PATCH v2 21/23] OMAP2/3 clock: omap2_clk_enable(): fix logic Paul Walmsley
2009-01-05 2:35 ` [PATCH v2 22/23] OMAP2/3 clock: don't tinker with hardirqs when they are supposed to be disabled Paul Walmsley
2009-01-05 2:35 ` [PATCH v2 23/23] OMAP3 SmartReflex: get rid of custom clocks Paul Walmsley
2009-01-07 15:46 ` [PATCH v2 00/23] OMAP clock: bug fixes, cleanup, optimization Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090105023447.12661.66534.stgit@localhost.localdomain \
--to=paul@pwsan.com \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox