Lines Matching defs:xgene_msi
27 struct xgene_msi *msi;
32 struct xgene_msi {
45 static struct xgene_msi xgene_msi_ctrl;
94 static u32 xgene_msi_ir_read(struct xgene_msi *msi,
102 static u32 xgene_msi_int_read(struct xgene_msi *msi, u32 msi_grp)
143 struct xgene_msi *msi = irq_data_get_irq_chip_data(data);
197 struct xgene_msi *msi = domain->host_data;
225 struct xgene_msi *msi = irq_data_get_irq_chip_data(d);
243 static int xgene_allocate_domains(struct xgene_msi *msi)
262 static void xgene_free_domains(struct xgene_msi *msi)
270 static int xgene_msi_init_allocator(struct xgene_msi *xgene_msi)
272 xgene_msi->bitmap = bitmap_zalloc(NR_MSI_VEC, GFP_KERNEL);
273 if (!xgene_msi->bitmap)
276 mutex_init(&xgene_msi->bitmap_lock);
278 xgene_msi->msi_groups = kcalloc(NR_HW_IRQS,
281 if (!xgene_msi->msi_groups)
291 struct xgene_msi *xgene_msi;
298 xgene_msi = msi_groups->msi;
306 grp_select = xgene_msi_int_read(xgene_msi, msi_grp);
314 msir_val = xgene_msi_ir_read(xgene_msi, msi_grp, msir_index);
330 ret = generic_handle_domain_irq(xgene_msi->inner_domain, hw_irq);
342 grp_select = xgene_msi_int_read(xgene_msi, msi_grp);
353 struct xgene_msi *msi = platform_get_drvdata(pdev);
369 struct xgene_msi *msi = &xgene_msi_ctrl;
412 struct xgene_msi *msi = &xgene_msi_ctrl;
436 struct xgene_msi *xgene_msi;
440 xgene_msi = &xgene_msi_ctrl;
442 platform_set_drvdata(pdev, xgene_msi);
444 xgene_msi->msi_regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
445 if (IS_ERR(xgene_msi->msi_regs)) {
446 rc = PTR_ERR(xgene_msi->msi_regs);
449 xgene_msi->msi_addr = res->start;
450 xgene_msi->node = pdev->dev.of_node;
451 xgene_msi->num_cpus = num_possible_cpus();
453 rc = xgene_msi_init_allocator(xgene_msi);
459 rc = xgene_allocate_domains(xgene_msi);
471 xgene_msi->msi_groups[irq_index].gic_irq = virt_msir;
472 xgene_msi->msi_groups[irq_index].msi_grp = irq_index;
473 xgene_msi->msi_groups[irq_index].msi = xgene_msi;
483 xgene_msi_ir_read(xgene_msi, irq_index, msi_idx);
486 msi_val = xgene_msi_int_read(xgene_msi, irq_index);