Lines Matching refs:dgc
280 struct irq_domain_chip_generic *dgc; in irq_domain_alloc_generic_chips() local
298 dgc_sz = struct_size(dgc, gc, numchips); in irq_domain_alloc_generic_chips()
301 tmp = dgc = kzalloc(sz, GFP_KERNEL); in irq_domain_alloc_generic_chips()
302 if (!dgc) in irq_domain_alloc_generic_chips()
304 dgc->irqs_per_chip = info->irqs_per_chip; in irq_domain_alloc_generic_chips()
305 dgc->num_chips = numchips; in irq_domain_alloc_generic_chips()
306 dgc->irq_flags_to_set = info->irq_flags_to_set; in irq_domain_alloc_generic_chips()
307 dgc->irq_flags_to_clear = info->irq_flags_to_clear; in irq_domain_alloc_generic_chips()
308 dgc->gc_flags = info->gc_flags; in irq_domain_alloc_generic_chips()
309 dgc->exit = info->exit; in irq_domain_alloc_generic_chips()
310 d->gc = dgc; in irq_domain_alloc_generic_chips()
316 dgc->gc[i] = gc = tmp; in irq_domain_alloc_generic_chips()
318 i * dgc->irqs_per_chip, NULL, in irq_domain_alloc_generic_chips()
322 if (dgc->gc_flags & IRQ_GC_BE_IO) { in irq_domain_alloc_generic_chips()
342 if (dgc->exit) in irq_domain_alloc_generic_chips()
343 dgc->exit(dgc->gc[i]); in irq_domain_alloc_generic_chips()
344 irq_remove_generic_chip(dgc->gc[i], ~0U, 0, 0); in irq_domain_alloc_generic_chips()
347 kfree(dgc); in irq_domain_alloc_generic_chips()
358 struct irq_domain_chip_generic *dgc = d->gc; in irq_domain_remove_generic_chips() local
361 if (!dgc) in irq_domain_remove_generic_chips()
364 for (i = 0; i < dgc->num_chips; i++) { in irq_domain_remove_generic_chips()
365 if (dgc->exit) in irq_domain_remove_generic_chips()
366 dgc->exit(dgc->gc[i]); in irq_domain_remove_generic_chips()
367 irq_remove_generic_chip(dgc->gc[i], ~0U, 0, 0); in irq_domain_remove_generic_chips()
370 kfree(dgc); in irq_domain_remove_generic_chips()
408 struct irq_domain_chip_generic *dgc = d->gc; in __irq_get_domain_generic_chip() local
411 if (!dgc) in __irq_get_domain_generic_chip()
413 idx = hw_irq / dgc->irqs_per_chip; in __irq_get_domain_generic_chip()
414 if (idx >= dgc->num_chips) in __irq_get_domain_generic_chip()
416 return dgc->gc[idx]; in __irq_get_domain_generic_chip()
447 struct irq_domain_chip_generic *dgc = d->gc; in irq_map_generic_chip() local
457 idx = hw_irq % dgc->irqs_per_chip; in irq_map_generic_chip()
471 irq_gc_init_mask_cache(gc, dgc->gc_flags); in irq_map_generic_chip()
477 if (dgc->gc_flags & IRQ_GC_INIT_NESTED_LOCK) in irq_map_generic_chip()
487 irq_modify_status(virq, dgc->irq_flags_to_clear, dgc->irq_flags_to_set); in irq_map_generic_chip()
494 struct irq_domain_chip_generic *dgc = d->gc; in irq_unmap_generic_chip() local
503 irq_idx = hw_irq % dgc->irqs_per_chip; in irq_unmap_generic_chip()