3D GPU: overclock 3D gpu to 480MHz
/arch/arm/mach-msm/clock-8960.c
blob:8774b648ac6fb3c35ce3d1e0b2f128ee85fc4fa8 -> blob:7b73ca6e8a190d71a6f7e659a88590ec68d1e2c4
--- arch/arm/mach-msm/clock-8960.c
+++ arch/arm/mach-msm/clock-8960.c
@@ -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));