Lines Matching refs:gpu

20 	struct msm_gpu *gpu = dev_to_gpu(dev);  in msm_devfreq_target()  local
33 if (gpu->devfreq.idle_freq) { in msm_devfreq_target()
34 gpu->devfreq.idle_freq = *freq; in msm_devfreq_target()
44 if (gpu->funcs->gpu_set_freq) in msm_devfreq_target()
45 gpu->funcs->gpu_set_freq(gpu, opp); in msm_devfreq_target()
47 clk_set_rate(gpu->core_clk, *freq); in msm_devfreq_target()
54 static unsigned long get_freq(struct msm_gpu *gpu) in get_freq() argument
56 if (gpu->devfreq.idle_freq) in get_freq()
57 return gpu->devfreq.idle_freq; in get_freq()
59 if (gpu->funcs->gpu_get_freq) in get_freq()
60 return gpu->funcs->gpu_get_freq(gpu); in get_freq()
62 return clk_get_rate(gpu->core_clk); in get_freq()
68 struct msm_gpu *gpu = dev_to_gpu(dev); in msm_devfreq_get_dev_status() local
71 status->current_frequency = get_freq(gpu); in msm_devfreq_get_dev_status()
72 status->busy_time = gpu->funcs->gpu_busy(gpu); in msm_devfreq_get_dev_status()
75 status->total_time = ktime_us_delta(time, gpu->devfreq.time); in msm_devfreq_get_dev_status()
76 gpu->devfreq.time = time; in msm_devfreq_get_dev_status()
98 void msm_devfreq_init(struct msm_gpu *gpu) in msm_devfreq_init() argument
100 struct msm_gpu_devfreq *df = &gpu->devfreq; in msm_devfreq_init()
103 if (!gpu->funcs->gpu_busy) in msm_devfreq_init()
106 msm_devfreq_profile.initial_freq = gpu->fast_rate; in msm_devfreq_init()
117 df->devfreq = devm_devfreq_add_device(&gpu->pdev->dev, in msm_devfreq_init()
122 DRM_DEV_ERROR(&gpu->pdev->dev, "Couldn't initialize GPU devfreq\n"); in msm_devfreq_init()
129 gpu->cooling = of_devfreq_cooling_register(gpu->pdev->dev.of_node, df->devfreq); in msm_devfreq_init()
130 if (IS_ERR(gpu->cooling)) { in msm_devfreq_init()
131 DRM_DEV_ERROR(&gpu->pdev->dev, in msm_devfreq_init()
133 gpu->cooling = NULL; in msm_devfreq_init()
136 msm_hrtimer_work_init(&df->idle_work, gpu->worker, msm_devfreq_idle_work, in msm_devfreq_init()
140 void msm_devfreq_cleanup(struct msm_gpu *gpu) in msm_devfreq_cleanup() argument
142 devfreq_cooling_unregister(gpu->cooling); in msm_devfreq_cleanup()
145 void msm_devfreq_resume(struct msm_gpu *gpu) in msm_devfreq_resume() argument
147 gpu->devfreq.busy_cycles = 0; in msm_devfreq_resume()
148 gpu->devfreq.time = ktime_get(); in msm_devfreq_resume()
150 devfreq_resume_device(gpu->devfreq.devfreq); in msm_devfreq_resume()
153 void msm_devfreq_suspend(struct msm_gpu *gpu) in msm_devfreq_suspend() argument
155 devfreq_suspend_device(gpu->devfreq.devfreq); in msm_devfreq_suspend()
158 void msm_devfreq_active(struct msm_gpu *gpu) in msm_devfreq_active() argument
160 struct msm_gpu_devfreq *df = &gpu->devfreq; in msm_devfreq_active()
192 msm_devfreq_target(&gpu->pdev->dev, &target_freq, 0); in msm_devfreq_active()
198 msm_devfreq_get_dev_status(&gpu->pdev->dev, &status); in msm_devfreq_active()
208 struct msm_gpu *gpu = container_of(df, struct msm_gpu, devfreq); in msm_devfreq_idle_work() local
217 idle_freq = get_freq(gpu); in msm_devfreq_idle_work()
219 if (gpu->clamp_to_idle) in msm_devfreq_idle_work()
220 msm_devfreq_target(&gpu->pdev->dev, &target_freq, 0); in msm_devfreq_idle_work()
228 void msm_devfreq_idle(struct msm_gpu *gpu) in msm_devfreq_idle() argument
230 struct msm_gpu_devfreq *df = &gpu->devfreq; in msm_devfreq_idle()