Lines Matching refs:msi_data
52 struct fsl_msi *msi_data; member
72 struct fsl_msi *msi_data = irqd->domain->host_data; in fsl_msi_print_chip() local
76 srs = (hwirq >> msi_data->srs_shift) & MSI_SRS_MASK; in fsl_msi_print_chip()
77 cascade_virq = msi_data->cascade_array[srs]->virq; in fsl_msi_print_chip()
93 struct fsl_msi *msi_data = h->host_data; in fsl_msi_host_map() local
98 irq_set_chip_data(virq, msi_data); in fsl_msi_host_map()
108 static int fsl_msi_init_allocator(struct fsl_msi *msi_data) in fsl_msi_init_allocator() argument
112 rc = msi_bitmap_alloc(&msi_data->bitmap, NR_MSI_IRQS_MAX, in fsl_msi_init_allocator()
113 msi_data->irqhost->of_node); in fsl_msi_init_allocator()
122 msi_bitmap_reserve_hwirq(&msi_data->bitmap, hwirq); in fsl_msi_init_allocator()
130 struct fsl_msi *msi_data; in fsl_teardown_msi_irqs() local
137 msi_data = irq_get_chip_data(entry->irq); in fsl_teardown_msi_irqs()
140 msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1); in fsl_teardown_msi_irqs()
150 struct fsl_msi *msi_data = fsl_msi_data; in fsl_compose_msi_msg() local
161 address = fsl_pci_immrbar_base(hose) + msi_data->msiir_offset; in fsl_compose_msi_msg()
173 if (msi_data->feature & MSI_HW_ERRATA_ENDIAN) in fsl_compose_msi_msg()
179 (hwirq >> msi_data->srs_shift) & MSI_SRS_MASK, in fsl_compose_msi_msg()
180 (hwirq >> msi_data->ibs_shift) & MSI_IBS_MASK); in fsl_compose_msi_msg()
192 struct fsl_msi *msi_data; in fsl_setup_msi_irqs() local
200 list_for_each_entry(msi_data, &msi_head, list) in fsl_setup_msi_irqs()
201 if (msi_data->feature & MSI_HW_ERRATA_ENDIAN) in fsl_setup_msi_irqs()
228 list_for_each_entry(msi_data, &msi_head, list) { in fsl_setup_msi_irqs()
237 if (phandle && (phandle != msi_data->phandle)) in fsl_setup_msi_irqs()
240 hwirq = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1); in fsl_setup_msi_irqs()
251 virq = irq_create_mapping(msi_data->irqhost, hwirq); in fsl_setup_msi_irqs()
255 msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1); in fsl_setup_msi_irqs()
262 fsl_compose_msi_msg(pdev, hwirq, &msg, msi_data); in fsl_setup_msi_irqs()
275 struct fsl_msi *msi_data; in fsl_msi_cascade() local
283 msi_data = cascade_data->msi_data; in fsl_msi_cascade()
290 switch (msi_data->feature & FSL_PIC_IP_MASK) { in fsl_msi_cascade()
292 msir_value = fsl_msi_read(msi_data->msi_regs, in fsl_msi_cascade()
296 msir_value = fsl_msi_read(msi_data->msi_regs, msir_index * 0x4); in fsl_msi_cascade()
315 cascade_irq = irq_linear_revmap(msi_data->irqhost, in fsl_msi_cascade()
316 msi_hwirq(msi_data, msir_index, in fsl_msi_cascade()
378 cascade_data->msi_data = msi; in fsl_msi_setup_hwirq()