Lines Matching refs:xgene_msi

36 	struct xgene_msi	*msi;
41 struct xgene_msi { struct
54 static struct xgene_msi xgene_msi_ctrl; argument
103 static u32 xgene_msi_ir_read(struct xgene_msi *msi, in xgene_msi_ir_read()
111 static u32 xgene_msi_int_read(struct xgene_msi *msi, u32 msi_grp) in xgene_msi_int_read()
152 struct xgene_msi *msi = irq_data_get_irq_chip_data(data); in xgene_compose_msi_msg()
206 struct xgene_msi *msi = domain->host_data; in xgene_irq_domain_alloc()
234 struct xgene_msi *msi = irq_data_get_irq_chip_data(d); in xgene_irq_domain_free()
252 static int xgene_allocate_domains(struct xgene_msi *msi) in xgene_allocate_domains()
271 static void xgene_free_domains(struct xgene_msi *msi) in xgene_free_domains()
279 static int xgene_msi_init_allocator(struct xgene_msi *xgene_msi) in xgene_msi_init_allocator() argument
283 xgene_msi->bitmap = kzalloc(size, GFP_KERNEL); in xgene_msi_init_allocator()
284 if (!xgene_msi->bitmap) in xgene_msi_init_allocator()
287 mutex_init(&xgene_msi->bitmap_lock); in xgene_msi_init_allocator()
289 xgene_msi->msi_groups = kcalloc(NR_HW_IRQS, in xgene_msi_init_allocator()
292 if (!xgene_msi->msi_groups) in xgene_msi_init_allocator()
302 struct xgene_msi *xgene_msi; in xgene_msi_isr() local
310 xgene_msi = msi_groups->msi; in xgene_msi_isr()
318 grp_select = xgene_msi_int_read(xgene_msi, msi_grp); in xgene_msi_isr()
326 msir_val = xgene_msi_ir_read(xgene_msi, msi_grp, msir_index); in xgene_msi_isr()
342 virq = irq_find_mapping(xgene_msi->inner_domain, hw_irq); in xgene_msi_isr()
356 grp_select = xgene_msi_int_read(xgene_msi, msi_grp); in xgene_msi_isr()
366 struct xgene_msi *msi = platform_get_drvdata(pdev); in xgene_msi_remove()
385 struct xgene_msi *msi = &xgene_msi_ctrl; in xgene_msi_hwirq_alloc()
432 struct xgene_msi *msi = &xgene_msi_ctrl; in xgene_msi_hwirq_free()
480 struct xgene_msi *xgene_msi; in xgene_msi_probe() local
485 xgene_msi = &xgene_msi_ctrl; in xgene_msi_probe()
487 platform_set_drvdata(pdev, xgene_msi); in xgene_msi_probe()
490 xgene_msi->msi_regs = devm_ioremap_resource(&pdev->dev, res); in xgene_msi_probe()
491 if (IS_ERR(xgene_msi->msi_regs)) { in xgene_msi_probe()
496 xgene_msi->msi_addr = res->start; in xgene_msi_probe()
497 xgene_msi->node = pdev->dev.of_node; in xgene_msi_probe()
498 xgene_msi->num_cpus = num_possible_cpus(); in xgene_msi_probe()
500 rc = xgene_msi_init_allocator(xgene_msi); in xgene_msi_probe()
506 rc = xgene_allocate_domains(xgene_msi); in xgene_msi_probe()
520 xgene_msi->msi_groups[irq_index].gic_irq = virt_msir; in xgene_msi_probe()
521 xgene_msi->msi_groups[irq_index].msi_grp = irq_index; in xgene_msi_probe()
522 xgene_msi->msi_groups[irq_index].msi = xgene_msi; in xgene_msi_probe()
532 msi_val = xgene_msi_ir_read(xgene_msi, irq_index, in xgene_msi_probe()
535 msi_val = xgene_msi_int_read(xgene_msi, irq_index); in xgene_msi_probe()