diff options
| author | Olof Johansson <olof@lixom.net> | 2012-06-23 16:16:29 -0700 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2012-06-23 16:16:29 -0700 | 
| commit | a34a3b7264fdb40c8d4be8bebb38fd56dc48d162 (patch) | |
| tree | d8625985d600c8fb5ef8b5312e0f13a84af3435b /arch/arm/mach-omap2 | |
| parent | e23d7096f9633d37aa35dffab9b0bd594ed64533 (diff) | |
| parent | dc57aef503859dbf724f6126c58b2e1672e215f3 (diff) | |
| download | olio-linux-3.10-a34a3b7264fdb40c8d4be8bebb38fd56dc48d162.tar.xz olio-linux-3.10-a34a3b7264fdb40c8d4be8bebb38fd56dc48d162.zip  | |
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
Diffstat (limited to 'arch/arm/mach-omap2')
| -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 | 
6 files changed, 26 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index 2172f660384..e2b701e164f 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 = {  static struct clk sys_32k_ck = {  	.name		= "sys_32k_ck", +	.clkdm_name	= "prm_clkdm",  	.rate		= 32768,  	.ops		= &clkops_null,  }; @@ -512,6 +513,7 @@ static struct clk ddrphy_ck = {  	.name		= "ddrphy_ck",  	.parent		= &dpll_core_m2_ck,  	.ops		= &clkops_null, +	.clkdm_name	= "l3_emif_clkdm",  	.fixed_div	= 2,  	.recalc		= &omap_fixed_divisor_recalc,  }; @@ -769,6 +771,7 @@ static const struct clksel dpll_mpu_m2_div[] = {  static struct clk dpll_mpu_m2_ck = {  	.name		= "dpll_mpu_m2_ck",  	.parent		= &dpll_mpu_ck, +	.clkdm_name	= "cm_clkdm",  	.clksel		= dpll_mpu_m2_div,  	.clksel_reg	= OMAP4430_CM_DIV_M2_DPLL_MPU,  	.clksel_mask	= OMAP4430_DPLL_CLKOUT_DIV_MASK, @@ -1149,6 +1152,7 @@ static const struct clksel l3_div_div[] = {  static struct clk l3_div_ck = {  	.name		= "l3_div_ck",  	.parent		= &div_core_ck, +	.clkdm_name	= "cm_clkdm",  	.clksel		= l3_div_div,  	.clksel_reg	= OMAP4430_CM_CLKSEL_CORE,  	.clksel_mask	= OMAP4430_CLKSEL_L3_MASK, @@ -2824,6 +2828,7 @@ static const struct clksel trace_clk_div_div[] = {  static struct clk trace_clk_div_ck = {  	.name		= "trace_clk_div_ck",  	.parent		= &pmd_trace_clk_mux_ck, +	.clkdm_name	= "emu_sys_clkdm",  	.clksel		= trace_clk_div_div,  	.clksel_reg	= OMAP4430_CM_EMU_DEBUGSS_CLKCTRL,  	.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 a7bc096bd40..f24e3f7a2bb 100644 --- a/arch/arm/mach-omap2/cm.h +++ b/arch/arm/mach-omap2/cm.h @@ -22,4 +22,15 @@   */  #define MAX_MODULE_READY_TIME		2000 +/* + * MAX_MODULE_DISABLE_TIME: max duration in microseconds to wait for + * the PRCM to request that a module enter the inactive state in the + * case of OMAP2 & 3.  In the case of OMAP4 this is the max duration + * in microseconds for the module to reach the inactive state from + * a functional state. + * XXX FSUSB on OMAP4430 takes ~4ms to idle after reset during + * kernel init. + */ +#define MAX_MODULE_DISABLE_TIME		5000 +  #endif diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-omap2/cminst44xx.c index 8c86d294b1a..1a39945d9ff 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  	omap_test_timeout((_clkctrl_idlest(part, inst, cdoffs, clkctrl_offs) ==  			   CLKCTRL_IDLEST_DISABLED), -			  MAX_MODULE_READY_TIME, i); +			  MAX_MODULE_DISABLE_TIME, i); -	return (i < MAX_MODULE_READY_TIME) ? 0 : -EBUSY; +	return (i < MAX_MODULE_DISABLE_TIME) ? 0 : -EBUSY;  }  /** diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 4b46b91cca5..9fe6829f4c1 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c @@ -41,6 +41,7 @@  #include "control.h"  #include "mux.h"  #include "prm.h" +#include "common.h"  #define OMAP_MUX_BASE_OFFSET		0x30	/* Offset from CTRL_BASE */  #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 bf86f7e8f91..773193670ea 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)  	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)  		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v);  	if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP) -		_set_master_standbymode(oh, HWMOD_IDLEMODE_SMART_WKUP, v); +		_set_master_standbymode(oh, HWMOD_IDLEMODE_SMART, v);  	/* XXX test pwrdm_get_wken for this hwmod's subsystem */ diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 950454a3fa3..f30e861ce6d 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 = {  	.rev_offs	= 0x0000,  	.sysc_offs	= 0x0004,  	.sysc_flags	= SYSC_HAS_SIDLEMODE, -	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | -			   SIDLE_SMART_WKUP), +	.idlemodes	= (SIDLE_FORCE | SIDLE_NO),  	.sysc_fields	= &omap_hwmod_sysc_type1,  }; @@ -854,6 +853,11 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {  	.name		= "dss_hdmi",  	.class		= &omap44xx_hdmi_hwmod_class,  	.clkdm_name	= "l3_dss_clkdm", +	/* +	 * HDMI audio requires to use no-idle mode. Hence, +	 * set idle mode by software. +	 */ +	.flags		= HWMOD_SWSUP_SIDLE,  	.mpu_irqs	= omap44xx_dss_hdmi_irqs,  	.sdma_reqs	= omap44xx_dss_hdmi_sdma_reqs,  	.main_clk	= "dss_48mhz_clk",  |