• Home
  • Raw
  • Download

Lines Matching refs:w_data

364 	struct powerclamp_worker_data *w_data;  in clamp_balancing_func()  local
370 w_data = container_of(work, struct powerclamp_worker_data, in clamp_balancing_func()
378 w_data->target_ratio = READ_ONCE(set_target_ratio); in clamp_balancing_func()
379 w_data->guard = 1 + w_data->target_ratio / 20; in clamp_balancing_func()
380 w_data->window_size_now = window_size; in clamp_balancing_func()
381 w_data->duration_jiffies = msecs_to_jiffies(duration); in clamp_balancing_func()
382 w_data->count++; in clamp_balancing_func()
389 compensated_ratio = w_data->target_ratio + in clamp_balancing_func()
390 get_compensation(w_data->target_ratio); in clamp_balancing_func()
393 interval = w_data->duration_jiffies * 100 / compensated_ratio; in clamp_balancing_func()
401 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_balancing_func()
402 kthread_queue_delayed_work(w_data->worker, in clamp_balancing_func()
403 &w_data->idle_injection_work, in clamp_balancing_func()
409 struct powerclamp_worker_data *w_data; in clamp_idle_injection_func() local
411 w_data = container_of(work, struct powerclamp_worker_data, in clamp_idle_injection_func()
418 if (w_data->cpu == control_cpu && in clamp_idle_injection_func()
419 !(w_data->count % w_data->window_size_now)) { in clamp_idle_injection_func()
421 powerclamp_adjust_controls(w_data->target_ratio, in clamp_idle_injection_func()
422 w_data->guard, in clamp_idle_injection_func()
423 w_data->window_size_now); in clamp_idle_injection_func()
430 play_idle(jiffies_to_usecs(w_data->duration_jiffies)); in clamp_idle_injection_func()
433 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_idle_injection_func()
434 kthread_queue_work(w_data->worker, &w_data->balancing_work); in clamp_idle_injection_func()
476 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in start_power_clamp_worker() local
483 w_data->worker = worker; in start_power_clamp_worker()
484 w_data->count = 0; in start_power_clamp_worker()
485 w_data->cpu = cpu; in start_power_clamp_worker()
486 w_data->clamping = true; in start_power_clamp_worker()
489 kthread_init_work(&w_data->balancing_work, clamp_balancing_func); in start_power_clamp_worker()
490 kthread_init_delayed_work(&w_data->idle_injection_work, in start_power_clamp_worker()
492 kthread_queue_work(w_data->worker, &w_data->balancing_work); in start_power_clamp_worker()
497 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in stop_power_clamp_worker() local
499 if (!w_data->worker) in stop_power_clamp_worker()
502 w_data->clamping = false; in stop_power_clamp_worker()
510 kthread_cancel_work_sync(&w_data->balancing_work); in stop_power_clamp_worker()
511 kthread_cancel_delayed_work_sync(&w_data->idle_injection_work); in stop_power_clamp_worker()
519 clear_bit(w_data->cpu, cpu_clamping_mask); in stop_power_clamp_worker()
520 kthread_destroy_worker(w_data->worker); in stop_power_clamp_worker()
522 w_data->worker = NULL; in stop_power_clamp_worker()