pci_irqd_intx_xlate(9)
okay so bestie, this is pci_irqd_intx_xlate(9) from the Kernel API Manual, and it's literally the tiny translator that takes a PCI INTx value and turns it into an IRQ domain hwirq number π
β¨
π NAME π
pci_irqd_intx_xlate β Translate PCI INTx value to an IRQ domain hwirq.
β¨ SYNOPSIS β¨
int pci_irqd_intx_xlate (struct irq_domain *d , struct device_node *node
, const u32 *intspec , unsigned int intsize , unsigned long *out_hwirq ,
unsigned int *out_type );
π ARGUMENTS π
Here's the cast, bestie β every single one matters:
dβ the INTx IRQ domain. That's the domain doing the INTx thing π«nodeβ the DT node for the device whose interrupt we're translating.intspecβ the interrupt specifier data from the DT.intsizeβ the number of entries inintspec.out_hwirqβ pointer at which to write the hwirq number.out_typeβ pointer at which to write the interrupt type.
π¦ DESCRIPTION π¦
Okay so the actual glow-up is this: translate a PCI INTx interrupt number from device tree in the range 1-4, as stored in the standard PCI_INTERRUPT_PIN register, to a value in the range 0-3 suitable for use in a 4 entry IRQ domain. The way that works? Subtract one from the INTx value to obtain the hwirq number. Literally it, no cap β¨
Returns 0 on success, or -EINVAL if the interrupt specifier is out of range. Vibe check: out-of-range gets the -EINVAL treatment π
π SEE ALSO π
The whole extended friend group, all exact and accounted for π«Ά:
- Kernel file
./include/linux/pci.hβenum pci_interrupt_pin(9) pci_channel_state_t(9)pci_is_bridge(9)pci_is_vga(9)pci_is_display(9)struct pci_driver(9)PCI_DEVICE(9)PCI_DEVICE_DRIVER_OVERRIDE(9)PCI_DRIVER_OVERRIDE_DEVICE_VFIO(9)PCI_DEVICE_SUB(9)PCI_DEVICE_CLASS(9)PCI_VDEVICE(9)PCI_VDEVICE_SUB(9)PCI_DEVICE_DATA(9)pcie_capability_clear_and_set_word(9)pci_bus_for_each_resource(9)module_pci_driver(9)builtin_pci_driver(9)pci_irq_type(9)pci_resource_is_io(9)pci_resource_is_mem(9)pci_pcie_cap(9)pci_is_pcie(9)pcie_caps_reg(9)pci_pcie_type(9)pcie_find_root_port(9)pci_vpd_alloc(9)pci_vpd_find_id_string(9)pci_vpd_find_ro_info_keyword(9)pci_vpd_check_csum(9)pci_ari_enabled(9)pci_is_thunderbolt_attached(9)
and that's the whole page, bestie π source/version: ./include/linux; date: October 2026; manual: pci_irqd_intx_xlate(9). slay and goodbye π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms