--- 8774b648ac6fb3c35ce3d1e0b2f128ee85fc4fa8 +++ 7b73ca6e8a190d71a6f7e659a88590ec68d1e2c4 @@ -3392,6 +3392,34 @@ static unsigned long fmax_gfx3d_8960_v2[ [VDD_DIG_HIGH] = 400000000 }; +static struct clk_freq_tbl clk_tbl_gfx3d_8960_oc[] = { + F_GFX3D( 0, gnd, 0, 0), + F_GFX3D( 27000000, pxo, 0, 0), + F_GFX3D( 48000000, pll8, 1, 8), + F_GFX3D( 54857000, pll8, 1, 7), + F_GFX3D( 64000000, pll8, 1, 6), + F_GFX3D( 76800000, pll8, 1, 5), + F_GFX3D( 96000000, pll8, 1, 4), + F_GFX3D(128000000, pll8, 1, 3), + F_GFX3D(145455000, pll2, 2, 11), + F_GFX3D(160000000, pll2, 1, 5), + F_GFX3D(177778000, pll2, 2, 9), + F_GFX3D(200000000, pll2, 1, 4), + F_GFX3D(228571000, pll2, 2, 7), + F_GFX3D(266667000, pll2, 1, 3), + F_GFX3D(300000000, pll3, 1, 4), + F_GFX3D(320000000, pll2, 2, 5), + F_GFX3D(400000000, pll2, 1, 2), + F_GFX3D(480000000, pll3, 2, 5), + F_END +}; + +static unsigned long fmax_gfx3d_8960_oc[MAX_VDD_LEVELS] __initdata = { + [VDD_DIG_LOW] = 128000000, + [VDD_DIG_NOMINAL] = 320000000, + [VDD_DIG_HIGH] = 480000000 +}; + static struct clk_freq_tbl clk_tbl_gfx3d_8064[] = { F_GFX3D( 0, gnd, 0, 0), F_GFX3D( 27000000, pxo, 0, 0), @@ -5888,9 +5916,9 @@ static void __init msm8960_clock_init(vo memcpy(msm_clocks_8960, msm_clocks_8960_v1, sizeof(msm_clocks_8960_v1)); if (SOCINFO_VERSION_MAJOR(socinfo_get_version()) >= 2) { - gfx3d_clk.freq_tbl = clk_tbl_gfx3d_8960_v2; + gfx3d_clk.freq_tbl = clk_tbl_gfx3d_8960_oc; - memcpy(gfx3d_clk.c.fmax, fmax_gfx3d_8960_v2, + memcpy(gfx3d_clk.c.fmax, fmax_gfx3d_8960_oc, sizeof(gfx3d_clk.c.fmax)); memcpy(ijpeg_clk.c.fmax, fmax_ijpeg_8960_v2, sizeof(ijpeg_clk.c.fmax));