Lines Matching defs:vint_desc

147 	struct ti_sci_inta_vint_desc *vint_desc;
153 vint_desc = irq_desc_get_handler_data(desc);
154 domain = vint_desc->domain;
159 val = readq_relaxed(inta->base + vint_desc->vint_id * 0x1000 +
163 virq = irq_find_mapping(domain, vint_desc->events[bit].hwirq);
211 struct ti_sci_inta_vint_desc *vint_desc;
228 vint_desc = kzalloc(sizeof(*vint_desc), GFP_KERNEL);
229 if (!vint_desc) {
234 vint_desc->domain = domain;
235 vint_desc->vint_id = vint_id;
236 INIT_LIST_HEAD(&vint_desc->list);
260 vint_desc->parent_virq = parent_virq;
262 list_add_tail(&vint_desc->list, &inta->vint_list);
263 irq_set_chained_handler_and_data(vint_desc->parent_virq,
264 ti_sci_inta_irq_handler, vint_desc);
266 return vint_desc;
268 kfree(vint_desc);
276 * @vint_desc: Pointer to vint_desc to which the event gets attached
282 static struct ti_sci_inta_event_desc *ti_sci_inta_alloc_event(struct ti_sci_inta_vint_desc *vint_desc,
286 struct ti_sci_inta_irq_domain *inta = vint_desc->domain->host_data;
294 event_desc = &vint_desc->events[free_bit];
304 vint_desc->vint_id,
331 struct ti_sci_inta_vint_desc *vint_desc = NULL;
336 list_for_each_entry(vint_desc, &inta->vint_list, list) {
337 free_bit = find_first_zero_bit(vint_desc->event_map,
340 set_bit(free_bit, vint_desc->event_map);
346 vint_desc = ti_sci_inta_alloc_parent_irq(domain);
347 if (IS_ERR(vint_desc)) {
348 event_desc = ERR_CAST(vint_desc);
352 free_bit = find_first_zero_bit(vint_desc->event_map,
354 set_bit(free_bit, vint_desc->event_map);
357 event_desc = ti_sci_inta_alloc_event(vint_desc, free_bit, hwirq);
359 clear_bit(free_bit, vint_desc->event_map);
369 * @vint_desc: Pointer to vint_desc that needs to be freed.
372 struct ti_sci_inta_vint_desc *vint_desc)
374 if (find_first_bit(vint_desc->event_map, MAX_EVENTS_PER_VINT) == MAX_EVENTS_PER_VINT) {
375 list_del(&vint_desc->list);
376 ti_sci_release_resource(inta->vint, vint_desc->vint_id);
377 irq_dispose_mapping(vint_desc->parent_virq);
378 kfree(vint_desc);
390 struct ti_sci_inta_vint_desc *vint_desc;
394 vint_desc = to_vint_desc(event_desc, event_desc->vint_bit);
395 inta = vint_desc->domain->host_data;
402 vint_desc->vint_id,
406 clear_bit(event_desc->vint_bit, vint_desc->event_map);
411 ti_sci_inta_free_parent_irq(inta, vint_desc);
462 struct ti_sci_inta_vint_desc *vint_desc;
466 vint_desc = to_vint_desc(event_desc, event_desc->vint_bit);
470 inta->base + vint_desc->vint_id * 0x1000 + offset);