mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			
		
			
				
	
	
		
			131 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
| --- a/arch/mips/xburst/soc-t21/common/clk/clk_cgu.c
 | |
| +++ b/arch/mips/xburst/soc-t21/common/clk/clk_cgu.c
 | |
| @@ -111,18 +111,19 @@
 | |
|  	unsigned long x;
 | |
|  	unsigned long flags;
 | |
|  	int no = CLK_CGU_NO(clk->flags);
 | |
| -
 | |
| -	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| -		unsigned int reg_val = 0;
 | |
| -		int m = 0, n = 0;
 | |
| -		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| -		n = reg_val & 0xfffff;
 | |
| -		m = (reg_val >> 20) & 0x1ff;
 | |
| -
 | |
| -		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| -				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| -		return (clk->parent->rate * m) / n;
 | |
| -	}
 | |
| +        
 | |
| +// FixMe: This leads to hang during boot with GCC>5.5.0
 | |
| +// 	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| +// 		unsigned int reg_val = 0;
 | |
| +// 		int m = 0, n = 0;
 | |
| +// 		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| +// 		n = reg_val & 0xfffff;
 | |
| +// 		m = (reg_val >> 20) & 0x1ff;
 | |
| +// 
 | |
| +// 		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| +// 				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| +// 		return (clk->parent->rate * m) / n;
 | |
| +// 	}
 | |
|  
 | |
|  	if(clk->parent == get_clk_from_id(CLK_ID_EXT1))
 | |
|  		return clk->parent->rate;
 | |
| --- a/arch/mips/xburst/soc-t10/common/clk/clk_cgu.c
 | |
| +++ b/arch/mips/xburst/soc-t10/common/clk/clk_cgu.c
 | |
| @@ -99,17 +99,18 @@
 | |
|  	unsigned long flags;
 | |
|  	int no = CLK_CGU_NO(clk->flags);
 | |
|  
 | |
| -	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| -		unsigned int reg_val = 0;
 | |
| -		int m = 0, n = 0;
 | |
| -		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| -		n = reg_val & 0x1fff;
 | |
| -		m = (reg_val >> 13) & 0x1ff;
 | |
| -
 | |
| -		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| -				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| -		return (clk->parent->rate * m) / n;
 | |
| -	}
 | |
| +// FixMe: This leads to hang during boot with GCC>5.5.0
 | |
| +// 	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| +// 		unsigned int reg_val = 0;
 | |
| +// 		int m = 0, n = 0;
 | |
| +// 		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| +// 		n = reg_val & 0x1fff;
 | |
| +// 		m = (reg_val >> 13) & 0x1ff;
 | |
| +// 
 | |
| +// 		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| +// 				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| +// 		return (clk->parent->rate * m) / n;
 | |
| +// 	}
 | |
|  
 | |
|  	if(clk->parent == get_clk_from_id(CLK_ID_EXT1))
 | |
|  		return clk->parent->rate;
 | |
| --- a/arch/mips/xburst/soc-t20/common/clk/clk_cgu.c
 | |
| +++ b/arch/mips/xburst/soc-t20/common/clk/clk_cgu.c
 | |
| @@ -100,17 +100,18 @@
 | |
|  	unsigned long flags;
 | |
|  	int no = CLK_CGU_NO(clk->flags);
 | |
|  
 | |
| -	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| -		unsigned int reg_val = 0;
 | |
| -		int m = 0, n = 0;
 | |
| -		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| -		n = reg_val & 0x1fff;
 | |
| -		m = (reg_val >> 13) & 0x1ff;
 | |
| -
 | |
| -		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| -				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| -		return (clk->parent->rate * m) / n;
 | |
| -	}
 | |
| +// FixMe: This leads to hang during boot with GCC>5.5.0
 | |
| +// 	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| +// 		unsigned int reg_val = 0;
 | |
| +// 		int m = 0, n = 0;
 | |
| +// 		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| +// 		n = reg_val & 0x1fff;
 | |
| +// 		m = (reg_val >> 13) & 0x1ff;
 | |
| +// 
 | |
| +// 		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| +// 				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| +// 		return (clk->parent->rate * m) / n;
 | |
| +// 	}
 | |
|  
 | |
|  	if(clk->parent == get_clk_from_id(CLK_ID_EXT1))
 | |
|  		return clk->parent->rate;
 | |
| --- a/arch/mips/xburst/soc-t30/common/clk/clk_cgu.c
 | |
| +++ b/arch/mips/xburst/soc-t30/common/clk/clk_cgu.c
 | |
| @@ -112,17 +112,18 @@
 | |
|  	unsigned long flags;
 | |
|  	int no = CLK_CGU_NO(clk->flags);
 | |
|  
 | |
| -	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| -		unsigned int reg_val = 0;
 | |
| -		int m = 0, n = 0;
 | |
| -		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| -		n = reg_val & 0xfffff;
 | |
| -		m = (reg_val >> 20) & 0x1ff;
 | |
| -
 | |
| -		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| -				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| -		return (clk->parent->rate * m) / n;
 | |
| -	}
 | |
| +// FixMe: This leads to hang during boot with GCC>5.5.0
 | |
| +// 	if (!(strcmp(clk->name, "cgu_i2s"))) {
 | |
| +// 		unsigned int reg_val = 0;
 | |
| +// 		int m = 0, n = 0;
 | |
| +// 		reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000;
 | |
| +// 		n = reg_val & 0xfffff;
 | |
| +// 		m = (reg_val >> 20) & 0x1ff;
 | |
| +// 
 | |
| +// 		printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n",
 | |
| +// 				__func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off));
 | |
| +// 		return (clk->parent->rate * m) / n;
 | |
| +// 	}
 | |
|  
 | |
|  	if(clk->parent == get_clk_from_id(CLK_ID_EXT1))
 | |
|  		return clk->parent->rate;
 |