/linux/arch/mips/kernel/ |
H A D | cevt-sb1250.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 31 void __iomem *cfg; in sibyte_shutdown() local 33 cfg = IOADDR(A_SCD_TIMER_REGISTER(smp_processor_id(), R_SCD_TIMER_CFG)); in sibyte_shutdown() 36 __raw_writeq(0, cfg); in sibyte_shutdown() 43 unsigned int cpu = smp_processor_id(); in sibyte_set_periodic() local 44 void __iomem *cfg, *init; in sibyte_set_periodic() local 46 cfg = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG)); in sibyte_set_periodic() 47 init = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT)); in sibyte_set_periodic() 49 __raw_writeq(0, cfg); in sibyte_set_periodic() 50 __raw_writeq((V_SCD_TIMER_FREQ / HZ) - 1, init); in sibyte_set_periodic() [all …]
|
H A D | smp-bmips.c | 20 #include <linux/cpu.h> 40 #include <asm/cpu-features.h> 53 static void bmips_set_reset_vec(int cpu, u32 val); 59 /* initial $sp, $gp - used by arch/mips/kernel/bmips_vec.S */ 63 static void bmips43xx_send_ipi_single(int cpu, unsigned int action); 64 static void bmips5000_send_ipi_single(int cpu, unsigned int action); 72 #define CPUNUM(cpu, shift) (((cpu) + bmips_cpu_offset) << (shift)) argument 73 #define ACTION_CLR_IPI(cpu, ipi) (0x2000 | CPUNUM(cpu, 9) | ((ipi) << 8)) argument 74 #define ACTION_SET_IPI(cpu, ipi) (0x3000 | CPUNUM(cpu, 9) | ((ipi) << 8)) argument 75 #define ACTION_BOOT_THREAD(cpu) (0x08 | CPUNUM(cpu, 0)) argument [all …]
|
H A D | cpu-r3k-probe.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * Copyright (C) 1994 - 2006 Ralf Baechle 18 #include <asm/cpu.h> 19 #include <asm/cpu-features.h> 20 #include <asm/cpu-type.h> 26 #include "fpu-probe.h" 38 * Probe whether cpu has config register by trying to play with 46 unsigned long cfg = read_c0_conf(); in cpu_has_confreg() local 49 write_c0_conf(cfg ^ R30XX_CONF_AC); in cpu_has_confreg() 51 write_c0_conf(cfg); in cpu_has_confreg() [all …]
|
/linux/arch/arm/mach-omap2/ |
H A D | omap-smp.c | 1 // SPDX-License-Identifier: GPL-2.0-only 19 #include <linux/irqchip/arm-gic.h> 25 #include "omap-secure.h" 26 #include "omap-wakeupgen.h" 52 static struct omap_smp_config cfg; variable 71 return cfg.scu_base; in omap4_get_scu_base() 87 * BIT(27) - Disables streaming. All write-allocate lines allocate in in omap5_erratum_workaround_801819() 89 * BIT(25) - Disables streaming. All write-allocate lines allocate in in omap5_erratum_workaround_801819() 100 pr_debug("%s: ARM erratum workaround 801819 applied on CPU%d\n", in omap5_erratum_workaround_801819() 139 pr_debug("%s: ARM ACR setup for CVE_2017_5715 applied on CPU%d\n", in omap5_secondary_harden_predictor() [all …]
|
/linux/arch/x86/kernel/apic/ |
H A D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 26 static void irq_msi_update_msg(struct irq_data *irqd, struct irq_cfg *cfg) in irq_msi_update_msg() argument 30 __irq_msi_compose_msg(cfg, msg, false); in irq_msi_update_msg() 31 irq_data_get_irq_chip(irqd)->irq_write_msi_msg(irqd, msg); in irq_msi_update_msg() 37 struct irq_cfg old_cfg, *cfg = irqd_cfg(irqd); in msi_set_affinity() local 38 struct irq_data *parent = irqd->parent_data; in msi_set_affinity() 39 unsigned int cpu; in msi_set_affinity() local 43 cpu = cpumask_first(irq_data_get_effective_affinity_mask(irqd)); in msi_set_affinity() 44 old_cfg = *cfg; in msi_set_affinity() 47 ret = parent->chip->irq_set_affinity(parent, mask, force); in msi_set_affinity() [all …]
|
H A D | x2apic_phys.c | 1 // SPDX-License-Identifier: GPL-2.0 16 if (apic->x2apic_set_max_apicid) in x2apic_set_max_apicid() 17 apic->max_apic_id = apicid; in x2apic_set_max_apicid() 44 static void x2apic_send_IPI(int cpu, int vector) in x2apic_send_IPI() argument 46 u32 dest = per_cpu(x86_cpu_to_apicid, cpu); in x2apic_send_IPI() 88 unsigned long cfg = __prepare_ICR(which, vector, 0); in __x2apic_send_IPI_shorthand() local 92 native_x2apic_icr_write(cfg, 0); in __x2apic_send_IPI_shorthand() 112 unsigned long cfg = __prepare_ICR(0, vector, dest); in __x2apic_send_IPI_dest() local 113 native_x2apic_icr_write(cfg, apicid); in __x2apic_send_IPI_dest()
|
/linux/arch/mips/loongson64/ |
H A D | hpet.c | 1 // SPDX-License-Identifier: GPL-2.0 35 unsigned int cfg = smbus_read(offset); in smbus_enable() local 37 cfg |= bit; in smbus_enable() 38 smbus_write(offset, cfg); in smbus_enable() 53 unsigned int cfg = hpet_read(HPET_CFG); in hpet_start_counter() local 55 cfg |= HPET_CFG_ENABLE; in hpet_start_counter() 56 hpet_write(HPET_CFG, cfg); in hpet_start_counter() 61 unsigned int cfg = hpet_read(HPET_CFG); in hpet_stop_counter() local 63 cfg &= ~HPET_CFG_ENABLE; in hpet_stop_counter() 64 hpet_write(HPET_CFG, cfg); in hpet_stop_counter() [all …]
|
/linux/drivers/tty/ |
H A D | mips_ejtag_fdc.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2007-2015 Imagination Technologies Ltd 87 * struct mips_ejtag_fdc_tty_port - Wrapper struct for FDC tty_port. 117 * struct mips_ejtag_fdc_tty - Driver data for FDC as a whole. 120 * @cpu: CPU number for this FDC. 123 * @ports: Per-channel data. 144 unsigned int cpu; member 174 __raw_writel(data, priv->reg + offs); in mips_ejtag_fdc_write() 180 return __raw_readl(priv->reg + offs); in mips_ejtag_fdc_read() 186 * struct fdc_word - FDC word encoding some number of bytes of data. [all …]
|
/linux/rust/kernel/ |
H A D | cpumask.rs | 1 // SPDX-License-Identifier: GPL-2.0 3 //! CPU Mask abstractions. 9 cpu::CpuId, 14 #[cfg(CONFIG_CPUMASK_OFFSTACK)] 17 #[cfg(not(CONFIG_CPUMASK_OFFSTACK))] 22 /// A CPU Mask. 39 /// use kernel::cpu::CpuId; 61 pub unsafe fn as_mut_ref<'a>(ptr: *mut bindings::cpumask) -> &'a mut Self { in as_mut_ref() 75 pub unsafe fn as_ref<'a>(ptr: *const bindings::cpumask) -> &'a Self { in as_ref() 84 pub fn as_raw(&self) -> *mut bindings::cpumask { in as_raw() [all …]
|
/linux/arch/arm/mach-s3c/ |
H A D | init.c | 1 // SPDX-License-Identifier: GPL-2.0 7 // S3C series CPU initialisation 26 #include "cpu.h" 29 static struct cpu_table *cpu; variable 35 for (; count != 0; count--, tab++) { in s3c_lookup_cpu() 36 if ((idcode & tab->idmask) == (tab->idcode & tab->idmask)) in s3c_lookup_cpu() 46 cpu = s3c_lookup_cpu(idcode, cputab, cputab_size); in s3c_init_cpu() 48 if (cpu == NULL) { in s3c_init_cpu() 49 printk(KERN_ERR "Unknown CPU type 0x%08lx\n", idcode); in s3c_init_cpu() 50 panic("Unknown S3C24XX CPU"); in s3c_init_cpu() [all …]
|
H A D | cpu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 * Copyright (c) 2004-2005 Simtec Electronics 9 * Header file for Samsung CPU support 12 /* todo - fix when rmk changes iodescs to use `void __iomem *` */ 57 /* per-cpu initialisation function table. */ 63 void (*init_uarts)(struct s3c2410_uartcfg *cfg, int no); 74 extern void s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no); 77 struct s3c2410_uartcfg *cfg, int no);
|
/linux/tools/testing/selftests/bpf/map_tests/ |
H A D | task_storage_map.c | 1 // SPDX-License-Identifier: GPL-2.0 34 while (!ctx->start) in lookup_fn() 37 while (!ctx->stop && i++ < ctx->loop) in lookup_fn() 38 bpf_map_lookup_elem(ctx->map_fd, &ctx->pid_fd, &value); in lookup_fn() 46 ctx->stop = true; in abort_lookup() 47 ctx->start = true; in abort_lookup() 55 unsigned int i, nr = 256, loop = 8192, cpu = 0; in test_task_storage_map_stress_lookup() local 60 const char *cfg; in test_task_storage_map_stress_lookup() local 63 cfg = getenv("TASK_STORAGE_MAP_NR_THREAD"); in test_task_storage_map_stress_lookup() 64 if (cfg) { in test_task_storage_map_stress_lookup() [all …]
|
/linux/drivers/irqchip/ |
H A D | irq-ls-scfg-msi.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Freescale SCFG MSI(-X) support 53 struct ls_scfg_msi_cfg *cfg; member 77 if (p && strncmp(p, "no-affinity", 11) == 0) in early_parse_ls_scfg_msi() 90 msg->data = data->hwirq; in ls_scfg_msi_compose_msg() 96 msg->data |= cpumask_first(mask); in ls_scfg_msi_compose_msg() 100 msi_data->msiir_addr); in ls_scfg_msi_compose_msg() 107 u32 cpu; in ls_scfg_msi_set_affinity() local 110 return -EINVAL; in ls_scfg_msi_set_affinity() 113 cpu = cpumask_any_and(mask, cpu_online_mask); in ls_scfg_msi_set_affinity() [all …]
|
/linux/arch/riscv/kvm/ |
H A D | vcpu.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/entry-kvm.h> 57 struct kvm_vcpu_csr *csr = &vcpu->arch.guest_csr; in kvm_riscv_vcpu_context_reset() 58 struct kvm_cpu_context *cntx = &vcpu->arch.guest_context; in kvm_riscv_vcpu_context_reset() 59 void *vector_datap = cntx->vector.datap; in kvm_riscv_vcpu_context_reset() 63 memset(&vcpu->arch.smstateen_csr, 0, sizeof(vcpu->arch.smstateen_csr)); in kvm_riscv_vcpu_context_reset() 66 cntx->vector.datap = vector_datap; in kvm_riscv_vcpu_context_reset() 72 cntx->sstatus = SR_SPP | SR_SPIE; in kvm_riscv_vcpu_context_reset() 74 cntx->hstatus |= HSTATUS_VTW; in kvm_riscv_vcpu_context_reset() 75 cntx->hstatus |= HSTATUS_SPVP; in kvm_riscv_vcpu_context_reset() [all …]
|
/linux/arch/x86/platform/uv/ |
H A D | uv_irq.c | 27 static void uv_program_mmr(struct irq_cfg *cfg, struct uv_irq_2_mmr_pnode *info) in uv_program_mmr() argument 37 entry->vector = cfg->vector; in uv_program_mmr() 38 entry->delivery_mode = APIC_DELIVERY_MODE_FIXED; in uv_program_mmr() 39 entry->dest_mode = apic->dest_mode_logical; in uv_program_mmr() 40 entry->polarity = 0; in uv_program_mmr() 41 entry->trigger = 0; in uv_program_mmr() 42 entry->mask = 0; in uv_program_mmr() 43 entry->dest = cfg->dest_apicid; in uv_program_mmr() 45 uv_write_global_mmr64(info->pnode, info->offset, mmr_value); in uv_program_mmr() 54 struct irq_data *parent = data->parent_data; in uv_set_irq_affinity() [all …]
|
/linux/fs/resctrl/ |
H A D | ctrlmondata.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * - Cache Allocation code. 18 #include <linux/cpu.h> 49 if (!r->membw.delay_linear && r->membw.arch_needs_linear) { in bw_validate() 50 rdt_last_cmd_puts("No support for non-linear MB domains\n"); in bw_validate() 66 if (bw < r->membw.min_bw || bw > r->membw.max_bw) { in bw_validate() 68 bw, r->membw.min_bw, r->membw.max_bw); in bw_validate() 72 *data = roundup(bw, (unsigned long)r->membw.bw_gran); in bw_validate() 79 struct resctrl_staged_config *cfg; in parse_bw() local 80 u32 closid = data->rdtgrp->closid; in parse_bw() [all …]
|
/linux/drivers/perf/ |
H A D | cxl_pmu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 #include <linux/io-64-nonatomic-lo-hi.h> 66 /* CXL rev 3.0 Table 13-5 Events under CXL Vendor ID */ 120 * - Fixed function counters refer to an Event Capabilities register. 127 void __iomem *base = info->base; in cxl_pmu_parse_caps() 137 return -ENODEV; in cxl_pmu_parse_caps() 140 info->num_counters = FIELD_GET(CXL_PMU_CAP_NUM_COUNTERS_MSK, val) + 1; in cxl_pmu_parse_caps() 141 info->counter_width = FIELD_GET(CXL_PMU_CAP_COUNTER_WIDTH_MSK, val); in cxl_pmu_parse_caps() 142 info->num_event_capabilities = FIELD_GET(CXL_PMU_CAP_NUM_EVN_CAP_REG_SUP_MSK, val) + 1; in cxl_pmu_parse_caps() 144 info->filter_hdm = FIELD_GET(CXL_PMU_CAP_FILTERS_SUP_MSK, val) & CXL_PMU_FILTER_HDM; in cxl_pmu_parse_caps() [all …]
|
/linux/arch/x86/pci/ |
H A D | mmconfig_32.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * mmconfig.c - Low-level direct PCI config space access via MMCONFIG 29 struct pci_mmcfg_region *cfg = pci_mmconfig_lookup(seg, bus); in get_base_addr() local 31 if (cfg) in get_base_addr() 32 return cfg->address; in get_base_addr() 42 int cpu = smp_processor_id(); in pci_exp_set_dev_base() local 44 cpu != mmcfg_last_accessed_cpu) { in pci_exp_set_dev_base() 46 mmcfg_last_accessed_cpu = cpu; in pci_exp_set_dev_base() 58 err: *value = -1; in pci_mmcfg_read() 59 return -EINVAL; in pci_mmcfg_read() [all …]
|
/linux/drivers/media/pci/intel/ipu6/ |
H A D | ipu6-fw-com.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2013--2024 Intel Corporation 7 #include <linux/dma-mapping.h> 14 #include "ipu6-bus.h" 15 #include "ipu6-dma.h" 16 #include "ipu6-fw-com.h" 23 * system RAM and are mapped to ISP MMU so that both CPU and ISP can 25 * can poll those with very low latency and cost. CPU access to indexes is 27 * interrupt triggered message handling. CPU doesn't need to poll indexes. 32 /* Shared structure between driver and FW - do not modify */ [all …]
|
/linux/drivers/spi/ |
H A D | spi-pxa2xx-dma.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 #include <linux/dma-mapping.h> 21 #include "spi-pxa2xx.h" 28 struct spi_message *msg = drv_data->controller->cur_msg; in pxa2xx_spi_dma_transfer_complete() 31 * It is possible that one CPU is handling ROR interrupt and other in pxa2xx_spi_dma_transfer_complete() 36 if (atomic_dec_and_test(&drv_data->dma_running)) { in pxa2xx_spi_dma_transfer_complete() 38 * If the other CPU is still handling the ROR interrupt we in pxa2xx_spi_dma_transfer_complete() 39 * might not know about the error yet. So we re-check the in pxa2xx_spi_dma_transfer_complete() 43 error = read_SSSR_bits(drv_data, drv_data->mask_sr) & SSSR_ROR; in pxa2xx_spi_dma_transfer_complete() 46 clear_SSCR1_bits(drv_data, drv_data->dma_cr1); in pxa2xx_spi_dma_transfer_complete() [all …]
|
/linux/arch/sparc/kernel/ |
H A D | leon_smp.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* leon_smp.c: Sparc-Leon SMP support. 27 #include <linux/cpu.h> 81 * go-ahead by setting the smp_commenced_mask and will wait without in leon_cpu_pre_online() 87 local_ops->cache_all(); in leon_cpu_pre_online() 88 local_ops->tlb_all(); in leon_cpu_pre_online() 96 current->active_mm = &init_mm; in leon_cpu_pre_online() 110 unsigned long cfg = sparc_leon3_get_dcachecfg(); in leon_configure_cache_smp() local 113 if (ASI_LEON3_SYSCTRL_CFG_SSIZE(cfg) > 4) { in leon_configure_cache_smp() 114 …printk(KERN_INFO "Note: SMP with snooping only works on 4k cache, found %dk(0x%x) on cpu %d, disab… in leon_configure_cache_smp() [all …]
|
/linux/drivers/macintosh/ |
H A D | windfarm_lm75_sensor.c | 1 // SPDX-License-Identifier: GPL-2.0-only 48 if (lm->i2c == NULL) in wf_lm75_get() 49 return -ENODEV; in wf_lm75_get() 52 if (!lm->inited) { in wf_lm75_get() 53 u8 cfg_new, cfg = (u8)i2c_smbus_read_byte_data(lm->i2c, 1); in wf_lm75_get() local 55 DBG("wf_lm75: Initializing %s, cfg was: %02x\n", in wf_lm75_get() 56 sr->name, cfg); in wf_lm75_get() 61 cfg_new = cfg & ~0x01; in wf_lm75_get() 62 i2c_smbus_write_byte_data(lm->i2c, 1, cfg_new); in wf_lm75_get() 63 lm->inited = 1; in wf_lm75_get() [all …]
|
/linux/drivers/clk/ |
H A D | clk-k210.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> 6 #define pr_fmt(fmt) "k210-clk: " fmt 15 #include <linux/clk-provider.h> 18 #include <soc/canaan/k210-sysctl.h> 20 #include <dt-bindings/clock/k210-clk.h> 66 .name = "cpu", 301 * The first 2 SRAM banks depend on ACLK/CPU clock which is by default PLL0 322 * struct k210_sysclk - sysclk driver data 356 pll->id = pllid; in k210_init_pll() [all …]
|
/linux/drivers/edac/ |
H A D | skx_common.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 60 * Table 15-10 "IA32_MCi_Status [15:0] Compound Error Code Encoding" 72 * Errors from either the memory of the 1-level memory system or the 73 * 2nd level memory (the slow "far" memory) of the 2-level memory system. 78 * of the 2-level memory system. 82 /* Max RRL register sets per {,sub-,pseudo-}channel. */ 101 /* RRL registers per {,sub-,pseudo-}channel. */ 124 * Each cpu socket contains some pci devices that provide global 134 struct pci_dev *uracu; /* for i10nm CPU */ 149 struct pci_dev *mdev; /* for i10nm CPU */ [all …]
|
/linux/arch/x86/hyperv/ |
H A D | irqdomain.c | 1 // SPDX-License-Identifier: GPL-2.0 16 int cpu, int vector, struct hv_interrupt_entry *entry) in hv_map_interrupt() argument 30 intr_desc = &input->interrupt_descriptor; in hv_map_interrupt() 32 input->partition_id = hv_current_partition_id; in hv_map_interrupt() 33 input->device_id = device_id.as_uint64; in hv_map_interrupt() 34 intr_desc->interrupt_type = HV_X64_INTERRUPT_TYPE_FIXED; in hv_map_interrupt() 35 intr_desc->vector_count = 1; in hv_map_interrupt() 36 intr_desc->target.vector = vector; in hv_map_interrupt() 39 intr_desc->trigger_mode = HV_INTERRUPT_TRIGGER_MODE_LEVEL; in hv_map_interrupt() 41 intr_desc->trigger_mode = HV_INTERRUPT_TRIGGER_MODE_EDGE; in hv_map_interrupt() [all …]
|