void nvhost_scale3d_callback(struct nvhost_device_profile *profile, unsigned long freq) { struct nvhost_gr3d_params *gr3d_params = profile->private_data; struct nvhost_emc_params *emc_params = &gr3d_params->emc_params; long hz; long after; /* Set EMC clockrate */ after = (long) clk_get_rate(clk(profile, gr3d_params->clk_3d)); hz = nvhost_scale3d_get_emc_rate(emc_params, after); nvhost_module_set_devfreq_rate(profile->pdev, gr3d_params->clk_3d_emc, hz); }
void nvhost_scale3d_callback(struct nvhost_device_profile *profile, unsigned long freq) { struct nvhost_gr3d_params *gr3d_params = profile->private_data; struct nvhost_device_data *pdata = platform_get_drvdata(profile->pdev); struct nvhost_emc_params *emc_params = &gr3d_params->emc_params; long hz; long after; /* Set EMC clockrate */ after = (long) clk_get_rate(clk(profile, gr3d_params->clk_3d)); hz = nvhost_scale3d_get_emc_rate(emc_params, after); nvhost_module_set_devfreq_rate(profile->pdev, gr3d_params->clk_3d_emc, hz); if (pdata->gpu_edp_device) { u32 avg = 0; actmon_op().read_avg_norm(profile->actmon, &avg); tegra_edp_notify_gpu_load(avg); } }