Loading drivers/gpu/msm/adreno.c +3 −5 Original line number Diff line number Diff line Loading @@ -1034,13 +1034,11 @@ l3_pwrlevel_probe(struct kgsl_device *device, struct device_node *node) &device->l3_freq[index]); } device->l3_clk = devm_clk_get(&device->pdev->dev, "l3_vote"); device->l3_icc = of_icc_get(&device->pdev->dev, "l3_path"); if (IS_ERR_OR_NULL(device->l3_clk)) { if (IS_ERR(device->l3_icc)) dev_err(&device->pdev->dev, "Unable to get the l3_vote clock\n"); device->l3_clk = NULL; } "Unable to get the l3 icc path\n"); } static int adreno_of_get_power(struct adreno_device *adreno_dev, Loading drivers/gpu/msm/adreno_a6xx.c +32 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,36 @@ static void a6xx_gmu_wrapper_init(struct adreno_device *adreno_dev) dev_warn(device->dev, "gmu_wrapper ioremap failed\n"); } static int match_name(struct device *dev, void *data) { struct device *parent = data; return (!strcmp(dev_name(dev), dev_name(parent))); } static void find_ddr_qos_device(struct adreno_device *adreno_dev) { struct device *devfreq_dev, *ddr_qos_dev; struct kgsl_device *device = KGSL_DEVICE(adreno_dev); if (device->pwrctrl.ddr_qos_devfreq) return; ddr_qos_dev = bus_find_device_by_name(&platform_bus_type, NULL, "soc:qcom,kgsl-ddr-qos"); if (!ddr_qos_dev) return; /* Devfreq device has the same name as its parent device */ devfreq_dev = device_find_child(ddr_qos_dev, ddr_qos_dev, match_name); if (!devfreq_dev) return; device->pwrctrl.ddr_qos_devfreq = container_of(devfreq_dev, struct devfreq, dev); } int a6xx_init(struct adreno_device *adreno_dev) { const struct adreno_a6xx_core *a6xx_core = to_a6xx_core(adreno_dev); Loading Loading @@ -157,6 +187,8 @@ int a6xx_init(struct adreno_device *adreno_dev) return PTR_ERR(adreno_dev->pwrup_reglist); } find_ddr_qos_device(adreno_dev); return a6xx_get_cp_init_cmds(adreno_dev); } Loading drivers/gpu/msm/adreno_a6xx_gmu.c +2 −0 Original line number Diff line number Diff line Loading @@ -3103,6 +3103,8 @@ static int a6xx_power_off(struct adreno_device *adreno_dev) kgsl_pwrscale_sleep(device); kgsl_pwrctrl_clear_l3_vote(device); trace_kgsl_pwr_set_state(device, KGSL_STATE_SLUMBER); return ret; Loading drivers/gpu/msm/adreno_a6xx_hwsched.c +2 −0 Original line number Diff line number Diff line Loading @@ -654,6 +654,8 @@ static int a6xx_hwsched_power_off(struct adreno_device *adreno_dev) kgsl_pwrscale_sleep(device); kgsl_pwrctrl_clear_l3_vote(device); trace_kgsl_pwr_set_state(device, KGSL_STATE_SLUMBER); return ret; Loading drivers/gpu/msm/adreno_a6xx_rgmu.c +1 −0 Original line number Diff line number Diff line Loading @@ -711,6 +711,7 @@ static void a6xx_rgmu_power_off(struct adreno_device *adreno_dev) a6xx_rgmu_disable_clks(adreno_dev); a6xx_rgmu_disable_gdsc(adreno_dev); kgsl_pwrctrl_clear_l3_vote(device); } static int a6xx_rgmu_clock_set(struct adreno_device *adreno_dev, Loading Loading
drivers/gpu/msm/adreno.c +3 −5 Original line number Diff line number Diff line Loading @@ -1034,13 +1034,11 @@ l3_pwrlevel_probe(struct kgsl_device *device, struct device_node *node) &device->l3_freq[index]); } device->l3_clk = devm_clk_get(&device->pdev->dev, "l3_vote"); device->l3_icc = of_icc_get(&device->pdev->dev, "l3_path"); if (IS_ERR_OR_NULL(device->l3_clk)) { if (IS_ERR(device->l3_icc)) dev_err(&device->pdev->dev, "Unable to get the l3_vote clock\n"); device->l3_clk = NULL; } "Unable to get the l3 icc path\n"); } static int adreno_of_get_power(struct adreno_device *adreno_dev, Loading
drivers/gpu/msm/adreno_a6xx.c +32 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,36 @@ static void a6xx_gmu_wrapper_init(struct adreno_device *adreno_dev) dev_warn(device->dev, "gmu_wrapper ioremap failed\n"); } static int match_name(struct device *dev, void *data) { struct device *parent = data; return (!strcmp(dev_name(dev), dev_name(parent))); } static void find_ddr_qos_device(struct adreno_device *adreno_dev) { struct device *devfreq_dev, *ddr_qos_dev; struct kgsl_device *device = KGSL_DEVICE(adreno_dev); if (device->pwrctrl.ddr_qos_devfreq) return; ddr_qos_dev = bus_find_device_by_name(&platform_bus_type, NULL, "soc:qcom,kgsl-ddr-qos"); if (!ddr_qos_dev) return; /* Devfreq device has the same name as its parent device */ devfreq_dev = device_find_child(ddr_qos_dev, ddr_qos_dev, match_name); if (!devfreq_dev) return; device->pwrctrl.ddr_qos_devfreq = container_of(devfreq_dev, struct devfreq, dev); } int a6xx_init(struct adreno_device *adreno_dev) { const struct adreno_a6xx_core *a6xx_core = to_a6xx_core(adreno_dev); Loading Loading @@ -157,6 +187,8 @@ int a6xx_init(struct adreno_device *adreno_dev) return PTR_ERR(adreno_dev->pwrup_reglist); } find_ddr_qos_device(adreno_dev); return a6xx_get_cp_init_cmds(adreno_dev); } Loading
drivers/gpu/msm/adreno_a6xx_gmu.c +2 −0 Original line number Diff line number Diff line Loading @@ -3103,6 +3103,8 @@ static int a6xx_power_off(struct adreno_device *adreno_dev) kgsl_pwrscale_sleep(device); kgsl_pwrctrl_clear_l3_vote(device); trace_kgsl_pwr_set_state(device, KGSL_STATE_SLUMBER); return ret; Loading
drivers/gpu/msm/adreno_a6xx_hwsched.c +2 −0 Original line number Diff line number Diff line Loading @@ -654,6 +654,8 @@ static int a6xx_hwsched_power_off(struct adreno_device *adreno_dev) kgsl_pwrscale_sleep(device); kgsl_pwrctrl_clear_l3_vote(device); trace_kgsl_pwr_set_state(device, KGSL_STATE_SLUMBER); return ret; Loading
drivers/gpu/msm/adreno_a6xx_rgmu.c +1 −0 Original line number Diff line number Diff line Loading @@ -711,6 +711,7 @@ static void a6xx_rgmu_power_off(struct adreno_device *adreno_dev) a6xx_rgmu_disable_clks(adreno_dev); a6xx_rgmu_disable_gdsc(adreno_dev); kgsl_pwrctrl_clear_l3_vote(device); } static int a6xx_rgmu_clock_set(struct adreno_device *adreno_dev, Loading