/linux/drivers/mfd/ |
H A D | mt6358-irq.c | 79 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_enable() local 81 irqd->enable_hwirq[hwirq] = true; in pmic_irq_enable() 88 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_disable() local 90 irqd->enable_hwirq[hwirq] = false; in pmic_irq_disable() 104 struct pmic_irq_data *irqd = chip->irq_data; in pmic_irq_sync_unlock() local 106 for (i = 0; i < irqd->num_pmic_irqs; i++) { in pmic_irq_sync_unlock() 107 if (irqd->enable_hwirq[i] == irqd->cache_hwirq[i]) in pmic_irq_sync_unlock() 112 while ((top_gp + 1) < irqd->num_top && in pmic_irq_sync_unlock() 113 i >= irqd->pmic_ints[top_gp + 1].hwirq_base) in pmic_irq_sync_unlock() 117 gp_offset = i - irqd->pmic_ints[top_gp].hwirq_base; in pmic_irq_sync_unlock() [all …]
|
H A D | lp8788-irq.c | 64 struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data); in lp8788_irq_enable() local 66 irqd->enabled[data->hwirq] = 1; in lp8788_irq_enable() 71 struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data); in lp8788_irq_disable() local 73 irqd->enabled[data->hwirq] = 0; in lp8788_irq_disable() 78 struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data); in lp8788_irq_bus_lock() local 80 mutex_lock(&irqd->irq_lock); in lp8788_irq_bus_lock() 85 struct lp8788_irq_data *irqd = irq_data_get_irq_chip_data(data); in lp8788_irq_bus_sync_unlock() local 91 val = _irq_to_val(irq, irqd->enabled[irq]); in lp8788_irq_bus_sync_unlock() 93 lp8788_update_bits(irqd->lp, addr, mask, val); in lp8788_irq_bus_sync_unlock() 95 mutex_unlock(&irqd->irq_lock); in lp8788_irq_bus_sync_unlock() [all …]
|
/linux/drivers/pinctrl/samsung/ |
H A D | pinctrl-s3c64xx.c | 316 static inline void s3c64xx_gpio_irq_set_mask(struct irq_data *irqd, bool mask) in s3c64xx_gpio_irq_set_mask() argument 318 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in s3c64xx_gpio_irq_set_mask() 320 unsigned char index = EINT_OFFS(bank->eint_offset) + irqd->hwirq; in s3c64xx_gpio_irq_set_mask() 332 static void s3c64xx_gpio_irq_unmask(struct irq_data *irqd) in s3c64xx_gpio_irq_unmask() argument 334 s3c64xx_gpio_irq_set_mask(irqd, false); in s3c64xx_gpio_irq_unmask() 337 static void s3c64xx_gpio_irq_mask(struct irq_data *irqd) in s3c64xx_gpio_irq_mask() argument 339 s3c64xx_gpio_irq_set_mask(irqd, true); in s3c64xx_gpio_irq_mask() 342 static void s3c64xx_gpio_irq_ack(struct irq_data *irqd) in s3c64xx_gpio_irq_ack() argument 344 struct samsung_pin_bank *bank = irq_data_get_irq_chip_data(irqd); in s3c64xx_gpio_irq_ack() 346 unsigned char index = EINT_OFFS(bank->eint_offset) + irqd->hwirq; in s3c64xx_gpio_irq_ack() [all …]
|
/linux/kernel/irq/ |
H A D | pm.c | 73 struct irq_data *irqd = &desc->irq_data; in suspend_device_irq() local 79 if (irqd_is_wakeup_set(irqd)) { in suspend_device_irq() 80 irqd_set(irqd, IRQD_WAKEUP_ARMED); in suspend_device_irq() 83 irqd_irq_disabled(irqd)) { in suspend_device_irq() 90 irqd_set(irqd, IRQD_IRQ_ENABLED_ON_SUSPEND); in suspend_device_irq() 153 struct irq_data *irqd = &desc->irq_data; in resume_irq() local 155 irqd_clear(irqd, IRQD_WAKEUP_ARMED); in resume_irq() 157 if (irqd_is_enabled_on_suspend(irqd)) { in resume_irq() 164 irqd_clear(irqd, IRQD_IRQ_ENABLED_ON_SUSPEND); in resume_irq()
|
H A D | irqdomain.c | 1387 struct irq_data *irqd; in irq_domain_disconnect_hierarchy() local 1389 irqd = irq_domain_get_irq_data(domain, virq); in irq_domain_disconnect_hierarchy() 1390 if (!irqd) in irq_domain_disconnect_hierarchy() 1393 irqd->chip = ERR_PTR(-ENOTCONN); in irq_domain_disconnect_hierarchy() 1400 struct irq_data *tail, *irqd, *irq_data; in irq_domain_trim_hierarchy() local 1413 for (irqd = irq_data->parent_data; irqd; irq_data = irqd, irqd = irqd->parent_data) { in irq_domain_trim_hierarchy() 1415 if (irqd->chip && tail) in irq_domain_trim_hierarchy() 1419 if (!irqd->chip && !tail) in irq_domain_trim_hierarchy() 1422 if (IS_ERR(irqd->chip)) { in irq_domain_trim_hierarchy() 1424 if (PTR_ERR(irqd->chip) != -ENOTCONN) in irq_domain_trim_hierarchy() [all …]
|
H A D | irq_sim.c | 167 struct irq_data *irqd; in irq_sim_domain_unmap() local 169 irqd = irq_domain_get_irq_data(domain, virq); in irq_sim_domain_unmap() 170 irq_ctx = irq_data_get_irq_chip_data(irqd); in irq_sim_domain_unmap() 173 irq_domain_reset_irq_data(irqd); in irq_sim_domain_unmap()
|
H A D | msi.c | 1185 struct irq_data *irqd = irq_domain_get_irq_data(domain, virq); in msi_init_virq() local 1189 irqd_clr_can_reserve(irqd); in msi_init_virq() 1199 irqd_affinity_is_managed(irqd) && in msi_init_virq() 1200 !cpumask_intersects(irq_data_get_affinity_mask(irqd), in msi_init_virq() 1202 irqd_set_managed_shutdown(irqd); in msi_init_virq() 1210 ret = irq_domain_activate_irq(irqd, vflags & VIRQ_CAN_RESERVE); in msi_init_virq() 1218 irqd_clr_activated(irqd); in msi_init_virq() 1541 struct irq_data *irqd; in __msi_domain_free_irqs() local 1553 irqd = irq_domain_get_irq_data(domain, desc->irq + i); in __msi_domain_free_irqs() 1554 if (irqd && irqd_is_activated(irqd)) in __msi_domain_free_irqs() [all …]
|
H A D | internals.h | 484 static inline struct irq_data *irqd_get_parent_data(struct irq_data *irqd) in irq_domain_activate_irq() 487 return irqd->parent_data; in irq_domain_deactivate_irq() 492 irqd_get_parent_data(struct irq_data * irqd) irqd_get_parent_data() argument
|
/linux/drivers/gpio/ |
H A D | gpio-mlxbf3.c | 56 static void mlxbf3_gpio_irq_enable(struct irq_data *irqd) in mlxbf3_gpio_irq_enable() argument 58 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in mlxbf3_gpio_irq_enable() 60 irq_hw_number_t offset = irqd_to_hwirq(irqd); in mlxbf3_gpio_irq_enable() 75 static void mlxbf3_gpio_irq_disable(struct irq_data *irqd) in mlxbf3_gpio_irq_disable() argument 77 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in mlxbf3_gpio_irq_disable() 79 irq_hw_number_t offset = irqd_to_hwirq(irqd); in mlxbf3_gpio_irq_disable() 111 mlxbf3_gpio_irq_set_type(struct irq_data *irqd, unsigned int type) in mlxbf3_gpio_irq_set_type() argument 113 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in mlxbf3_gpio_irq_set_type() 115 irq_hw_number_t offset = irqd_to_hwirq(irqd); in mlxbf3_gpio_irq_set_type() 147 irq_set_handler_locked(irqd, handle_edge_irq); in mlxbf3_gpio_irq_set_type()
|
H A D | gpio-ljca.c | 306 static void ljca_irq_unmask(struct irq_data *irqd) in ljca_irq_unmask() argument 308 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in ljca_irq_unmask() 310 int gpio_id = irqd_to_hwirq(irqd); in ljca_irq_unmask() 316 static void ljca_irq_mask(struct irq_data *irqd) in ljca_irq_mask() argument 318 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in ljca_irq_mask() 320 int gpio_id = irqd_to_hwirq(irqd); in ljca_irq_mask() 326 static int ljca_irq_set_type(struct irq_data *irqd, unsigned int type) in ljca_irq_set_type() argument 328 struct gpio_chip *gc = irq_data_get_irq_chip_data(irqd); in ljca_irq_set_type() 330 int gpio_id = irqd_to_hwirq(irqd); in ljca_irq_set_type() 359 static void ljca_irq_bus_lock(struct irq_data *irqd) in ljca_irq_bus_lock() argument [all …]
|
H A D | gpio-thunderx.c | 404 struct irq_data *irqd; in thunderx_gpio_child_to_parent_hwirq() local 408 irqd = irq_domain_get_irq_data(gc->irq.parent_domain, irq); in thunderx_gpio_child_to_parent_hwirq() 409 if (!irqd) in thunderx_gpio_child_to_parent_hwirq() 411 *parent = irqd_to_hwirq(irqd); in thunderx_gpio_child_to_parent_hwirq()
|
/linux/drivers/irqchip/ |
H A D | irq-sun4i.c | 49 static void sun4i_irq_ack(struct irq_data *irqd) in sun4i_irq_ack() argument 51 unsigned int irq = irqd_to_hwirq(irqd); in sun4i_irq_ack() 59 static void sun4i_irq_mask(struct irq_data *irqd) in sun4i_irq_mask() argument 61 unsigned int irq = irqd_to_hwirq(irqd); in sun4i_irq_mask() 72 static void sun4i_irq_unmask(struct irq_data *irqd) in sun4i_irq_unmask() argument 74 unsigned int irq = irqd_to_hwirq(irqd); in sun4i_irq_unmask()
|
H A D | irq-zevio.c | 39 static void zevio_irq_ack(struct irq_data *irqd) in zevio_irq_ack() argument 41 struct irq_chip_generic *gc = irq_data_get_irq_chip_data(irqd); in zevio_irq_ack() 42 struct irq_chip_regs *regs = &irq_data_get_chip_type(irqd)->regs; in zevio_irq_ack()
|
H A D | irq-riscv-imsic-platform.c | 193 struct irq_data *irqd, int ind) in imsic_irq_debug_show() argument 195 if (!irqd) { in imsic_irq_debug_show() 200 imsic_vector_debug_show(m, irq_data_get_irq_chip_data(irqd), ind); in imsic_irq_debug_show()
|
/linux/drivers/soc/qcom/ |
H A D | smp2p.c | 327 static void smp2p_mask_irq(struct irq_data *irqd) in smp2p_mask_irq() argument 329 struct smp2p_entry *entry = irq_data_get_irq_chip_data(irqd); in smp2p_mask_irq() 330 irq_hw_number_t irq = irqd_to_hwirq(irqd); in smp2p_mask_irq() 335 static void smp2p_unmask_irq(struct irq_data *irqd) in smp2p_unmask_irq() argument 337 struct smp2p_entry *entry = irq_data_get_irq_chip_data(irqd); in smp2p_unmask_irq() 338 irq_hw_number_t irq = irqd_to_hwirq(irqd); in smp2p_unmask_irq() 343 static int smp2p_set_irq_type(struct irq_data *irqd, unsigned int type) in smp2p_set_irq_type() argument 345 struct smp2p_entry *entry = irq_data_get_irq_chip_data(irqd); in smp2p_set_irq_type() 346 irq_hw_number_t irq = irqd_to_hwirq(irqd); in smp2p_set_irq_type() 364 static void smp2p_irq_print_chip(struct irq_data *irqd, struct seq_file *p) in smp2p_irq_print_chip() argument [all …]
|
/linux/drivers/iio/dummy/ |
H A D | iio_dummy_evgen.c | 104 struct irq_data *irqd = irq_get_irq_data(irq); in iio_dummy_evgen_release_irq() local 107 iio_evgen->inuse[irqd_to_hwirq(irqd)] = false; in iio_dummy_evgen_release_irq() 115 struct irq_data *irqd = irq_get_irq_data(irq); in iio_dummy_evgen_get_regs() local 117 return &iio_evgen->regs[irqd_to_hwirq(irqd)]; in iio_dummy_evgen_get_regs()
|
/linux/arch/mips/sgi-ip30/ |
H A D | ip30-irq.c | 230 struct irq_data *irqd; in heart_domain_free() local 235 irqd = irq_domain_get_irq_data(domain, virq); in heart_domain_free() 236 if (irqd) { in heart_domain_free() 237 clear_bit(irqd->hwirq, heart_irq_map); in heart_domain_free() 238 kfree(irqd->chip_data); in heart_domain_free()
|
/linux/arch/mips/pci/ |
H A D | pci-xtalk-bridge.c | 364 struct irq_data *irqd = irq_domain_get_irq_data(domain, virq); in bridge_domain_free() local 369 kfree(irqd->chip_data); in bridge_domain_free() 374 struct irq_data *irqd, bool reserve) in bridge_domain_activate() argument 376 struct bridge_irq_chip_data *data = irqd->chip_data; in bridge_domain_activate() 378 int bit = irqd->parent_data->hwirq; in bridge_domain_activate() 379 int pin = irqd->hwirq; in bridge_domain_activate() 411 struct irq_data *irqd) in bridge_domain_deactivate() argument 413 struct bridge_irq_chip_data *data = irqd->chip_data; in bridge_domain_deactivate() 415 bridge_clr(data->bc, b_int_enable, (1 << irqd->hwirq)); in bridge_domain_deactivate()
|
/linux/arch/powerpc/sysdev/xics/ |
H A D | xics-common.c | 202 struct irq_data *irqd; in xics_migrate_irqs_away() local 211 irqd = irq_domain_get_irq_data(xics_host, virq); in xics_migrate_irqs_away() 212 if (!irqd) in xics_migrate_irqs_away() 214 irq = irqd_to_hwirq(irqd); in xics_migrate_irqs_away()
|
/linux/drivers/gpu/drm/msm/ |
H A D | msm_mdss.c | 100 static void msm_mdss_irq_mask(struct irq_data *irqd) in msm_mdss_irq_mask() argument 102 struct msm_mdss *msm_mdss = irq_data_get_irq_chip_data(irqd); in msm_mdss_irq_mask() 106 clear_bit(irqd->hwirq, &msm_mdss->irq_controller.enabled_mask); in msm_mdss_irq_mask() 111 static void msm_mdss_irq_unmask(struct irq_data *irqd) in msm_mdss_irq_unmask() argument 113 struct msm_mdss *msm_mdss = irq_data_get_irq_chip_data(irqd); in msm_mdss_irq_unmask() 117 set_bit(irqd->hwirq, &msm_mdss->irq_controller.enabled_mask); in msm_mdss_irq_unmask()
|
/linux/arch/powerpc/sysdev/ |
H A D | fsl_msi.c | 69 static void fsl_msi_print_chip(struct irq_data *irqd, struct seq_file *p) in fsl_msi_print_chip() argument 71 struct fsl_msi *msi_data = irqd->domain->host_data; in fsl_msi_print_chip() 72 irq_hw_number_t hwirq = irqd_to_hwirq(irqd); in fsl_msi_print_chip()
|
/linux/drivers/input/keyboard/ |
H A D | adp5588-keys.c | 486 struct irq_data *irqd; in adp5588_gpio_irq_handle() local 500 irqd = irq_get_irq_data(irq); in adp5588_gpio_irq_handle() 501 if (!irqd) { in adp5588_gpio_irq_handle() 506 irq_type = irqd_get_trigger_type(irqd); in adp5588_gpio_irq_handle()
|
/linux/drivers/base/ |
H A D | platform.c | 206 struct irq_data *irqd; in platform_get_irq_optional() local 208 irqd = irq_get_irq_data(r->start); in platform_get_irq_optional() 209 if (!irqd) in platform_get_irq_optional() 211 irqd_set_trigger_type(irqd, r->flags & IORESOURCE_BITS); in platform_get_irq_optional()
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_irq.c | 669 static void amdgpu_irq_mask(struct irq_data *irqd) in amdgpu_irq_mask() argument 674 static void amdgpu_irq_unmask(struct irq_data *irqd) in amdgpu_irq_unmask() argument
|
/linux/include/linux/ |
H A D | irqdomain.h | 117 int (*activate)(struct irq_domain *d, struct irq_data *irqd, bool reserve); 124 struct irq_data *irqd, int ind);
|