diff --git a/drivers/gpu/msm/kgsl_bus.c b/drivers/gpu/msm/kgsl_bus.c index 8d0aafbc7d77..bddf3de31e97 100644 --- a/drivers/gpu/msm/kgsl_bus.c +++ b/drivers/gpu/msm/kgsl_bus.c @@ -10,20 +10,6 @@ #include "kgsl_device.h" #include "kgsl_trace.h" -static int gmu_bus_set(struct kgsl_device *device, int buslevel, - u32 ab) -{ - struct kgsl_pwrctrl *pwr = &device->pwrctrl; - int ret; - - ret = gmu_core_dcvs_set(device, INVALID_DCVS_IDX, buslevel); - - if (!ret) - icc_set_bw(pwr->icc_path, MBps_to_icc(ab), 0); - - return ret; -} - static int interconnect_bus_set(struct kgsl_device *device, int level, u32 ab) { @@ -179,10 +165,7 @@ done: return PTR_ERR(pwr->icc_path); } - if (gmu_core_scales_bandwidth(device)) - pwr->bus_set = gmu_bus_set; - else - pwr->bus_set = interconnect_bus_set; + pwr->bus_set = interconnect_bus_set; return 0; } diff --git a/drivers/gpu/msm/kgsl_gmu.c b/drivers/gpu/msm/kgsl_gmu.c index d3961bf1b067..7d1c93a5e7bc 100644 --- a/drivers/gpu/msm/kgsl_gmu.c +++ b/drivers/gpu/msm/kgsl_gmu.c @@ -1282,6 +1282,20 @@ static void gmu_acd_probe(struct kgsl_device *device, struct gmu_device *gmu, "AOP mailbox init failed: %d\n", ret); } +static int gmu_bus_set(struct kgsl_device *device, int buslevel, + u32 ab) +{ + struct kgsl_pwrctrl *pwr = &device->pwrctrl; + int ret; + + ret = gmu_core_dcvs_set(device, INVALID_DCVS_IDX, buslevel); + + if (!ret) + icc_set_bw(pwr->icc_path, MBps_to_icc(ab), 0); + + return ret; +} + /* Do not access any GMU registers in GMU probe function */ static int gmu_probe(struct kgsl_device *device, struct device_node *node) { @@ -1409,6 +1423,9 @@ static int gmu_probe(struct kgsl_device *device, struct device_node *node) gmu_acd_probe(device, gmu, node); + if (gmu_core_scales_bandwidth(device)) + pwr->bus_set = gmu_bus_set; + set_bit(GMU_ENABLED, &device->gmu_core.flags); device->gmu_core.dev_ops = &adreno_a6xx_gmudev;