Lines Matching refs:vpe
96 static int its_alloc_vcpu_sgis(struct its_vpe *vpe, int idx)
110 vpe->fwnode = irq_domain_alloc_named_id_fwnode(name, idx);
111 if (!vpe->fwnode) {
118 vpe->sgi_domain = irq_domain_create_linear(vpe->fwnode, IRQ_DOMAIN_WORD_SIZE, sgi_domain_ops, vpe);
119 if (!vpe->sgi_domain) {
123 sgi_base = __irq_domain_alloc_irqs(vpe->sgi_domain, -1, IRQ_DOMAIN_WORD_SIZE, NUMA_NO_NODE, vpe, false, NULL);
131 if (vpe->sgi_domain) {
132 irq_domain_remove(vpe->sgi_domain);
134 if (vpe->fwnode) {
135 irq_domain_free_fwnode(vpe->fwnode);
145 vm->fwnode = irq_domain_alloc_named_id_fwnode("GICv4-vpe", task_pid_nr(current));
215 static int its_send_vpe_cmd(struct its_vpe *vpe, struct its_cmd_info *info)
217 return irq_set_vcpu_affinity(vpe->irq, info);
220 int its_make_vpe_non_resident(struct its_vpe *vpe, bool db)
222 struct irq_desc *desc = irq_to_desc(vpe->irq);
235 enable_irq(vpe->irq);
239 ret = its_send_vpe_cmd(vpe, &info);
241 vpe->resident = false;
244 vpe->ready = false;
249 int its_make_vpe_resident(struct its_vpe *vpe, bool g0en, bool g1en)
262 disable_irq_nosync(vpe->irq);
265 ret = its_send_vpe_cmd(vpe, &info);
267 vpe->resident = true;
273 int its_commit_vpe(struct its_vpe *vpe)
282 ret = its_send_vpe_cmd(vpe, &info);
284 vpe->ready = true;
290 int its_invall_vpe(struct its_vpe *vpe)
296 return its_send_vpe_cmd(vpe, &info);