diff options
author | Olof Johansson <olof@lixom.net> | 2012-06-23 19:16:29 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-06-23 19:16:29 -0400 |
commit | a34a3b7264fdb40c8d4be8bebb38fd56dc48d162 (patch) | |
tree | d8625985d600c8fb5ef8b5312e0f13a84af3435b | |
parent | e23d7096f9633d37aa35dffab9b0bd594ed64533 (diff) | |
parent | dc57aef503859dbf724f6126c58b2e1672e215f3 (diff) |
Merge tag 'omap-fixes-a-for-3.5rc' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into fixes
From Paul Walmsley (as per Tony Lindgren's request):
"Some uncontroversial OMAP clock, hwmod, and compiler warning fixes for 3.5-rc"
* tag 'omap-fixes-a-for-3.5rc' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending:
ARM: OMAP4: hwmod data: Force HDMI in no-idle while enabled
ARM: OMAP2+: mux: fix sparse warning
ARM: OMAP2+: CM: increase the module disable timeout
ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks
ARM: OMAP4: hwmod data: fix 32k sync timer idle modes
ARM: OMAP4+: hwmod: fix issue causing IPs not going back to Smart-Standby
ARM: OMAP: PM: Lock clocks list while generating summary
-rw-r--r-- | arch/arm/mach-omap2/clock44xx_data.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap2/cm.h | 11 | ||||
-rw-r--r-- | arch/arm/mach-omap2/cminst44xx.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mux.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 8 | ||||
-rw-r--r-- | arch/arm/plat-omap/clock.c | 2 |
7 files changed, 28 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index 2172f6603848..e2b701e164f6 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -84,6 +84,7 @@ static struct clk slimbus_clk = { | |||
84 | 84 | ||
85 | static struct clk sys_32k_ck = { | 85 | static struct clk sys_32k_ck = { |
86 | .name = "sys_32k_ck", | 86 | .name = "sys_32k_ck", |
87 | .clkdm_name = "prm_clkdm", | ||
87 | .rate = 32768, | 88 | .rate = 32768, |
88 | .ops = &clkops_null, | 89 | .ops = &clkops_null, |
89 | }; | 90 | }; |
@@ -512,6 +513,7 @@ static struct clk ddrphy_ck = { | |||
512 | .name = "ddrphy_ck", | 513 | .name = "ddrphy_ck", |
513 | .parent = &dpll_core_m2_ck, | 514 | .parent = &dpll_core_m2_ck, |
514 | .ops = &clkops_null, | 515 | .ops = &clkops_null, |
516 | .clkdm_name = "l3_emif_clkdm", | ||
515 | .fixed_div = 2, | 517 | .fixed_div = 2, |
516 | .recalc = &omap_fixed_divisor_recalc, | 518 | .recalc = &omap_fixed_divisor_recalc, |
517 | }; | 519 | }; |
@@ -769,6 +771,7 @@ static const struct clksel dpll_mpu_m2_div[] = { | |||
769 | static struct clk dpll_mpu_m2_ck = { | 771 | static struct clk dpll_mpu_m2_ck = { |
770 | .name = "dpll_mpu_m2_ck", | 772 | .name = "dpll_mpu_m2_ck", |
771 | .parent = &dpll_mpu_ck, | 773 | .parent = &dpll_mpu_ck, |
774 | .clkdm_name = "cm_clkdm", | ||
772 | .clksel = dpll_mpu_m2_div, | 775 | .clksel = dpll_mpu_m2_div, |
773 | .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_MPU, | 776 | .clksel_reg = OMAP4430_CM_DIV_M2_DPLL_MPU, |
774 | .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK, | 777 | .clksel_mask = OMAP4430_DPLL_CLKOUT_DIV_MASK, |
@@ -1149,6 +1152,7 @@ static const struct clksel l3_div_div[] = { | |||
1149 | static struct clk l3_div_ck = { | 1152 | static struct clk l3_div_ck = { |
1150 | .name = "l3_div_ck", | 1153 | .name = "l3_div_ck", |
1151 | .parent = &div_core_ck, | 1154 | .parent = &div_core_ck, |
1155 | .clkdm_name = "cm_clkdm", | ||
1152 | .clksel = l3_div_div, | 1156 | .clksel = l3_div_div, |
1153 | .clksel_reg = OMAP4430_CM_CLKSEL_CORE, | 1157 | .clksel_reg = OMAP4430_CM_CLKSEL_CORE, |
1154 | .clksel_mask = OMAP4430_CLKSEL_L3_MASK, | 1158 | .clksel_mask = OMAP4430_CLKSEL_L3_MASK, |
@@ -2824,6 +2828,7 @@ static const struct clksel trace_clk_div_div[] = { | |||
2824 | static struct clk trace_clk_div_ck = { | 2828 | static struct clk trace_clk_div_ck = { |
2825 | .name = "trace_clk_div_ck", | 2829 | .name = "trace_clk_div_ck", |
2826 | .parent = &pmd_trace_clk_mux_ck, | 2830 | .parent = &pmd_trace_clk_mux_ck, |
2831 | .clkdm_name = "emu_sys_clkdm", | ||
2827 | .clksel = trace_clk_div_div, | 2832 | .clksel = trace_clk_div_div, |
2828 | .clksel_reg = OMAP4430_CM_EMU_DEBUGSS_CLKCTRL, | 2833 | .clksel_reg = OMAP4430_CM_EMU_DEBUGSS_CLKCTRL, |
2829 | .clksel_mask = OMAP4430_CLKSEL_PMD_TRACE_CLK_MASK, | 2834 | .clksel_mask = OMAP4430_CLKSEL_PMD_TRACE_CLK_MASK, |
diff --git a/arch/arm/mach-omap2/cm.h b/arch/arm/mach-omap2/cm.h index a7bc096bd407..f24e3f7a2bbc 100644 --- a/arch/arm/mach-omap2/cm.h +++ b/arch/arm/mach-omap2/cm.h | |||
@@ -22,4 +22,15 @@ | |||
22 | */ | 22 | */ |
23 | #define MAX_MODULE_READY_TIME 2000 | 23 | #define MAX_MODULE_READY_TIME 2000 |
24 | 24 | ||
25 | /* | ||
26 | * MAX_MODULE_DISABLE_TIME: max duration in microseconds to wait for | ||
27 | * the PRCM to request that a module enter the inactive state in the | ||
28 | * case of OMAP2 & 3. In the case of OMAP4 this is the max duration | ||
29 | * in microseconds for the module to reach the inactive state from | ||
30 | * a functional state. | ||
31 | * XXX FSUSB on OMAP4430 takes ~4ms to idle after reset during | ||
32 | * kernel init. | ||
33 | */ | ||
34 | #define MAX_MODULE_DISABLE_TIME 5000 | ||
35 | |||
25 | #endif | 36 | #endif |
diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-omap2/cminst44xx.c index 8c86d294b1a3..1a39945d9ff8 100644 --- a/arch/arm/mach-omap2/cminst44xx.c +++ b/arch/arm/mach-omap2/cminst44xx.c | |||
@@ -313,9 +313,9 @@ int omap4_cminst_wait_module_idle(u8 part, u16 inst, s16 cdoffs, u16 clkctrl_off | |||
313 | 313 | ||
314 | omap_test_timeout((_clkctrl_idlest(part, inst, cdoffs, clkctrl_offs) == | 314 | omap_test_timeout((_clkctrl_idlest(part, inst, cdoffs, clkctrl_offs) == |
315 | CLKCTRL_IDLEST_DISABLED), | 315 | CLKCTRL_IDLEST_DISABLED), |
316 | MAX_MODULE_READY_TIME, i); | 316 | MAX_MODULE_DISABLE_TIME, i); |
317 | 317 | ||
318 | return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY; | 318 | return (i < MAX_MODULE_DISABLE_TIME) ? 0 : -EBUSY; |
319 | } | 319 | } |
320 | 320 | ||
321 | /** | 321 | /** |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 4b46b91cca5c..9fe6829f4c16 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include "control.h" | 41 | #include "control.h" |
42 | #include "mux.h" | 42 | #include "mux.h" |
43 | #include "prm.h" | 43 | #include "prm.h" |
44 | #include "common.h" | ||
44 | 45 | ||
45 | #define OMAP_MUX_BASE_OFFSET 0x30 /* Offset from CTRL_BASE */ | 46 | #define OMAP_MUX_BASE_OFFSET 0x30 /* Offset from CTRL_BASE */ |
46 | #define OMAP_MUX_BASE_SZ 0x5ca | 47 | #define OMAP_MUX_BASE_SZ 0x5ca |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index bf86f7e8f91f..773193670ea2 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -530,7 +530,7 @@ static int _disable_wakeup(struct omap_hwmod *oh, u32 *v) | |||
530 | if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) | 530 | if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) |
531 | _set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v); | 531 | _set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v); |
532 | if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) | 532 | if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) |
533 | _set_master_standbymode(oh, HWMOD_IDLEMODE_SMART_WKUP, v); | 533 | _set_master_standbymode(oh, HWMOD_IDLEMODE_SMART, v); |
534 | 534 | ||
535 | /* XXX test pwrdm_get_wken for this hwmod's subsystem */ | 535 | /* XXX test pwrdm_get_wken for this hwmod's subsystem */ |
536 | 536 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 950454a3fa31..f30e861ce6d9 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -393,8 +393,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_counter_sysc = { | |||
393 | .rev_offs = 0x0000, | 393 | .rev_offs = 0x0000, |
394 | .sysc_offs = 0x0004, | 394 | .sysc_offs = 0x0004, |
395 | .sysc_flags = SYSC_HAS_SIDLEMODE, | 395 | .sysc_flags = SYSC_HAS_SIDLEMODE, |
396 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | 396 | .idlemodes = (SIDLE_FORCE | SIDLE_NO), |
397 | SIDLE_SMART_WKUP), | ||
398 | .sysc_fields = &omap_hwmod_sysc_type1, | 397 | .sysc_fields = &omap_hwmod_sysc_type1, |
399 | }; | 398 | }; |
400 | 399 | ||
@@ -854,6 +853,11 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = { | |||
854 | .name = "dss_hdmi", | 853 | .name = "dss_hdmi", |
855 | .class = &omap44xx_hdmi_hwmod_class, | 854 | .class = &omap44xx_hdmi_hwmod_class, |
856 | .clkdm_name = "l3_dss_clkdm", | 855 | .clkdm_name = "l3_dss_clkdm", |
856 | /* | ||
857 | * HDMI audio requires to use no-idle mode. Hence, | ||
858 | * set idle mode by software. | ||
859 | */ | ||
860 | .flags = HWMOD_SWSUP_SIDLE, | ||
857 | .mpu_irqs = omap44xx_dss_hdmi_irqs, | 861 | .mpu_irqs = omap44xx_dss_hdmi_irqs, |
858 | .sdma_reqs = omap44xx_dss_hdmi_sdma_reqs, | 862 | .sdma_reqs = omap44xx_dss_hdmi_sdma_reqs, |
859 | .main_clk = "dss_48mhz_clk", | 863 | .main_clk = "dss_48mhz_clk", |
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index 62ec5c452792..706b7e29397f 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -461,6 +461,7 @@ static int clk_dbg_show_summary(struct seq_file *s, void *unused) | |||
461 | struct clk *c; | 461 | struct clk *c; |
462 | struct clk *pa; | 462 | struct clk *pa; |
463 | 463 | ||
464 | mutex_lock(&clocks_mutex); | ||
464 | seq_printf(s, "%-30s %-30s %-10s %s\n", | 465 | seq_printf(s, "%-30s %-30s %-10s %s\n", |
465 | "clock-name", "parent-name", "rate", "use-count"); | 466 | "clock-name", "parent-name", "rate", "use-count"); |
466 | 467 | ||
@@ -469,6 +470,7 @@ static int clk_dbg_show_summary(struct seq_file *s, void *unused) | |||
469 | seq_printf(s, "%-30s %-30s %-10lu %d\n", | 470 | seq_printf(s, "%-30s %-30s %-10lu %d\n", |
470 | c->name, pa ? pa->name : "none", c->rate, c->usecount); | 471 | c->name, pa ? pa->name : "none", c->rate, c->usecount); |
471 | } | 472 | } |
473 | mutex_unlock(&clocks_mutex); | ||
472 | 474 | ||
473 | return 0; | 475 | return 0; |
474 | } | 476 | } |