Lines Matching defs:w_data
368 struct powerclamp_worker_data *w_data;
374 w_data = container_of(work, struct powerclamp_worker_data,
382 w_data->target_ratio = READ_ONCE(set_target_ratio);
383 w_data->guard = 1 + w_data->target_ratio / 20;
384 w_data->window_size_now = window_size;
385 w_data->duration_jiffies = msecs_to_jiffies(duration);
386 w_data->count++;
393 compensated_ratio = w_data->target_ratio +
394 get_compensation(w_data->target_ratio);
397 interval = w_data->duration_jiffies * 100 / compensated_ratio;
405 if (clamping && w_data->clamping && cpu_online(w_data->cpu))
406 kthread_queue_delayed_work(w_data->worker,
407 &w_data->idle_injection_work,
413 struct powerclamp_worker_data *w_data;
415 w_data = container_of(work, struct powerclamp_worker_data,
422 if (w_data->cpu == control_cpu &&
423 !(w_data->count % w_data->window_size_now)) {
425 powerclamp_adjust_controls(w_data->target_ratio,
426 w_data->guard,
427 w_data->window_size_now);
434 play_idle(jiffies_to_usecs(w_data->duration_jiffies));
437 if (clamping && w_data->clamping && cpu_online(w_data->cpu))
438 kthread_queue_work(w_data->worker, &w_data->balancing_work);
480 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu);
487 w_data->worker = worker;
488 w_data->count = 0;
489 w_data->cpu = cpu;
490 w_data->clamping = true;
493 kthread_init_work(&w_data->balancing_work, clamp_balancing_func);
494 kthread_init_delayed_work(&w_data->idle_injection_work,
496 kthread_queue_work(w_data->worker, &w_data->balancing_work);
501 struct powerclamp_worker_data *w_data = per_cpu_ptr(worker_data, cpu);
503 if (!w_data->worker)
506 w_data->clamping = false;
514 kthread_cancel_work_sync(&w_data->balancing_work);
515 kthread_cancel_delayed_work_sync(&w_data->idle_injection_work);
523 clear_bit(w_data->cpu, cpu_clamping_mask);
524 kthread_destroy_worker(w_data->worker);
526 w_data->worker = NULL;