diff options
| -rw-r--r-- | arch/arm/mach-omap2/board-apollon.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-h4.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/clock3xxx.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/display.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 27 | 
7 files changed, 40 insertions, 13 deletions
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c index 3e2d76f05af..cea3abace81 100644 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c @@ -202,7 +202,7 @@ static inline void __init apollon_init_smc91x(void)  		return;  	} -	clk_enable(gpmc_fck); +	clk_prepare_enable(gpmc_fck);  	rate = clk_get_rate(gpmc_fck);  	eth_cs = APOLLON_ETH_CS; @@ -246,7 +246,7 @@ static inline void __init apollon_init_smc91x(void)  		gpmc_cs_free(APOLLON_ETH_CS);  	}  out: -	clk_disable(gpmc_fck); +	clk_disable_unprepare(gpmc_fck);  	clk_put(gpmc_fck);  } diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 12569cb0edd..313b3f426a5 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c @@ -265,9 +265,9 @@ static inline void __init h4_init_debug(void)  		return;  	} -	clk_enable(gpmc_fck); +	clk_prepare_enable(gpmc_fck);  	rate = clk_get_rate(gpmc_fck); -	clk_disable(gpmc_fck); +	clk_disable_unprepare(gpmc_fck);  	clk_put(gpmc_fck);  	if (is_gpmc_muxed()) @@ -311,7 +311,7 @@ static inline void __init h4_init_debug(void)  		gpmc_cs_free(eth_cs);  out: -	clk_disable(gpmc_fck); +	clk_disable_unprepare(gpmc_fck);  	clk_put(gpmc_fck);  } diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 45fe2d3f59b..8ae2c599dd7 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -171,7 +171,7 @@ static void __init omap4_ehci_init(void)  		return;  	}  	clk_set_rate(phy_ref_clk, 19200000); -	clk_enable(phy_ref_clk); +	clk_prepare_enable(phy_ref_clk);  	/* disable the power to the usb hub prior to init and reset phy+hub */  	ret = gpio_request_array(panda_ehci_gpios, diff --git a/arch/arm/mach-omap2/clock3xxx.c b/arch/arm/mach-omap2/clock3xxx.c index fc2765bcdd4..319ff52220b 100644 --- a/arch/arm/mach-omap2/clock3xxx.c +++ b/arch/arm/mach-omap2/clock3xxx.c @@ -64,15 +64,15 @@ void __init omap3_clk_lock_dpll5(void)  	dpll5_clk = clk_get(NULL, "dpll5_ck");  	clk_set_rate(dpll5_clk, DPLL5_FREQ_FOR_USBHOST); -	clk_enable(dpll5_clk); +	clk_prepare_enable(dpll5_clk);  	/* Program dpll5_m2_clk divider for no division */  	dpll5_m2_clk = clk_get(NULL, "dpll5_m2_ck"); -	clk_enable(dpll5_m2_clk); +	clk_prepare_enable(dpll5_m2_clk);  	clk_set_rate(dpll5_m2_clk, DPLL5_FREQ_FOR_USBHOST); -	clk_disable(dpll5_m2_clk); -	clk_disable(dpll5_clk); +	clk_disable_unprepare(dpll5_m2_clk); +	clk_disable_unprepare(dpll5_clk);  	return;  } diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index af1ed7d24a1..5a3afd2b737 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c @@ -488,7 +488,7 @@ int omap_dss_reset(struct omap_hwmod *oh)  	for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++)  		if (oc->_clk) -			clk_enable(oc->_clk); +			clk_prepare_enable(oc->_clk);  	dispc_disable_outputs(); @@ -515,7 +515,7 @@ int omap_dss_reset(struct omap_hwmod *oh)  	for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++)  		if (oc->_clk) -			clk_disable(oc->_clk); +			clk_disable_unprepare(oc->_clk);  	r = (c == MAX_MODULE_SOFTRESET_WAIT) ? -ETIMEDOUT : 0; diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 055ae8bd943..5de0f7b852f 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -879,7 +879,7 @@ static int __init gpmc_init(void)  		BUG();  	} -	clk_enable(gpmc_l3_clk); +	clk_prepare_enable(gpmc_l3_clk);  	l = gpmc_read_reg(GPMC_REVISION);  	printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 6504f0e8d96..99fd3bb3c43 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -685,6 +685,15 @@ static int _init_main_clk(struct omap_hwmod *oh)  			   oh->name, oh->main_clk);  		return -EINVAL;  	} +	/* +	 * HACK: This needs a re-visit once clk_prepare() is implemented +	 * to do something meaningful. Today its just a no-op. +	 * If clk_prepare() is used at some point to do things like +	 * voltage scaling etc, then this would have to be moved to +	 * some point where subsystems like i2c and pmic become +	 * available. +	 */ +	clk_prepare(oh->_clk);  	if (!oh->_clk->clkdm)  		pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n", @@ -722,6 +731,15 @@ static int _init_interface_clks(struct omap_hwmod *oh)  			ret = -EINVAL;  		}  		os->_clk = c; +		/* +		 * HACK: This needs a re-visit once clk_prepare() is implemented +		 * to do something meaningful. Today its just a no-op. +		 * If clk_prepare() is used at some point to do things like +		 * voltage scaling etc, then this would have to be moved to +		 * some point where subsystems like i2c and pmic become +		 * available. +		 */ +		clk_prepare(os->_clk);  	}  	return ret; @@ -749,6 +767,15 @@ static int _init_opt_clks(struct omap_hwmod *oh)  			ret = -EINVAL;  		}  		oc->_clk = c; +		/* +		 * HACK: This needs a re-visit once clk_prepare() is implemented +		 * to do something meaningful. Today its just a no-op. +		 * If clk_prepare() is used at some point to do things like +		 * voltage scaling etc, then this would have to be moved to +		 * some point where subsystems like i2c and pmic become +		 * available. +		 */ +		clk_prepare(oc->_clk);  	}  	return ret;  |