Lines Matching refs:hfi_instance

118 struct hfi_instance {  struct
156 struct hfi_instance *hfi_instance; member
162 static struct hfi_instance *hfi_instances;
171 static void get_hfi_caps(struct hfi_instance *hfi_instance, in get_hfi_caps() argument
176 raw_spin_lock_irq(&hfi_instance->table_lock); in get_hfi_caps()
177 for_each_cpu(cpu, hfi_instance->cpus) { in get_hfi_caps()
182 caps = hfi_instance->data + index * hfi_features.cpu_stride; in get_hfi_caps()
194 raw_spin_unlock_irq(&hfi_instance->table_lock); in get_hfi_caps()
200 static void update_capabilities(struct hfi_instance *hfi_instance) in update_capabilities() argument
208 cpu_count = cpumask_weight(hfi_instance->cpus); in update_capabilities()
218 get_hfi_caps(hfi_instance, cpu_caps); in update_capabilities()
244 struct hfi_instance *hfi_instance; in hfi_update_work_fn() local
246 hfi_instance = container_of(to_delayed_work(work), struct hfi_instance, in hfi_update_work_fn()
249 update_capabilities(hfi_instance); in hfi_update_work_fn()
254 struct hfi_instance *hfi_instance; in intel_hfi_process_event() local
271 hfi_instance = info->hfi_instance; in intel_hfi_process_event()
272 if (unlikely(!hfi_instance)) { in intel_hfi_process_event()
283 if (!raw_spin_trylock(&hfi_instance->event_lock)) in intel_hfi_process_event()
289 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
298 new_timestamp = *(u64 *)hfi_instance->hw_table; in intel_hfi_process_event()
299 if (*hfi_instance->timestamp == new_timestamp) { in intel_hfi_process_event()
301 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
305 raw_spin_lock(&hfi_instance->table_lock); in intel_hfi_process_event()
311 memcpy(hfi_instance->local_table, hfi_instance->hw_table, in intel_hfi_process_event()
320 raw_spin_unlock(&hfi_instance->table_lock); in intel_hfi_process_event()
321 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
323 queue_delayed_work(hfi_updates_wq, &hfi_instance->update_work, in intel_hfi_process_event()
343 static void init_hfi_instance(struct hfi_instance *hfi_instance) in init_hfi_instance() argument
346 hfi_instance->hdr = hfi_instance->local_table + in init_hfi_instance()
347 sizeof(*hfi_instance->timestamp); in init_hfi_instance()
350 hfi_instance->data = hfi_instance->hdr + hfi_features.hdr_size; in init_hfi_instance()
363 static void hfi_set_hw_table(struct hfi_instance *hfi_instance) in hfi_set_hw_table() argument
368 hw_table_pa = virt_to_phys(hfi_instance->hw_table); in hfi_set_hw_table()
414 struct hfi_instance *hfi_instance; in intel_hfi_online() local
428 hfi_instance = info->hfi_instance; in intel_hfi_online()
429 if (!hfi_instance) { in intel_hfi_online()
433 hfi_instance = &hfi_instances[die_id]; in intel_hfi_online()
434 info->hfi_instance = hfi_instance; in intel_hfi_online()
445 if (hfi_instance->hdr) { in intel_hfi_online()
446 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
458 hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, in intel_hfi_online()
460 if (!hfi_instance->hw_table) in intel_hfi_online()
467 hfi_instance->local_table = kzalloc(hfi_features.nr_table_pages << PAGE_SHIFT, in intel_hfi_online()
469 if (!hfi_instance->local_table) in intel_hfi_online()
472 init_hfi_instance(hfi_instance); in intel_hfi_online()
474 INIT_DELAYED_WORK(&hfi_instance->update_work, hfi_update_work_fn); in intel_hfi_online()
475 raw_spin_lock_init(&hfi_instance->table_lock); in intel_hfi_online()
476 raw_spin_lock_init(&hfi_instance->event_lock); in intel_hfi_online()
478 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
480 hfi_set_hw_table(hfi_instance); in intel_hfi_online()
488 free_pages_exact(hfi_instance->hw_table, hfi_features.nr_table_pages); in intel_hfi_online()
505 struct hfi_instance *hfi_instance; in intel_hfi_offline() local
512 hfi_instance = info->hfi_instance; in intel_hfi_offline()
513 if (!hfi_instance) in intel_hfi_offline()
516 if (!hfi_instance->hdr) in intel_hfi_offline()
520 cpumask_clear_cpu(cpu, hfi_instance->cpus); in intel_hfi_offline()
522 if (!cpumask_weight(hfi_instance->cpus)) in intel_hfi_offline()
577 struct hfi_instance *hfi_instance = info->hfi_instance; in hfi_do_enable() local
580 hfi_set_hw_table(hfi_instance); in hfi_do_enable()
599 struct hfi_instance *hfi_instance; in intel_hfi_init() local
619 hfi_instance = &hfi_instances[i]; in intel_hfi_init()
620 if (!zalloc_cpumask_var(&hfi_instance->cpus, GFP_KERNEL)) in intel_hfi_init()
634 hfi_instance = &hfi_instances[j]; in intel_hfi_init()
635 free_cpumask_var(hfi_instance->cpus); in intel_hfi_init()