/linux-6.12.1/drivers/base/power/ |
D | wakeirq.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Device wakeirq helper functions */ 3 #include <linux/device.h> 5 #include <linux/irq.h> 13 * dev_pm_attach_wake_irq - Attach device interrupt as a wake IRQ 14 * @dev: Device entry 15 * @wirq: Wake irq specific data 17 * Internal function to attach a dedicated wake-up interrupt as a wake IRQ. 19 static int dev_pm_attach_wake_irq(struct device *dev, struct wake_irq *wirq) in dev_pm_attach_wake_irq() 24 return -EINVAL; in dev_pm_attach_wake_irq() [all …]
|
/linux-6.12.1/drivers/acpi/ |
D | pci_link.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * pci_link.c - ACPI PCI Interrupt Link Device Driver ($Revision: 34 $) 10 * 1. Support more than one IRQ resource entry per link device (index). 12 * for IRQ management (e.g. start()->_SRS). 28 #include <linux/irq.h> 36 static int acpi_pci_link_add(struct acpi_device *device, 38 static void acpi_pci_link_remove(struct acpi_device *device); 53 * later even the link is disable. Instead, we just repick the active irq 56 u32 active; /* Current IRQ */ 68 struct acpi_device *device; member [all …]
|
D | irq.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ACPI GSI IRQ layer 9 #include <linux/irq.h> 19 * acpi_gsi_to_irq() - Retrieve the linux irq number for a given GSI 20 * @gsi: GSI IRQ number to map 21 * @irq: pointer where linux IRQ number is stored 23 * irq location updated with irq value [>0 on success, 0 on failure] 26 * -EINVAL on failure 28 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) in acpi_gsi_to_irq() argument 34 *irq = irq_find_mapping(d, gsi); in acpi_gsi_to_irq() [all …]
|
/linux-6.12.1/kernel/irq/ |
D | devres.c | 1 // SPDX-License-Identifier: GPL-2.0 5 #include <linux/device.h> 7 #include <linux/irq.h> 12 * Device resource management aware IRQ request/free implementation. 15 unsigned int irq; member 19 static void devm_irq_release(struct device *dev, void *res) in devm_irq_release() 23 free_irq(this->irq, this->dev_id); in devm_irq_release() 26 static int devm_irq_match(struct device *dev, void *res, void *data) in devm_irq_match() 30 return this->irq == match->irq && this->dev_id == match->dev_id; in devm_irq_match() 34 * devm_request_threaded_irq - allocate an interrupt line for a managed device [all …]
|
/linux-6.12.1/drivers/pci/ |
D | irq.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI IRQ handling code 9 #include <linux/device.h> 19 * pci_request_irq - allocate an interrupt line for a PCI device 20 * @dev: PCI device to operate on 21 * @nr: device-relative interrupt vector index (0-based). 22 * @handler: Function to be called when the IRQ occurs. 26 * @thread_fn: Function called from the IRQ handler thread 27 * If NULL, no IRQ thread is created 29 * @fmt: Printf-like format string naming the handler [all …]
|
/linux-6.12.1/drivers/staging/media/atomisp/pci/hive_isp_css_include/host/ |
D | irq_public.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 22 /*! Write to a control register of IRQ[ID] 24 \param ID[in] IRQ identifier 28 \return none, IRQ[ID].ctrl[reg] = value 35 /*! Read from a control register of IRQ[ID] 37 \param ID[in] IRQ identifier 41 \return IRQ[ID].ctrl[reg] 47 /*! Enable an IRQ channel of IRQ[ID] with a mode 49 \param ID[in] IRQ (device) identifier 50 \param irq[in] IRQ (channel) identifier [all …]
|
/linux-6.12.1/drivers/pci/msi/ |
D | api.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI MSI/MSI-X — Exported APIs for device drivers 5 * Copyright (C) 2003-2004 Intel 12 #include <linux/irq.h> 17 * pci_enable_msi() - Enable MSI interrupt mode on device 18 * @dev: the PCI device to operate on 20 * Legacy device driver API to enable MSI interrupts mode on device and 22 * Linux IRQ will be saved at @dev->irq. The driver must invoke 40 * pci_disable_msi() - Disable MSI interrupt mode on device 41 * @dev: the PCI device to operate on [all …]
|
/linux-6.12.1/arch/x86/pci/ |
D | irq.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Low-Level PCI Support for PC -- Routing of Interrupts 5 * (c) 1999--2000 Martin Mares <mj@ucw.cz> 18 #include <linux/irq.h> 22 #include <asm/pc-conf-reg.h> 52 u16 vendor, device; member 57 int irq); 62 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device); 69 * Check passed address for the PCI IRQ Routing Table signature 81 if (rt->signature != PIRQ_SIGNATURE || in pirq_check_routing_table() [all …]
|
/linux-6.12.1/drivers/base/ |
D | auxiliary_sysfs.c | 1 // SPDX-License-Identifier: GPL-2.0 29 guard(mutex)(&auxdev->sysfs.lock); in auxiliary_irq_dir_prepare() 30 if (auxdev->sysfs.irq_dir_exists) in auxiliary_irq_dir_prepare() 33 ret = devm_device_add_group(&auxdev->dev, &auxiliary_irqs_group); in auxiliary_irq_dir_prepare() 37 auxdev->sysfs.irq_dir_exists = true; in auxiliary_irq_dir_prepare() 38 xa_init(&auxdev->sysfs.irqs); in auxiliary_irq_dir_prepare() 43 * auxiliary_device_sysfs_irq_add - add a sysfs entry for the given IRQ 44 * @auxdev: auxiliary bus device to add the sysfs entry. 45 * @irq: The associated interrupt number. 47 * This function should be called after auxiliary device have successfully [all …]
|
D | platform.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * platform.c - platform 'pseudo' bus for legacy devices 5 * Copyright (c) 2002-3 Patrick Mochel 6 * Copyright (c) 2002-3 Open Source Development Labs 8 * Please see Documentation/driver-api/driver-model/platform.rst for more 20 #include <linux/dma-mapping.h> 28 #include <linux/clk/clk-conf.h> 34 #include <linux/dma-map-ops.h> 39 /* For automatically allocated device IDs */ 42 struct device platform_bus = { [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/interrupt-controller/ |
D | st,stih407-irq-syscfg.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/st,stih407-irq-syscfg.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Patrice Chotard <patrice.chotard@foss.st.com> 15 Configuration registers. This device is used to unmask them prior to use. 19 const: st,stih407-irq-syscfg 22 description: Phandle to Cortex-A9 IRQ system config registers 25 st,irq-device: 27 $ref: /schemas/types.yaml#/definitions/uint32-array [all …]
|
/linux-6.12.1/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_irq.c | 33 * passed to amdgpu IRQ handler which is responsible for detecting source and 41 * For GPU interrupt sources that may be driven by another driver, IRQ domain 45 #include <linux/irq.h> 118 * amdgpu_irq_disable_all - disable *all* interrupts 120 * @adev: amdgpu device pointer 130 spin_lock_irqsave(&adev->irq.lock, irqflags); in amdgpu_irq_disable_all() 132 if (!adev->irq.client[i].sources) in amdgpu_irq_disable_all() 136 struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; in amdgpu_irq_disable_all() 138 if (!src || !src->funcs->set || !src->num_types) in amdgpu_irq_disable_all() 141 for (k = 0; k < src->num_types; ++k) { in amdgpu_irq_disable_all() [all …]
|
/linux-6.12.1/drivers/gpu/drm/radeon/ |
D | radeon_irq_kms.c | 47 * radeon_driver_irq_handler_kms - irq handler for KMS 49 * This is the irq handler for the radeon KMS driver (all asics). 50 * radeon_irq_process is a macro that points to the per-asic 51 * irq handler callback. 53 static irqreturn_t radeon_driver_irq_handler_kms(int irq, void *arg) in radeon_driver_irq_handler_kms() argument 56 struct radeon_device *rdev = dev->dev_private; in radeon_driver_irq_handler_kms() 61 pm_runtime_mark_last_busy(dev->dev); in radeon_driver_irq_handler_kms() 69 * radeon_hotplug_work_func - display hotplug work handler 74 * The work gets scheduled from the irq handler if there 84 struct drm_mode_config *mode_config = &dev->mode_config; in radeon_hotplug_work_func() [all …]
|
/linux-6.12.1/sound/drivers/mpu401/ |
D | mpu401.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Driver for generic MPU-401 boards (UART mode only) 18 MODULE_DESCRIPTION("MPU-401 UART"); 21 static int index[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -2}; /* exclude the first card */ 25 static bool pnp[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; 27 static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* MPU-401 port number */ 28 static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* MPU-401 IRQ */ variable 29 static bool uart_enter[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; 32 MODULE_PARM_DESC(index, "Index value for MPU-401 device."); 34 MODULE_PARM_DESC(id, "ID string for MPU-401 device."); [all …]
|
/linux-6.12.1/arch/alpha/kernel/ |
D | smc37c669.c | 60 * er 28-Jan-1997 Initial Entry 67 ** Macros for handling device IRQs 69 ** The mask acts as a flag used in mapping actual ISA IRQs (0 - 15) 70 ** to device IRQs (A - H). 81 ** Macros for handling device DRQs 84 ** channels to device DMA channels (A - C). 97 ** SMC37c669 Device Function Definitions 107 ** Default Device Function Mappings 127 ** SMC 37c669 Device IRQs 139 ** SMC 37c669 Device DMA Channel Definitions [all …]
|
/linux-6.12.1/include/linux/ |
D | interrupt.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 21 #include <asm/irq.h> 42 * irq handling routines. 44 * IRQF_SHARED - allow sharing the irq among several devices 45 * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur 46 * IRQF_TIMER - Flag to mark this interrupt as timer interrupt 47 * IRQF_PERCPU - Interrupt is per cpu 48 * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing 49 * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is 52 * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished. [all …]
|
D | pm_wakeirq.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* pm_wakeirq.h - Device wakeirq helper functions */ 9 extern int dev_pm_set_wake_irq(struct device *dev, int irq); 10 extern int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq); 11 extern int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq); 12 extern void dev_pm_clear_wake_irq(struct device *dev); 16 static inline int dev_pm_set_wake_irq(struct device *dev, int irq) in dev_pm_set_wake_irq() argument 21 static inline int dev_pm_set_dedicated_wake_irq(struct device *dev, int irq) in dev_pm_set_dedicated_wake_irq() argument 26 static inline int dev_pm_set_dedicated_wake_irq_reverse(struct device *dev, int irq) in dev_pm_set_dedicated_wake_irq_reverse() argument 31 static inline void dev_pm_clear_wake_irq(struct device *dev) in dev_pm_clear_wake_irq()
|
/linux-6.12.1/drivers/of/ |
D | irq.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Derived from arch/i386/kernel/irq.c 6 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 8 * Copyright (C) 1996-2001 Cort Dougan 12 * This file contains the code used to make IRQ descriptions in the 13 * device tree to actual irq numbers on an interrupt controller 19 #include <linux/device.h> 31 * irq_of_parse_and_map - Parse and map an interrupt into linux virq space 32 * @dev: Device node of the device whose interrupt is to be mapped 50 * of_irq_find_parent - Given a device node, find its interrupt parent node [all …]
|
/linux-6.12.1/drivers/platform/x86/dell/ |
D | dell-smo8800.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * dell-smo8800.c - Dell Latitude ACPI SMO88XX freefall sensor driver 23 u32 irq; /* acpi device irq */ member 26 unsigned long misc_opened; /* whether the device is open */ 28 struct device *dev; /* acpi device */ 31 static irqreturn_t smo8800_interrupt_quick(int irq, void *data) in smo8800_interrupt_quick() argument 35 atomic_inc(&smo8800->counter); in smo8800_interrupt_quick() 36 wake_up_interruptible(&smo8800->misc_wait); in smo8800_interrupt_quick() 40 static irqreturn_t smo8800_interrupt_thread(int irq, void *data) in smo8800_interrupt_thread() argument 44 dev_info(smo8800->dev, "detected free fall\n"); in smo8800_interrupt_thread() [all …]
|
/linux-6.12.1/arch/mips/pci/ |
D | msi-octeon.c | 6 * Copyright (C) 2005-2009, 2010 Cavium Networks 15 #include <asm/octeon/cvmx-npi-defs.h> 16 #include <asm/octeon/cvmx-pci-defs.h> 17 #include <asm/octeon/cvmx-npei-defs.h> 18 #include <asm/octeon/cvmx-sli-defs.h> 19 #include <asm/octeon/cvmx-pexp-defs.h> 20 #include <asm/octeon/pci-octeon.h> 29 * Each bit in msi_multiple_irq_bitmask tells that the device using 31 * is used so we can disable all of the MSI interrupts when a device 49 * arch_setup_msi_irq() - setup MSI IRQs for a device [all …]
|
/linux-6.12.1/arch/arm64/kvm/vgic/ |
D | vgic-its.c | 1 // SPDX-License-Identifier: GPL-2.0-only 17 #include <linux/irqchip/arm-gic-v3.h> 24 #include "vgic-mmio.h" 31 static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq, 44 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_add_lpi() 45 struct vgic_irq *irq = vgic_get_irq(kvm, NULL, intid), *oldirq; in vgic_add_lpi() local 50 if (irq) in vgic_add_lpi() 51 return irq; in vgic_add_lpi() 53 irq = kzalloc(sizeof(struct vgic_irq), GFP_KERNEL_ACCOUNT); in vgic_add_lpi() 54 if (!irq) in vgic_add_lpi() [all …]
|
/linux-6.12.1/drivers/misc/mei/ |
D | pci-txe.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2013-2020, Intel Corporation. All rights reserved. 9 #include <linux/device.h> 24 #include "hw-txe.h" 43 * mei_txe_probe - Device Initialization Routine 45 * @pdev: PCI device structure 60 dev_err(&pdev->dev, "failed to enable pci device.\n"); in mei_txe_probe() 65 /* pci request regions and mapping IO device memory for mei driver */ in mei_txe_probe() 68 dev_err(&pdev->dev, "failed to get pci regions.\n"); in mei_txe_probe() 72 err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(36)); in mei_txe_probe() [all …]
|
/linux-6.12.1/drivers/gpu/drm/i915/display/ |
D | intel_lpe_audio.c | 24 * Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> 34 * Atom platforms (e.g. valleyview and cherryTrail) integrates a DMA-based 41 * subsystems, a bridge is setup between the hdmi-lpe-audio and i915: 42 * 1. Create a platform device to share MMIO/IRQ resources 43 * 2. Make the platform device child of i915 device for runtime PM. 44 * 3. Create IRQ chip to forward the LPE audio irqs. 45 * the hdmi-lpe-audio driver probes the lpe audio device and creates a new 49 * Due to the restriction in Linux platform device model, user need manually 50 * uninstall the hdmi-lpe-audio driver before uninstalling i915 module, 51 * otherwise we might run into use-after-free issues after i915 removes the [all …]
|
/linux-6.12.1/drivers/uio/ |
D | uio_pdrv_genirq.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Userspace I/O platform driver with generic IRQ handling code. 9 * Based on uio_pdrv.c by Uwe Kleine-Koenig, 23 #include <linux/irq.h> 45 struct uio_pdrv_genirq_platdata *priv = info->priv; in uio_pdrv_genirq_open() 47 /* Wait until the Runtime PM code has woken up the device */ in uio_pdrv_genirq_open() 48 pm_runtime_get_sync(&priv->pdev->dev); in uio_pdrv_genirq_open() 54 struct uio_pdrv_genirq_platdata *priv = info->priv; in uio_pdrv_genirq_release() 56 /* Tell the Runtime PM code that the device has become idle */ in uio_pdrv_genirq_release() 57 pm_runtime_put_sync(&priv->pdev->dev); in uio_pdrv_genirq_release() [all …]
|
/linux-6.12.1/Documentation/admin-guide/ |
D | parport.rst | 4 The ``parport`` code provides parallel-port support under Linux. This 5 includes the ability to share one port between multiple device 12 because there are a lot of people using the same IRQ for their 16 port-sharing) and architecture-dependent (which deals with actually 28 architecture-dependent code with (for example):: 30 # insmod parport_pc io=0x3bc,0x378,0x278 irq=none,7,auto 32 to tell the ``parport`` code that you want three PC-style ports, one at 33 0x3bc with no IRQ, one at 0x378 using IRQ 7, and one at 0x278 with an 34 auto-detected IRQ. Currently, PC-style (``parport_pc``), Sun ``bpp``, 43 -------- [all …]
|