| /OK3568_Linux_fs/kernel/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 <asm/pnv-pci.h> 14 struct pci_controller *hose = pci_bus_to_host(dev->bus); in pnv_phb_to_cxl_mode() 15 struct pnv_phb *phb = hose->private_data; in pnv_phb_to_cxl_mode() 21 return -ENODEV; in pnv_phb_to_cxl_mode() 25 rc = opal_pci_set_phb_cxl_mode(phb->opal_id, mode, pe->pe_number); in pnv_phb_to_cxl_mode() 27 dev_err(&dev->dev, "Required cxl mode not supported by firmware - update skiboot\n"); in pnv_phb_to_cxl_mode() 29 dev_err(&dev->dev, "opal_pci_set_phb_cxl_mode failed: %i\n", rc); in pnv_phb_to_cxl_mode() 38 int pnv_cxl_alloc_hwirqs(struct pci_dev *dev, int num) in pnv_cxl_alloc_hwirqs() argument [all …]
|
| /OK3568_Linux_fs/kernel/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 8 #include <linux/gpio/gpio-reg.h> 20 const int *irqs; member 29 return r->direction & BIT(offset) ? GPIO_LINE_DIRECTION_IN : in gpio_reg_get_direction() 38 if (r->direction & BIT(offset)) in gpio_reg_direction_output() 39 return -ENOTSUPP; in gpio_reg_direction_output() 41 gc->set(gc, offset, value); in gpio_reg_direction_output() 49 return r->direction & BIT(offset) ? 0 : -ENOTSUPP; in gpio_reg_direction_input() 58 spin_lock_irqsave(&r->lock, flags); in gpio_reg_set() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/scsi/cxlflash/ |
| H A D | ocxl_hw.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 28 * Pseudo-filesystem to allocate inodes. 38 return init_pseudo(fc, OCXLFLASH_FS_MAGIC) ? 0 : -ENOMEM; in ocxlflash_fs_init_fs_context() 49 * ocxlflash_release_mapping() - release the memory mapping 54 if (ctx->mapping) in ocxlflash_release_mapping() 56 ctx->mapping = NULL; in ocxlflash_release_mapping() 60 * ocxlflash_getfile() - allocate pseudo filesystem, inode, and the file 77 if (fops->owner && !try_module_get(fops->owner)) { in ocxlflash_getfile() 79 rc = -ENOENT; in ocxlflash_getfile() 91 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);
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/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. 14 int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num) in msi_bitmap_alloc_hwirqs() argument 17 int offset, order = get_count_order(num); in msi_bitmap_alloc_hwirqs() 19 spin_lock_irqsave(&bmp->lock, flags); in msi_bitmap_alloc_hwirqs() 21 offset = bitmap_find_next_zero_area(bmp->bitmap, bmp->irq_count, 0, in msi_bitmap_alloc_hwirqs() 22 num, (1 << order) - 1); in msi_bitmap_alloc_hwirqs() 23 if (offset > bmp->irq_count) in msi_bitmap_alloc_hwirqs() 26 bitmap_set(bmp->bitmap, offset, num); in msi_bitmap_alloc_hwirqs() 27 spin_unlock_irqrestore(&bmp->lock, flags); in msi_bitmap_alloc_hwirqs() [all …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| H A D | gr_udc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 14 * - Andreas Larsson <andreas@gaisler.com> 15 * - Marko Isomaki 35 #include <linux/dma-mapping.h> 65 /* ---------------------------------------------------------------------- */ 94 int buflen = ep->is_in ? req->req.length : req->req.actual; in gr_dbgprint_request() 98 dev_dbg(ep->dev->dev, "%s: 0x%p, %d bytes data%s:\n", str, req, buflen, in gr_dbgprint_request() 101 rowlen, 4, req->req.buf, plen, false); in gr_dbgprint_request() 107 dev_vdbg(dev->dev, "REQ: %02x.%02x v%04x i%04x l%04x\n", in gr_dbgprint_devreq() 120 /* ---------------------------------------------------------------------- */ [all …]
|
| H A D | net2280.c | 1 // SPDX-License-Identifier: GPL-2.0+ 27 * Copyright (C) 2003-2005 PLX Technology, Inc. 28 * Copyright (C) 2014 Ricardo Ribalda - Qtechnology/AS 39 #include <linux/dma-mapping.h> 87 EP_INFO("ep-a", 89 EP_INFO("ep-b", 91 EP_INFO("ep-c", 93 EP_INFO("ep-d", 95 EP_INFO("ep-e", 97 EP_INFO("ep-f", [all …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/arch/powerpc/include/asm/ |
| H A D | pnv-pci.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 12 #include <misc/cxl-base.h> 13 #include <asm/opal-api.h> 32 int pnv_cxl_alloc_hwirqs(struct pci_dev *dev, int num); 33 void pnv_cxl_release_hwirqs(struct pci_dev *dev, int hwirq, int num); 40 int pnv_cxl_alloc_hwirq_ranges(struct cxl_irq_ranges *irqs, 41 struct pci_dev *dev, int num); 42 void pnv_cxl_release_hwirq_ranges(struct cxl_irq_ranges *irqs,
|
| /OK3568_Linux_fs/kernel/drivers/misc/cxl/ |
| H A D | api.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 * Since we want to track memory mappings to be able to force-unmap 25 * Therefore we implement our own simple pseudo-filesystem and inode 27 * meta-data associated with it (address_space) and it is shared by 39 return init_pseudo(fc, CXL_PSEUDO_FS_MAGIC) ? 0 : -ENOMEM; in cxl_fs_init_fs_context() 52 if (ctx->kernelapi && ctx->mapping) in cxl_release_mapping() 66 if (fops->owner && !try_module_get(fops->owner)) in cxl_getfile() 67 return ERR_PTR(-ENOENT); in cxl_getfile() 76 inode = alloc_anon_inode(cxl_vfs_mount->mnt_sb); in cxl_getfile() 87 file->private_data = priv; in cxl_getfile() [all …]
|
| H A D | guest.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 24 if (afu->phb == NULL) in pci_error_handlers() 27 list_for_each_entry(afu_dev, &afu->phb->bus->devices, bus_list) { in pci_error_handlers() 28 if (!afu_dev->driver) in pci_error_handlers() 33 afu_dev->error_state = state; in pci_error_handlers() 35 if (afu_dev->driver->err_handler && in pci_error_handlers() 36 afu_dev->driver->err_handler->error_detected) in pci_error_handlers() 37 afu_dev->driver->err_handler->error_detected(afu_dev, state); in pci_error_handlers() 40 afu_dev->error_state = state; in pci_error_handlers() 42 if (afu_dev->driver->err_handler && in pci_error_handlers() [all …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/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 = kzalloc(1, GFP_KERNEL); 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 …]
|
| /OK3568_Linux_fs/u-boot/arch/arm/mach-omap2/omap5/ |
| H A D | fdt.c | 4 * SPDX-License-Identifier: GPL-2.0+ 13 #include <asm/arch-omap5/sys_proto.h> 51 /* Reserve IRQs that are used/needed by secure world */ in ft_hs_fixup_crossbar() 60 p_data = fdt_getprop(fdt, offs, "ti,irqs-skip", &len); in ft_hs_fixup_crossbar() 77 fdt_delprop(fdt, offs, "ti,irqs-skip"); in ft_hs_fixup_crossbar() 78 ret = fdt_setprop(fdt, offs, "ti,irqs-skip", in ft_hs_fixup_crossbar() 85 printf("Could not add ti,irqs-skip property to node %s: %s\n", in ft_hs_fixup_crossbar() 107 path = "/ocp/ocmcram@40300000/sram-hs"; in ft_hs_fixup_sram() 200 static int ft_fixup_clocks(void *fdt, const char **names, u32 *rates, int num) in ft_fixup_clocks() argument 212 for (i = 0; i < num; i++) { in ft_fixup_clocks() [all …]
|
| /OK3568_Linux_fs/kernel/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 18 #include <linux/dma-mapping.h> 26 #include <linux/clk/clk-conf.h> 44 * platform_get_resource - get a resource for a device 47 * @num: resource index 52 unsigned int type, unsigned int num) in platform_get_resource() argument [all …]
|
| /OK3568_Linux_fs/kernel/drivers/fpga/ |
| H A D | dfl.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 5 * Copyright (C) 2017-2018 Intel Corporation, Inc. 24 #include <linux/io-64-nonatomic-lo-hi.h> 28 #include <linux/fpga/fpga-region.h> 111 /* AFU MMIO access permission. 1 - VF, 0 - PF. */ 140 #define PORT_CAP_SUPP_INT_NUM GENMASK_ULL(35, 32) /* Interrupts num */ 168 #define PORT_UINT_CAP_INT_NUM GENMASK_ULL(11, 0) /* Interrupts num */ 172 * struct dfl_fpga_port_ops - port ops 195 * struct dfl_feature_id - dfl private feature id 204 * struct dfl_feature_driver - dfl private feature driver [all …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/u-boot/drivers/irq/ |
| H A D | virq.c | 4 * SPDX-License-Identifier: GPL-2.0+ 12 #include <asm/u-boot-arm.h> 13 #include <irq-generic.h> 14 #include "irq-internal.h" 59 if (irq >= desc->irq_base && irq <= desc->irq_end) in find_virq_desc() 73 if (parent_irq == desc->pirq) in find_virq_desc_by_pirq() 87 return -EINVAL; in virq_to_irq() 91 if (desc->chip == chip) { in virq_to_irq() 92 irq = desc->irq_base + virq; in virq_to_irq() 93 if (irq >= desc->irq_base && irq <= desc->irq_end) in virq_to_irq() [all …]
|
| /OK3568_Linux_fs/u-boot/arch/x86/lib/ |
| H A D | pirq_routing.c | 6 * SPDX-License-Identifier: GPL-2.0+ 53 void pirq_route_irqs(struct udevice *dev, struct irq_info *irq, int num) in pirq_route_irqs() argument 63 /* Set PCI IRQs */ in pirq_route_irqs() 64 for (i = 0; i < num; i++) { in pirq_route_irqs() 66 irq->bus, irq->devfn >> 3, irq->devfn & 7); in pirq_route_irqs() 69 int link = irq->irq[intx].link; in pirq_route_irqs() 70 int bitmap = irq->irq[intx].bitmap; in pirq_route_irqs() 101 /* Bus, device, slots IRQs for {A,B,C,D} */ in pirq_route_irqs() 102 pci_assign_irqs(irq->bus, irq->devfn >> 3, irq_slot); in pirq_route_irqs() 119 memcpy((void *)(uintptr_t)addr, rt, rt->size); in copy_pirq_routing_table() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/thermal/qcom/ |
| H A D | tsens.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/nvmem-consumer.h> 23 * struct tsens_irq_data - IRQ status and temperature violations 26 * @up_irq_mask: mask register for upper threshold irqs 27 * @up_irq_clear: clear register for uppper threshold irqs 30 * @low_irq_mask: mask register for lower threshold irqs 31 * @low_irq_clear: clear register for lower threshold irqs 34 * @crit_irq_mask: mask register for critical threshold irqs 35 * @crit_irq_clear: clear register for critical threshold irqs 74 * and offset values are derived from tz->tzp->slope and tz->tzp->offset [all …]
|
| /OK3568_Linux_fs/u-boot/arch/x86/include/asm/ |
| H A D | pirq_routing.h | 6 * SPDX-License-Identifier: GPL-2.0+ 17 * This tells us that in the PIRQ table, we are going to have 4 link-bitmap 33 u16 bitmap; /* Available IRQs */ 45 u16 exclusive_irqs; /* IRQs devoted exclusively to PCI usage */ 55 * get_irq_slot_count() - Get the number of entries in the irq_info table 64 return (rt->size - 32) / sizeof(struct irq_info); in get_irq_slot_count() 68 * pirq_check_irq_routed() - Check whether an IRQ is routed to 8259 PIC 84 * pirq_translate_link() - Translate a link value 86 * This function translates a platform-specific link value to a link number. 94 * @link: platform-specific link value [all …]
|