diff --git a/drivers/clk/qcom/clk-cpu-osm.c b/drivers/clk/qcom/clk-cpu-osm.c index f5784bda823c..fc745e207c20 100644 --- a/drivers/clk/qcom/clk-cpu-osm.c +++ b/drivers/clk/qcom/clk-cpu-osm.c @@ -1012,6 +1012,32 @@ static int clk_osm_read_lut(struct platform_device *pdev, struct clk_osm *c) j = i; } + // Big Cluster CPU Undervolt + if (c->cluster_num == 2) { + int uv_offset = 15; // -15mV + + for (i = 0; i < c->osm_table_size; i++) { + if (c->osm_table[i].open_loop_volt > 500) { + c->osm_table[i].open_loop_volt -= uv_offset; + } + } + + pr_info("[CPU-UV]: Applied -%d voltage offset to Performance Cluster\n", uv_offset); + } + + // Little Cluster CPU Undervolt + if (c->cluster_num == 1) { + int silver_offset = 10; // -10mV + + for (i = 0; i < c->osm_table_size; i++) { + if (c->osm_table[i].open_loop_volt > 500) { + c->osm_table[i].open_loop_volt -= silver_offset; + } + } + + pr_info("[CPU-UV]: Applied -%d voltage offset to Power Cluster\n", silver_offset); + } + osm_clks_init[c->cluster_num].rate_max = devm_kcalloc(&pdev->dev, j, sizeof(unsigned long), GFP_KERNEL); diff --git a/drivers/clk/qcom/gpucc-sdmmagpie.c b/drivers/clk/qcom/gpucc-sdmmagpie.c index 793c93bc003c..6134e1a2a305 100644 --- a/drivers/clk/qcom/gpucc-sdmmagpie.c +++ b/drivers/clk/qcom/gpucc-sdmmagpie.c @@ -314,6 +314,7 @@ static struct clk_rcg2 gpu_cc_gx_gfx3d_clk_src = { [VDD_GX_LOW_L1] = 430000000, [VDD_GX_NOMINAL] = 565000000, [VDD_GX_NOMINAL_L1] = 650000000, + [VDD_GX_NOMINAL_L1] = 750000000, // GPU Undervolt [VDD_GX_HIGH] = 800000000, [VDD_GX_HIGH_L1] = 825000000}, },