/openbmc/linux/arch/powerpc/platforms/powernv/ |
H A D | pci-cxl.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright 2014-2016 IBM Corp. 7 #include <misc/cxl-base.h> 8 #include <asm/pnv-pci.h> 15 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pnv_phb_to_cxl_mode() 16 struct pnv_phb *phb = hose->private_data; in pnv_phb_to_cxl_mode() 22 return -ENODEV; in pnv_phb_to_cxl_mode() 26 rc = opal_pci_set_phb_cxl_mode(phb->opal_id, mode, pe->pe_number); in pnv_phb_to_cxl_mode() 28 dev_err(&dev->dev, "Required cxl mode not supported by firmware - update skiboot\n"); in pnv_phb_to_cxl_mode() 30 dev_err(&dev->dev, "opal_pci_set_phb_cxl_mode failed: %i\n", rc); in pnv_phb_to_cxl_mode() [all …]
|
/openbmc/linux/tools/testing/selftests/kvm/aarch64/ |
H A D | vgic_irq.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * vgic_irq.c - Test userspace injection of IRQs 5 * This test validates the injection of IRQs from userspace using various 30 uint32_t nr_irqs; /* number of KVM supported IRQs. */ 39 * 0x00 (highest priority) - 0xF8 (lowest priority), in steps of 8 47 #define LOWEST_PRIO (KVM_NUM_PRIOS - 1) 49 #define IRQ_DEFAULT_PRIO (LOWEST_PRIO - 1) 73 uint32_t num; member 80 uint32_t num, int level, bool expect_failure); 86 #define _KVM_INJECT_MULTI(cmd, intid, num, expect_failure) \ argument [all …]
|
/openbmc/linux/drivers/gpio/ |
H A D | gpio-reg.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * gpio-reg: single register individually fixed-direction GPIOs 19 #include <linux/gpio/gpio-reg.h> 28 const int *irqs; member 37 return r->direction & BIT(offset) ? GPIO_LINE_DIRECTION_IN : in gpio_reg_get_direction() 46 if (r->direction & BIT(offset)) in gpio_reg_direction_output() 47 return -ENOTSUPP; in gpio_reg_direction_output() 49 gc->set(gc, offset, value); in gpio_reg_direction_output() 57 return r->direction & BIT(offset) ? 0 : -ENOTSUPP; in gpio_reg_direction_input() 66 spin_lock_irqsave(&r->lock, flags); in gpio_reg_set() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/interrupt-controller/ |
H A D | fsl,irqsteer.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/fsl,irqsteer.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Lucas Stach <l.stach@pengutronix.de> 15 - const: fsl,imx-irqsteer 16 - items: 17 - const: fsl,imx8m-irqsteer 18 - const: fsl,imx-irqsteer 29 - description: output interrupt 0 [all …]
|
/openbmc/linux/drivers/scsi/cxlflash/ |
H A D | ocxl_hw.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 29 * Pseudo-filesystem to allocate inodes. 39 return init_pseudo(fc, OCXLFLASH_FS_MAGIC) ? 0 : -ENOMEM; in ocxlflash_fs_init_fs_context() 50 * ocxlflash_release_mapping() - release the memory mapping 55 if (ctx->mapping) in ocxlflash_release_mapping() 57 ctx->mapping = NULL; in ocxlflash_release_mapping() 61 * ocxlflash_getfile() - allocate pseudo filesystem, inode, and the file 78 if (fops->owner && !try_module_get(fops->owner)) { in ocxlflash_getfile() 80 rc = -ENOENT; in ocxlflash_getfile() 92 inode = alloc_anon_inode(ocxlflash_vfs_mount->mnt_sb); in ocxlflash_getfile() [all …]
|
H A D | cxl_hw.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 37 static int cxlflash_map_afu_irq(void *ctx_cookie, int num, in cxlflash_map_afu_irq() argument 40 return cxl_map_afu_irq(ctx_cookie, num, handler, cookie, name); in cxlflash_map_afu_irq() 43 static void cxlflash_unmap_afu_irq(void *ctx_cookie, int num, void *cookie) in cxlflash_unmap_afu_irq() argument 45 cxl_unmap_afu_irq(ctx_cookie, num, cookie); in cxlflash_unmap_afu_irq() 100 static int cxlflash_allocate_afu_irqs(void *ctx_cookie, int num) in cxlflash_allocate_afu_irqs() argument 102 return cxl_allocate_afu_irqs(ctx_cookie, num); in cxlflash_allocate_afu_irqs() 131 static int cxlflash_start_work(void *ctx_cookie, u64 irqs) in cxlflash_start_work() argument 135 work.num_interrupts = irqs; in cxlflash_start_work()
|
H A D | backend.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 22 int (*map_afu_irq)(void *ctx_cookie, int num, irq_handler_t handler, 24 void (*unmap_afu_irq)(void *ctx_cookie, int num, void *cookie); 36 int (*allocate_afu_irqs)(void *ctx_cookie, int num); 43 int (*start_work)(void *ctx_cookie, u64 irqs);
|
/openbmc/linux/arch/powerpc/sysdev/ |
H A D | msi_bitmap.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright 2006-2008, Michael Ellerman, IBM Corporation. 15 int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num) in msi_bitmap_alloc_hwirqs() argument 18 int offset, order = get_count_order(num); in msi_bitmap_alloc_hwirqs() 20 spin_lock_irqsave(&bmp->lock, flags); in msi_bitmap_alloc_hwirqs() 22 offset = bitmap_find_next_zero_area(bmp->bitmap, bmp->irq_count, 0, in msi_bitmap_alloc_hwirqs() 23 num, (1 << order) - 1); in msi_bitmap_alloc_hwirqs() 24 if (offset > bmp->irq_count) in msi_bitmap_alloc_hwirqs() 27 bitmap_set(bmp->bitmap, offset, num); in msi_bitmap_alloc_hwirqs() 28 spin_unlock_irqrestore(&bmp->lock, flags); in msi_bitmap_alloc_hwirqs() [all …]
|
/openbmc/qemu/hw/intc/ |
H A D | heathrow_pic.c | 4 * Copyright (c) 2005-2007 Fabrice Bellard 35 return (pic->events | (pic->levels & pic->level_triggered)) & pic->mask; in heathrow_check_irq() 41 if (heathrow_check_irq(&s->pics[0]) || in heathrow_update_irq() 42 heathrow_check_irq(&s->pics[1])) { in heathrow_update_irq() 43 qemu_irq_raise(s->irqs[0]); in heathrow_update_irq() 45 qemu_irq_lower(s->irqs[0]); in heathrow_update_irq() 56 n = ((addr & 0xfff) - 0x10) >> 4; in heathrow_write() 60 pic = &s->pics[n]; in heathrow_write() 63 pic->mask = value; in heathrow_write() 67 /* do not reset level triggered IRQs */ in heathrow_write() [all …]
|
/openbmc/linux/drivers/usb/gadget/udc/ |
H A D | goku_udc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Toshiba TC86C001 ("Goku-S") USB Device Controller driver 5 * Copyright (C) 2000-2002 Lineo 12 * This device has ep0 and three semi-configurable bulk/interrupt endpoints. 14 * - Endpoint numbering is fixed: ep{1,2,3}-bulk 15 * - Gadget drivers can choose ep maxpacket (8/16/32/64) 16 * - Gadget drivers can choose direction (IN, OUT) 17 * - DMA works with ep1 (OUT transfers) and ep2 (IN transfers). 21 // #define USB_TRACE /* packet-level success messages */ 49 #define DRIVER_VERSION "30-Oct 2003" [all …]
|
/openbmc/linux/drivers/irqchip/ |
H A D | irq-imgpdc.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright 2010-2013 Imagination Technologies Ltd. 66 * struct pdc_intc_priv - private pdc interrupt data. 71 * @domain: IRQ domain for PDC peripheral and syswake IRQs. 92 iowrite32(data, priv->pdc_base + reg_offs); in pdc_write() 98 return ioread32(priv->pdc_base + reg_offs); in pdc_read() 112 return hw - SYS0_HWIRQ; in hwirq_to_syswake() 122 return (struct pdc_intc_priv *)data->domain->host_data; in irqd_to_priv() 135 raw_spin_lock(&priv->lock); in perip_irq_mask() 136 priv->irq_route &= ~data->mask; in perip_irq_mask() [all …]
|
/openbmc/linux/arch/powerpc/include/asm/ |
H A D | pnv-pci.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 13 #include <misc/cxl-base.h> 14 #include <asm/opal-api.h> 33 int pnv_cxl_alloc_hwirqs(struct pci_dev *dev, int num); 34 void pnv_cxl_release_hwirqs(struct pci_dev *dev, int hwirq, int num); 41 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, 42 struct pci_dev *dev, int num); 43 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs,
|
/openbmc/linux/drivers/base/ |
H A 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> 48 * platform_get_resource - get a resource for a device 51 * @num: resource index [all …]
|
/openbmc/qemu/hw/timer/ |
H A D | sifive_pwm.c | 31 #include "hw/qdev-properties.h" 72 return muldiv64(time, s->freq_hz, NANOSECONDS_PER_SECOND); in sifive_pwm_ns_to_ticks() 78 return muldiv64(ticks, NANOSECONDS_PER_SECOND, s->freq_hz); in sifive_pwm_ticks_to_ns() 83 return s->pwmcfg & R_CONFIG_SCALE_MASK; in sifive_pwm_compute_scale() 90 if (HAS_PWM_EN_BITS(s->pwmcfg)) { in sifive_pwm_set_alarms() 95 uint64_t pwmcount = (sifive_pwm_ns_to_ticks(s, now_ns) - in sifive_pwm_set_alarms() 96 s->tick_offset) & PWMCOUNT_MASK; in sifive_pwm_set_alarms() 102 uint64_t pwmcmp = s->pwmcmp[i] & PWMCMP_MASK; in sifive_pwm_set_alarms() 110 uint64_t offset = pwmcmp_ticks - pwmcount + 1; in sifive_pwm_set_alarms() 115 timer_mod(&s->timer[i], when_to_fire); in sifive_pwm_set_alarms() [all …]
|
/openbmc/qemu/include/hw/intc/ |
H A D | arm_gic.h | 23 * + QOM property "num-cpu": number of CPUs to support 24 * + QOM property "num-irq": number of IRQs (including both SPIs and PPIs) 26 * + QOM property "has-security-extensions": set true if the GIC should 28 * + QOM property "has-virtualization-extensions": set true if the GIC should 30 * + unnamed GPIO inputs: (where P is number of SPIs, i.e. num-irq - 32) 31 * [0..P-1] SPIs 35 * + sysbus IRQs: (in order; number will vary depending on number of cores) 36 * - IRQ for CPU 0 37 * - IRQ for CPU 1 39 * - FIQ for CPU 0 [all …]
|
/openbmc/linux/drivers/misc/cxl/ |
H A D | api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 20 * Since we want to track memory mappings to be able to force-unmap 26 * Therefore we implement our own simple pseudo-filesystem and inode 28 * meta-data associated with it (address_space) and it is shared by 40 return init_pseudo(fc, CXL_PSEUDO_FS_MAGIC) ? 0 : -ENOMEM; in cxl_fs_init_fs_context() 53 if (ctx->kernelapi && ctx->mapping) in cxl_release_mapping() 67 if (fops->owner && !try_module_get(fops->owner)) in cxl_getfile() 68 return ERR_PTR(-ENOENT); in cxl_getfile() 77 inode = alloc_anon_inode(cxl_vfs_mount->mnt_sb); in cxl_getfile() 88 file->private_data = priv; in cxl_getfile() [all …]
|
H A D | guest.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 28 if (afu->phb == NULL) in pci_error_handlers() 31 list_for_each_entry(afu_dev, &afu->phb->bus->devices, bus_list) { in pci_error_handlers() 32 afu_drv = to_pci_driver(afu_dev->dev.driver); in pci_error_handlers() 36 err_handler = afu_drv->err_handler; in pci_error_handlers() 39 afu_dev->error_state = state; in pci_error_handlers() 42 err_handler->error_detected) in pci_error_handlers() 43 err_handler->error_detected(afu_dev, state); in pci_error_handlers() 46 afu_dev->error_state = state; in pci_error_handlers() 49 err_handler->slot_reset) in pci_error_handlers() [all …]
|
/openbmc/linux/include/misc/ |
H A D | cxl.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 35 * - cxl_dev_context_init() 36 * - cxl_start_context() 37 * - cxl_stop_context() 38 * - cxl_start_context() 39 * - cxl_stop_context() 41 * - cxl_release_context() 52 * Once a context has been inited, IRQs may be configured. Firstly these IRQs 56 * These IRQs can be unmapped (cxl_unmap_afu_irq()) and finally released 92 * Allocate AFU interrupts for this context. num=0 will allocate the default [all …]
|
/openbmc/qemu/hw/ppc/ |
H A D | spapr_irq.c | 7 * COPYING file in the top-level directory. 12 #include "qemu/error-report.h" 20 #include "hw/qdev-properties.h" 21 #include "cpu-models.h" 36 if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { in spapr_irq_msi_init() 41 spapr->irq_map_nr = spapr_irq_nr_msis(spapr); in spapr_irq_msi_init() 42 spapr->irq_map = bitmap_new(spapr->irq_map_nr); in spapr_irq_msi_init() 45 int spapr_irq_msi_alloc(SpaprMachineState *spapr, uint32_t num, bool align, in spapr_irq_msi_alloc() argument 56 align -= 1; in spapr_irq_msi_alloc() 58 irq = bitmap_find_next_zero_area(spapr->irq_map, spapr->irq_map_nr, 0, num, in spapr_irq_msi_alloc() [all …]
|
/openbmc/linux/drivers/s390/cio/ |
H A D | airq.c | 1 // SPDX-License-Identifier: GPL-2.0 35 * register_adapter_interrupt() - register adapter interrupt handler 38 * Returns 0 on success, or -EINVAL. 44 if (!airq->handler || airq->isc > MAX_ISC) in register_adapter_interrupt() 45 return -EINVAL; in register_adapter_interrupt() 46 if (!airq->lsi_ptr) { in register_adapter_interrupt() 47 airq->lsi_ptr = cio_dma_zalloc(1); in register_adapter_interrupt() 48 if (!airq->lsi_ptr) in register_adapter_interrupt() 49 return -ENOMEM; in register_adapter_interrupt() 50 airq->flags |= AIRQ_PTR_ALLOCATED; in register_adapter_interrupt() [all …]
|
/openbmc/u-boot/arch/arm/mach-omap2/omap5/ |
H A D | fdt.c | 1 // SPDX-License-Identifier: GPL-2.0+ 12 #include <asm/arch-omap5/sys_proto.h> 50 /* Reserve IRQs that are used/needed by secure world */ in ft_hs_fixup_crossbar() 59 p_data = fdt_getprop(fdt, offs, "ti,irqs-skip", &len); in ft_hs_fixup_crossbar() 76 fdt_delprop(fdt, offs, "ti,irqs-skip"); in ft_hs_fixup_crossbar() 77 ret = fdt_setprop(fdt, offs, "ti,irqs-skip", in ft_hs_fixup_crossbar() 84 printf("Could not add ti,irqs-skip property to node %s: %s\n", in ft_hs_fixup_crossbar() 106 path = "/ocp/ocmcram@40300000/sram-hs"; in ft_hs_fixup_sram() 199 static int ft_fixup_clocks(void *fdt, const char **names, u32 *rates, int num) in ft_fixup_clocks() argument 211 for (i = 0; i < num; i++) { in ft_fixup_clocks() [all …]
|
/openbmc/u-boot/arch/x86/lib/ |
H A D | pirq_routing.c | 1 // SPDX-License-Identifier: GPL-2.0+ 52 void pirq_route_irqs(struct udevice *dev, struct irq_info *irq, int num) in pirq_route_irqs() argument 62 /* Set PCI IRQs */ in pirq_route_irqs() 63 for (i = 0; i < num; i++) { in pirq_route_irqs() 65 irq->bus, irq->devfn >> 3, irq->devfn & 7); in pirq_route_irqs() 68 int link = irq->irq[intx].link; in pirq_route_irqs() 69 int bitmap = irq->irq[intx].bitmap; in pirq_route_irqs() 100 /* Bus, device, slots IRQs for {A,B,C,D} */ in pirq_route_irqs() 101 pci_assign_irqs(irq->bus, irq->devfn >> 3, irq_slot); in pirq_route_irqs() 118 memcpy((void *)(uintptr_t)addr, rt, rt->size); in copy_pirq_routing_table() [all …]
|
/openbmc/linux/kernel/irq/ |
H A D | matrix.c | 1 // SPDX-License-Identifier: GPL-2.0 43 * irq_alloc_matrix - Allocate a irq_matrix structure and initialize it 62 m->matrix_bits = matrix_bits; in irq_alloc_matrix() 63 m->alloc_start = alloc_start; in irq_alloc_matrix() 64 m->alloc_end = alloc_end; in irq_alloc_matrix() 65 m->alloc_size = alloc_end - alloc_start; in irq_alloc_matrix() 66 m->maps = alloc_percpu(*m->maps); in irq_alloc_matrix() 67 if (!m->maps) { in irq_alloc_matrix() 75 * irq_matrix_online - Bring the local CPU matrix online 80 struct cpumap *cm = this_cpu_ptr(m->maps); in irq_matrix_online() [all …]
|
/openbmc/linux/drivers/net/ethernet/hisilicon/ |
H A D | hisi_femac.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 38 #define HW_RX_FIFO_DEPTH (MAX_HW_FIFO_DEPTH - HW_TX_FIFO_DEPTH) 84 #define MAX_MULTICAST_ADDRESSES (MAX_MAC_FILTER_NUM - \ 91 #define PHY_RESET_DELAYS_PROPERTY "hisilicon,phy-reset-delays-us" 103 int num; member 126 static void hisi_femac_irq_enable(struct hisi_femac_priv *priv, int irqs) in hisi_femac_irq_enable() argument 130 val = readl(priv->glb_base + GLB_IRQ_ENA); in hisi_femac_irq_enable() 131 writel(val | irqs, priv->glb_base + GLB_IRQ_ENA); in hisi_femac_irq_enable() 134 static void hisi_femac_irq_disable(struct hisi_femac_priv *priv, int irqs) in hisi_femac_irq_disable() argument 138 val = readl(priv->glb_base + GLB_IRQ_ENA); in hisi_femac_irq_disable() [all …]
|
/openbmc/linux/drivers/vdpa/solidrun/ |
H A D | snet_main.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2022-2023 SolidRun 7 * Author: Alvaro Karsz <alvaro.karsz@solid-run.com> 42 if (likely(snet->cb.callback)) in snet_cfg_irq_hndlr() 43 return snet->cb.callback(snet->cb.private); in snet_cfg_irq_hndlr() 52 if (likely(vq->cb.callback)) in snet_vq_irq_hndlr() 53 return vq->cb.callback(vq->cb.private); in snet_vq_irq_hndlr() 60 struct psnet *psnet = snet->psnet; in snet_free_irqs() 64 /* Which Device allcoated the IRQs? */ in snet_free_irqs() 66 pdev = snet->pdev->physfn; in snet_free_irqs() [all …]
|