--- a/arch/mips/xburst/soc-t31/common/clk/clk_cgu.c +++ b/arch/mips/xburst/soc-t31/common/clk/clk_cgu.c @@ -113,18 +113,18 @@ unsigned long x; unsigned long flags; int no = CLK_CGU_NO(clk->flags); - - if (!(strcmp(clk->name, "cgu_i2s_spk")) || !(strcmp(clk->name, "cgu_i2s_mic"))) { - 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_spk")) || !(strcmp(clk->name, "cgu_i2s_mic"))) { +// 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-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;