Lines Matching refs:w_data

382 	struct powerclamp_worker_data *w_data;  in clamp_balancing_func()  local
388 w_data = container_of(work, struct powerclamp_worker_data, in clamp_balancing_func()
396 w_data->target_ratio = READ_ONCE(set_target_ratio); in clamp_balancing_func()
397 w_data->guard = 1 + w_data->target_ratio / 20; in clamp_balancing_func()
398 w_data->window_size_now = window_size; in clamp_balancing_func()
399 w_data->duration_jiffies = msecs_to_jiffies(duration); in clamp_balancing_func()
400 w_data->count++; in clamp_balancing_func()
407 compensated_ratio = w_data->target_ratio + in clamp_balancing_func()
408 get_compensation(w_data->target_ratio); in clamp_balancing_func()
411 interval = w_data->duration_jiffies * 100 / compensated_ratio; in clamp_balancing_func()
419 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_balancing_func()
420 kthread_queue_delayed_work(w_data->worker, in clamp_balancing_func()
421 &w_data->idle_injection_work, in clamp_balancing_func()
427 struct powerclamp_worker_data *w_data; in clamp_idle_injection_func() local
429 w_data = container_of(work, struct powerclamp_worker_data, in clamp_idle_injection_func()
436 if (w_data->cpu == control_cpu && in clamp_idle_injection_func()
437 !(w_data->count % w_data->window_size_now)) { in clamp_idle_injection_func()
439 powerclamp_adjust_controls(w_data->target_ratio, in clamp_idle_injection_func()
440 w_data->guard, in clamp_idle_injection_func()
441 w_data->window_size_now); in clamp_idle_injection_func()
448 play_idle(jiffies_to_msecs(w_data->duration_jiffies)); in clamp_idle_injection_func()
451 if (clamping && w_data->clamping && cpu_online(w_data->cpu)) in clamp_idle_injection_func()
452 kthread_queue_work(w_data->worker, &w_data->balancing_work); in clamp_idle_injection_func()
494 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in start_power_clamp_worker() local
501 w_data->worker = worker; in start_power_clamp_worker()
502 w_data->count = 0; in start_power_clamp_worker()
503 w_data->cpu = cpu; in start_power_clamp_worker()
504 w_data->clamping = true; in start_power_clamp_worker()
507 kthread_init_work(&w_data->balancing_work, clamp_balancing_func); in start_power_clamp_worker()
508 kthread_init_delayed_work(&w_data->idle_injection_work, in start_power_clamp_worker()
510 kthread_queue_work(w_data->worker, &w_data->balancing_work); in start_power_clamp_worker()
515 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu); in stop_power_clamp_worker() local
517 if (!w_data->worker) in stop_power_clamp_worker()
520 w_data->clamping = false; in stop_power_clamp_worker()
528 kthread_cancel_work_sync(&w_data->balancing_work); in stop_power_clamp_worker()
529 kthread_cancel_delayed_work_sync(&w_data->idle_injection_work); in stop_power_clamp_worker()
537 clear_bit(w_data->cpu, cpu_clamping_mask); in stop_power_clamp_worker()
538 kthread_destroy_worker(w_data->worker); in stop_power_clamp_worker()
540 w_data->worker = NULL; in stop_power_clamp_worker()