Lines Matching defs:df

23 	struct msm_gpu_devfreq *df = &gpu->devfreq;
40 if (df->idle_freq) {
41 df->idle_freq = *freq;
47 mutex_lock(&df->lock);
48 gpu->funcs->gpu_set_freq(gpu, opp, df->suspended);
49 mutex_unlock(&df->lock);
61 struct msm_gpu_devfreq *df = &gpu->devfreq;
68 if (df->idle_freq)
69 return df->idle_freq;
81 struct msm_gpu_devfreq *df = &gpu->devfreq;
86 mutex_lock(&df->lock);
90 status->total_time = ktime_us_delta(time, df->time);
91 df->time = time;
93 if (df->suspended) {
94 mutex_unlock(&df->lock);
100 busy_time = busy_cycles - df->busy_cycles;
101 df->busy_cycles = busy_cycles;
103 mutex_unlock(&df->lock);
135 struct msm_gpu_devfreq *df = &gpu->devfreq;
136 return !!df->devfreq;
141 struct msm_gpu_devfreq *df = &gpu->devfreq;
158 mutex_init(&df->lock);
159 df->suspended = true;
161 ret = dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq,
179 df->devfreq = devm_devfreq_add_device(&gpu->pdev->dev,
183 if (IS_ERR(df->devfreq)) {
185 dev_pm_qos_remove_request(&df->boost_freq);
186 df->devfreq = NULL;
190 devfreq_suspend_device(df->devfreq);
192 gpu->cooling = of_devfreq_cooling_register(gpu->pdev->dev.of_node, df->devfreq);
199 msm_hrtimer_work_init(&df->boost_work, gpu->worker, msm_devfreq_boost_work,
201 msm_hrtimer_work_init(&df->idle_work, gpu->worker, msm_devfreq_idle_work,
205 static void cancel_idle_work(struct msm_gpu_devfreq *df)
207 hrtimer_cancel(&df->idle_work.timer);
208 kthread_cancel_work_sync(&df->idle_work.work);
211 static void cancel_boost_work(struct msm_gpu_devfreq *df)
213 hrtimer_cancel(&df->boost_work.timer);
214 kthread_cancel_work_sync(&df->boost_work.work);
219 struct msm_gpu_devfreq *df = &gpu->devfreq;
225 dev_pm_qos_remove_request(&df->boost_freq);
230 struct msm_gpu_devfreq *df = &gpu->devfreq;
236 mutex_lock(&df->lock);
237 df->busy_cycles = gpu->funcs->gpu_busy(gpu, &sample_rate);
238 df->time = ktime_get();
239 df->suspended = false;
240 mutex_unlock(&df->lock);
242 devfreq_resume_device(df->devfreq);
247 struct msm_gpu_devfreq *df = &gpu->devfreq;
252 mutex_lock(&df->lock);
253 df->suspended = true;
254 mutex_unlock(&df->lock);
256 devfreq_suspend_device(df->devfreq);
258 cancel_idle_work(df);
259 cancel_boost_work(df);
264 struct msm_gpu_devfreq *df = container_of(work,
267 dev_pm_qos_update_request(&df->boost_freq, 0);
272 struct msm_gpu_devfreq *df = &gpu->devfreq;
287 dev_pm_qos_update_request(&df->boost_freq, freq);
289 msm_hrtimer_queue_work(&df->boost_work,
296 struct msm_gpu_devfreq *df = &gpu->devfreq;
306 cancel_idle_work(df);
312 mutex_lock(&df->devfreq->lock);
314 target_freq = df->idle_freq;
316 idle_time = ktime_to_ms(ktime_sub(ktime_get(), df->idle_time));
318 df->idle_freq = 0;
322 * chance to run, in which case the df->idle_freq would have
328 mutex_unlock(&df->devfreq->lock);
343 struct msm_gpu_devfreq *df = container_of(work,
345 struct msm_gpu *gpu = container_of(df, struct msm_gpu, devfreq);
353 mutex_lock(&df->devfreq->lock);
360 df->idle_time = ktime_get();
361 df->idle_freq = idle_freq;
363 mutex_unlock(&df->devfreq->lock);
368 struct msm_gpu_devfreq *df = &gpu->devfreq;
373 msm_hrtimer_queue_work(&df->idle_work, ms_to_ktime(1),