summaryrefslogtreecommitdiffstats
path: root/Documentation/driver-api/index.rst
diff options
context:
space:
mode:
authorDanilo Krummrich <dakr@kernel.org>2026-08-13 18:52:04 +0200
committerDanilo Krummrich <dakr@kernel.org>2026-08-17 01:41:36 +0200
commitf146c7bc85a51f95c05e0f8173d484eb301ece78 (patch)
tree07296ae54ed6551492b0c609dc0f5463f61f89ca /Documentation/driver-api/index.rst
downloadlinux-stable-f146c7bc85a51f95c05e0f8173d484eb301ece78.tar.gz
linux-stable-f146c7bc85a51f95c05e0f8173d484eb301ece78.zip
PCI: Add pci_irq_type() to query the allocated interrupt typegrafted
Add a helper that returns PCI_IRQ_MSIX, PCI_IRQ_MSI, or PCI_IRQ_INTX based on the interrupt type the PCI core selected after pci_alloc_irq_vectors(). Several drivers already open-code this check against pdev->msix_enabled and pdev->msi_enabled, or even open code this helper [1]. A common helper avoids the duplication and keeps drivers from accessing the bitfield directly (see also [2]). Acked-by: Bjorn Helgaas <bhelgaas@google.com> Tested-by: John Hubbard <jhubbard@nvidia.com> Link: https://elixir.bootlin.com/linux/v7.1/source/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c#L196 [1] Inspired-by: John Hubbard <jhubbard@nvidia.com> Link: https://lore.kernel.org/all/DKKG2QM3YJYB.Z2H2B2UXJ75N@kernel.org/ [2] Reviewed-by: Gary Guo <gary@garyguo.net> Link: https://patch.msgid.link/20260813165234.620555-5-dakr@kernel.org [ Add missing pci_irq_type() stub for CONFIG_PCI=n. ] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'Documentation/driver-api/index.rst')
-rw-r--r--Documentation/driver-api/index.rst151
1 files changed, 151 insertions, 0 deletions
diff --git a/Documentation/driver-api/index.rst b/Documentation/driver-api/index.rst
new file mode 100644
index 000000000..eaf7161ff
--- /dev/null
+++ b/Documentation/driver-api/index.rst
@@ -0,0 +1,151 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+==============================
+Driver implementer's API guide
+==============================
+
+The kernel offers a wide variety of interfaces to support the development
+of device drivers. This document is an only somewhat organized collection
+of some of those interfaces — it will hopefully get better over time! The
+available subsections can be seen below.
+
+
+General information for driver authors
+======================================
+
+This section contains documentation that should, at some point or other, be
+of interest to most developers working on device drivers.
+
+.. toctree::
+ :maxdepth: 1
+
+ basics
+ driver-model/index
+ device_link
+ infrastructure
+ ioctl
+ pm/index
+
+Useful support libraries
+========================
+
+This section contains documentation that should, at some point or other, be
+of interest to most developers working on device drivers.
+
+.. toctree::
+ :maxdepth: 1
+
+ early-userspace/index
+ connector
+ device-io
+ devfreq
+ dma-buf
+ component
+ io-mapping
+ io_ordering
+ uio-howto
+ vfio-mediated-device
+ vfio
+ vfio-pci-device-specific-driver-acceptance
+
+Bus-level documentation
+=======================
+
+.. toctree::
+ :maxdepth: 1
+
+ auxiliary_bus
+ cxl/index
+ eisa
+ firewire
+ i3c/index
+ isa
+ men-chameleon-bus
+ pci/index
+ rapidio/index
+ slimbus
+ usb/index
+ virtio/index
+ vme
+ w1
+ xillybus
+
+
+Subsystem-specific APIs
+=======================
+
+.. toctree::
+ :maxdepth: 1
+
+ 80211/index
+ acpi/index
+ backlight/lp855x-driver.rst
+ clk
+ coco/index
+ console
+ crypto/index
+ dmaengine/index
+ dpll
+ edac
+ extcon
+ firmware/index
+ fpga/index
+ frame-buffer
+ aperture
+ generic-counter
+ generic_pt
+ gpio/index
+ hsi
+ hte/index
+ hw-recoverable-errors
+ i2c
+ iio/index
+ infiniband
+ input
+ interconnect
+ ipmb
+ ipmi
+ libata
+ mailbox
+ md/index
+ media/index
+ mei/index
+ memory-devices/index
+ message-based
+ misc_devices
+ miscellaneous
+ mmc/index
+ mtd/index
+ mtdnand
+ nfc/index
+ ntb
+ nvdimm/index
+ nvmem
+ parport-lowlevel
+ phy/index
+ pin-control
+ pldmfw/index
+ pps
+ ptp
+ pwm
+ pwrseq
+ regulator
+ reset
+ rfkill
+ s390-drivers
+ scsi
+ serial/index
+ sm501
+ soundwire/index
+ spi
+ surface_aggregator/index
+ switchtec
+ sync_file
+ target
+ tee
+ thermal/index
+ tty/index
+ wbrf
+ wmi
+ xilinx/index
+ zorro