Lines Matching refs:fwspec
785 struct irq_fwspec *fwspec, in gic_irq_domain_translate() argument
789 if (is_of_node(fwspec->fwnode)) { in gic_irq_domain_translate()
790 if (fwspec->param_count < 3) in gic_irq_domain_translate()
793 switch (fwspec->param[0]) { in gic_irq_domain_translate()
795 *hwirq = fwspec->param[1] + 32; in gic_irq_domain_translate()
798 *hwirq = fwspec->param[1] + 16; in gic_irq_domain_translate()
801 *hwirq = fwspec->param[1]; in gic_irq_domain_translate()
807 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in gic_irq_domain_translate()
811 if (is_fwnode_irqchip(fwspec->fwnode)) { in gic_irq_domain_translate()
812 if(fwspec->param_count != 2) in gic_irq_domain_translate()
815 *hwirq = fwspec->param[0]; in gic_irq_domain_translate()
816 *type = fwspec->param[1]; in gic_irq_domain_translate()
829 struct irq_fwspec *fwspec = arg; in gic_irq_domain_alloc() local
831 ret = gic_irq_domain_translate(domain, fwspec, &hwirq, &type); in gic_irq_domain_alloc()
854 struct irq_fwspec *fwspec, in gic_irq_domain_select() argument
858 if (fwspec->fwnode != d->fwnode) in gic_irq_domain_select()
862 if (!is_of_node(fwspec->fwnode)) in gic_irq_domain_select()
869 if (fwspec->param_count >= 4 && in gic_irq_domain_select()
870 fwspec->param[0] == 1 && fwspec->param[3] != 0) in gic_irq_domain_select()
871 return d == partition_get_domain(gic_data.ppi_descs[fwspec->param[1]]); in gic_irq_domain_select()
884 struct irq_fwspec *fwspec, in partition_domain_translate() argument
891 np = of_find_node_by_phandle(fwspec->param[3]); in partition_domain_translate()
895 ret = partition_translate_id(gic_data.ppi_descs[fwspec->param[1]], in partition_domain_translate()
901 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in partition_domain_translate()