Lines Matching refs:w_data
349 struct powerclamp_worker_data *w_data; in clamp_balancing_func() local
355 w_data = container_of(work, struct powerclamp_worker_data, in clamp_balancing_func()
363 w_data->target_ratio = READ_ONCE(set_target_ratio); in clamp_balancing_func()
364 w_data->guard = 1 + w_data->target_ratio / 20; in clamp_balancing_func()
365 w_data->window_size_now = window_size; in clamp_balancing_func()
366 w_data->duration_jiffies = msecs_to_jiffies(duration); in clamp_balancing_func()
367 w_data->count++; in clamp_balancing_func()
374 compensated_ratio = w_data->target_ratio + in clamp_balancing_func()
375 get_compensation(w_data->target_ratio); in clamp_balancing_func()
378 interval = w_data->duration_jiffies * 100 / compensated_ratio; in clamp_balancing_func()
386 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_balancing_func()
387 kthread_queue_delayed_work(w_data->worker, in clamp_balancing_func()
388 &w_data->idle_injection_work, in clamp_balancing_func()
394 struct powerclamp_worker_data *w_data; in clamp_idle_injection_func() local
396 w_data = container_of(work, struct powerclamp_worker_data, in clamp_idle_injection_func()
403 if (w_data->cpu == control_cpu && in clamp_idle_injection_func()
404 !(w_data->count % w_data->window_size_now)) { in clamp_idle_injection_func()
406 powerclamp_adjust_controls(w_data->target_ratio, in clamp_idle_injection_func()
407 w_data->guard, in clamp_idle_injection_func()
408 w_data->window_size_now); in clamp_idle_injection_func()
415 play_idle(jiffies_to_usecs(w_data->duration_jiffies)); in clamp_idle_injection_func()
418 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_idle_injection_func()
419 kthread_queue_work(w_data->worker, &w_data->balancing_work); in clamp_idle_injection_func()
461 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in start_power_clamp_worker() local
468 w_data->worker = worker; in start_power_clamp_worker()
469 w_data->count = 0; in start_power_clamp_worker()
470 w_data->cpu = cpu; in start_power_clamp_worker()
471 w_data->clamping = true; in start_power_clamp_worker()
474 kthread_init_work(&w_data->balancing_work, clamp_balancing_func); in start_power_clamp_worker()
475 kthread_init_delayed_work(&w_data->idle_injection_work, in start_power_clamp_worker()
477 kthread_queue_work(w_data->worker, &w_data->balancing_work); in start_power_clamp_worker()
482 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in stop_power_clamp_worker() local
484 if (!w_data->worker) in stop_power_clamp_worker()
487 w_data->clamping = false; in stop_power_clamp_worker()
495 kthread_cancel_work_sync(&w_data->balancing_work); in stop_power_clamp_worker()
496 kthread_cancel_delayed_work_sync(&w_data->idle_injection_work); in stop_power_clamp_worker()
504 clear_bit(w_data->cpu, cpu_clamping_mask); in stop_power_clamp_worker()
505 kthread_destroy_worker(w_data->worker); in stop_power_clamp_worker()
507 w_data->worker = NULL; in stop_power_clamp_worker()