|  | @@ -584,3 +584,50 @@ int omap1_clk_set_rate(struct clk *clk, unsigned long rate)
 | 
	
		
			
				|  |  |  void omap1_clk_disable_unused(struct clk *clk)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	__u32 regval32;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Clocks in the DSP domain need api_ck. Just assume bootloader
 | 
	
		
			
				|  |  | +	 * has not enabled any DSP clocks */
 | 
	
		
			
				|  |  | +	if (clk->enable_reg == DSP_IDLECT2) {
 | 
	
		
			
				|  |  | +		pr_info("Skipping reset check for DSP domain clock \"%s\"\n",
 | 
	
		
			
				|  |  | +			clk->name);
 | 
	
		
			
				|  |  | +		return;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Is the clock already disabled? */
 | 
	
		
			
				|  |  | +	if (clk->flags & ENABLE_REG_32BIT)
 | 
	
		
			
				|  |  | +		regval32 = __raw_readl(clk->enable_reg);
 | 
	
		
			
				|  |  | +	else
 | 
	
		
			
				|  |  | +		regval32 = __raw_readw(clk->enable_reg);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if ((regval32 & (1 << clk->enable_bit)) == 0)
 | 
	
		
			
				|  |  | +		return;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	printk(KERN_INFO "Disabling unused clock \"%s\"... ", clk->name);
 | 
	
		
			
				|  |  | +	clk->ops->disable(clk);
 | 
	
		
			
				|  |  | +	printk(" done\n");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +int clk_enable(struct clk *clk)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	unsigned long flags;
 | 
	
		
			
				|  |  | +	int ret;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if (clk == NULL || IS_ERR(clk))
 | 
	
		
			
				|  |  | +		return -EINVAL;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	spin_lock_irqsave(&clockfw_lock, flags);
 | 
	
		
			
				|  |  | +	ret = omap1_clk_enable(clk);
 | 
	
		
			
				|  |  | +	spin_unlock_irqrestore(&clockfw_lock, flags);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	return ret;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +EXPORT_SYMBOL(clk_enable);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void clk_disable(struct clk *clk)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +	unsigned long flags;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if (clk == NULL || IS_ERR(clk))
 |