[Desire HD Android Development] Shaky156:
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.

So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.

(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)

(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)

Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.

Main thread is in Desire HD Android Development section: http://xdaforums.com/showthread.php?t=2368497

Diff Patch:

diff --git a/arch/arm/mach-msm/clock-7x30.c b/arch/arm/mach-msm/clock-7x30.c

index 8e97664..5e9bc2e 100644

--- a/arch/arm/mach-msm/clock-7x30.c

+++ b/arch/arm/mach-msm/clock-7x30.c

@@ -2992,8 +2992,8 @@ static void __init msm7x30_clock_init(void)

clk_set_rate(&mdc_clk.c, 1);

/* Sync the LPA_CODEC clock to MI2S_CODEC_RX */

clk_set_rate(&lpa_codec_clk.c, 1);

-	/* Sync the GRP2D clock to AXI */

-	clk_set_rate(&grp_2d_clk.c, 1);

+	/* Set rate of 2D-core GPU Clock @245Mhz (OC of 53Mhz 25% perf boost by Shaky156) */

+	clk_set_rate(&grp_2d_clk.c, 245760000);

}

struct clock_init_data msm7x30_clock_init_data __initdata = {

diff --git a/arch/arm/mach-msm/devices-msm7x30.c b/arch/arm/mach-msm/devices-msm7x30.c

index d52db55..f428e57 100644

--- a/arch/arm/mach-msm/devices-msm7x30.c

+++ b/arch/arm/mach-msm/devices-msm7x30.c

@@ -1319,11 +1319,7 @@ struct resource kgsl_3d0_resources[] = {

static struct kgsl_device_platform_data kgsl_3d0_pdata = {

.pwrlevel = {

{

-	.gpu_freq = 364800000,

-	.bus_freq = 249600000,

-	},

-	{

-	.gpu_freq = 245760000,

+	.gpu_freq = 245760000, /*Restore correct GPU frequency and bus frequency (Shaky156)*/

.bus_freq = 192000000,

},

{

@@ -1336,7 +1332,7 @@ static struct kgsl_device_platform_data kgsl_3d0_pdata = {

},

},

.init_level = 0,

-	.num_levels = 4,

+	.num_levels = 3,

.set_grp_async = set_grp3d_async,

.idle_timeout = HZ/20,

.nap_allowed = true,

@@ -1372,14 +1368,13 @@ static struct resource kgsl_2d0_resources[] = {

static struct kgsl_device_platform_data kgsl_2d0_pdata = {

.pwrlevel = {

{

-	.gpu_freq = 0,

+	.gpu_freq = 245760000, //Set 2D-core GPU Frequency @245mhz (Shaky156)

.bus_freq = 192000000,

},

},

.init_level = 0,

.num_levels = 1,

-	/* HW workaround, run Z180 SYNC @ 192 MHZ */

-	.set_grp_async = NULL,

+	.set_grp_async = set_grp2d_async, //Set the 2D-core Graphics Clock Asynchronous to the AXI clock (Shaky156)

.idle_timeout = HZ/10,

.nap_allowed = true,

.clk_map = KGSL_CLK_CORE | KGSL_CLK_IFACE,

diff --git a/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c b/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c

index e81b025..b8686c0 100644

--- a/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c

+++ b/drivers/gpu/msm_adreno205/kgsl_pwrctrl.c

@@ -488,10 +488,8 @@ int kgsl_pwrctrl_init(struct kgsl_device *device)

pwr->pwrlevels.io_fraction =

pdata->pwrlevel.io_fraction;

}

-	/* Do not set_rate for targets in sync with AXI */

-	if (pwr->pwrlevels[0].gpu_freq > 0)

-	clk_set_rate(pwr->grp_clks[0], pwr->

-	pwrlevels[pwr->num_pwrlevels - 1].gpu_freq);

+

+	/*Removed AXI Sync code (Shaky156)*/

pwr->gpu_reg = regulator_get(NULL, pwr->regulator_name);

if (IS_ERR(pwr->gpu_reg))