/linux/drivers/net/wireless/ath/wil6210/ |
H A D | pmc.c | 21 static int wil_is_pmc_allocated(struct pmc_ctx *pmc) in wil_is_pmc_allocated() argument 23 return !!pmc->pring_va; in wil_is_pmc_allocated() 28 memset(&wil->pmc, 0, sizeof(struct pmc_ctx)); in wil_pmc_init() 29 mutex_init(&wil->pmc.lock); in wil_pmc_init() 44 struct pmc_ctx *pmc = &wil->pmc; in wil_pmc_alloc() local 50 mutex_lock(&pmc->lock); in wil_pmc_alloc() 52 if (wil_is_pmc_allocated(pmc)) { in wil_pmc_alloc() 81 pmc->num_descriptors = num_descriptors; in wil_pmc_alloc() 82 pmc->descriptor_size = descriptor_size; in wil_pmc_alloc() 88 pmc->descriptors = kcalloc(num_descriptors, in wil_pmc_alloc() [all …]
|
/linux/tools/testing/selftests/powerpc/pmu/sampling_tests/ |
H A D | misc.h | 61 static inline int get_mmcr0_fc56(u64 mmcr0, int pmc) in get_mmcr0_fc56() argument 66 static inline int get_mmcr0_pmccext(u64 mmcr0, int pmc) in get_mmcr0_pmccext() argument 71 static inline int get_mmcr0_pmao(u64 mmcr0, int pmc) in get_mmcr0_pmao() argument 76 static inline int get_mmcr0_cc56run(u64 mmcr0, int pmc) in get_mmcr0_cc56run() argument 81 static inline int get_mmcr0_pmcjce(u64 mmcr0, int pmc) in get_mmcr0_pmcjce() argument 86 static inline int get_mmcr0_pmc1ce(u64 mmcr0, int pmc) in get_mmcr0_pmc1ce() argument 91 static inline int get_mmcr0_pmae(u64 mmcr0, int pmc) in get_mmcr0_pmae() argument 96 static inline int get_mmcr1_pmcxsel(u64 mmcr1, int pmc) in get_mmcr1_pmcxsel() argument 98 return ((mmcr1 >> ((24 - (((pmc) - 1) * 8))) & 0xff)); in get_mmcr1_pmcxsel() 101 static inline int get_mmcr1_unit(u64 mmcr1, int pmc) in get_mmcr1_unit() argument [all …]
|
/linux/drivers/soc/tegra/ |
H A D | pmc.c | 269 struct tegra_pmc *pmc; member 357 void (*init)(struct tegra_pmc *pmc); 358 void (*setup_irq_polarity)(struct tegra_pmc *pmc, 361 void (*set_wake_filters)(struct tegra_pmc *pmc); 364 int (*powergate_set)(struct tegra_pmc *pmc, unsigned int id, 473 static struct tegra_pmc *pmc = &(struct tegra_pmc) { variable 484 static u32 tegra_pmc_readl(struct tegra_pmc *pmc, unsigned long offset) in tegra_pmc_readl() argument 488 if (pmc->tz_only) { in tegra_pmc_readl() 492 if (pmc->dev) in tegra_pmc_readl() 493 dev_warn(pmc->dev, "%s(): SMC failed: %lu\n", in tegra_pmc_readl() [all …]
|
/linux/drivers/platform/x86/intel/pmc/ |
H A D | core.c | 59 static inline u32 pmc_core_reg_read(struct pmc *pmc, int reg_offset) in pmc_core_reg_read() argument 61 return readl(pmc->regbase + reg_offset); in pmc_core_reg_read() 64 static inline void pmc_core_reg_write(struct pmc *pmc, int reg_offset, in pmc_core_reg_write() argument 67 writel(val, pmc->regbase + reg_offset); in pmc_core_reg_write() 70 static inline u64 pmc_core_adjust_slp_s0_step(struct pmc *pmc, u32 value) in pmc_core_adjust_slp_s0_step() argument 78 const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2; in pmc_core_adjust_slp_s0_step() 80 if (pmc->map == &adl_reg_map) in pmc_core_adjust_slp_s0_step() 83 return (u64)value * pmc->map->slp_s0_res_counter_step; in pmc_core_adjust_slp_s0_step() 88 struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN]; in set_etr3() local 89 const struct pmc_reg_map *map = pmc->map; in set_etr3() [all …]
|
H A D | core_ssram.c | 43 static int pmc_core_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc) in pmc_core_get_lpm_req() argument 52 lpm_indices = pmc->map->lpm_reg_index; in pmc_core_get_lpm_req() 53 num_maps = pmc->map->lpm_num_maps; in pmc_core_get_lpm_req() 56 guid = pmc_core_find_guid(pmcdev->regmap_list, pmc->map); in pmc_core_get_lpm_req() 67 pmc->lpm_req_regs = devm_kzalloc(&pmcdev->pdev->dev, in pmc_core_get_lpm_req() 70 if (!pmc->lpm_req_regs) { in pmc_core_get_lpm_req() 120 u32 *req_offset = pmc->lpm_req_regs + (mode * num_maps); in pmc_core_get_lpm_req() 130 devm_kfree(&pmcdev->pdev->dev, pmc->lpm_req_regs); in pmc_core_get_lpm_req() 224 struct pmc *pmc = pmcdev->pmcs[pmc_index]; in pmc_core_pmc_add() local 230 if (!pmc) { in pmc_core_pmc_add() [all …]
|
/linux/arch/riscv/kvm/ |
H A D | vcpu_pmu.c | 37 static u64 kvm_pmu_get_sample_period(struct kvm_pmc *pmc) in kvm_pmu_get_sample_period() argument 39 u64 counter_val_mask = GENMASK(pmc->cinfo.width, 0); in kvm_pmu_get_sample_period() 42 if (!pmc->counter_val) in kvm_pmu_get_sample_period() 45 sample_period = (-pmc->counter_val) & counter_val_mask; in kvm_pmu_get_sample_period() 78 static void kvm_pmu_release_perf_event(struct kvm_pmc *pmc) in kvm_pmu_release_perf_event() argument 80 if (pmc->perf_event) { in kvm_pmu_release_perf_event() 81 perf_event_disable(pmc->perf_event); in kvm_pmu_release_perf_event() 82 perf_event_release_kernel(pmc->perf_event); in kvm_pmu_release_perf_event() 83 pmc->perf_event = NULL; in kvm_pmu_release_perf_event() 204 struct kvm_pmc *pmc; in pmu_fw_ctr_read_hi() local [all …]
|
/linux/arch/powerpc/perf/ |
H A D | ppc970-pmu.c | 147 int pmc, psel, unit, byte, bit; in p970_marked_instr_event() local 150 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in p970_marked_instr_event() 152 if (pmc) { in p970_marked_instr_event() 153 if (direct_marked_event[pmc - 1] & (1 << psel)) in p970_marked_instr_event() 156 bit = (pmc <= 4)? pmc - 1: 8 - pmc; in p970_marked_instr_event() 195 int pmc, byte, unit, sh, spcsel; in p970_get_constraint() local 199 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in p970_get_constraint() 200 if (pmc) { in p970_get_constraint() 201 if (pmc > 8) in p970_get_constraint() 203 sh = (pmc - 1) * 2; in p970_get_constraint() [all …]
|
H A D | power7-pmu.c | 86 int pmc, sh, unit; in power7_get_constraint() local 89 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power7_get_constraint() 90 if (pmc) { in power7_get_constraint() 91 if (pmc > 6) in power7_get_constraint() 93 sh = (pmc - 1) * 2; in power7_get_constraint() 96 if (pmc >= 5 && !(event == 0x500fa || event == 0x600f4)) in power7_get_constraint() 99 if (pmc < 5) { in power7_get_constraint() 146 int pmc, psel; in find_alternative_decode() local 149 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in find_alternative_decode() 151 if ((pmc == 2 || pmc == 4) && (psel & ~7) == 0x40) in find_alternative_decode() [all …]
|
H A D | power6-pmu.c | 139 int pmc, psel, ptype; in power6_marked_instr_event() local 143 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power6_marked_instr_event() 145 if (pmc >= 5) in power6_marked_instr_event() 151 if (pmc == 0 || !(ptype & (1 << (pmc - 1)))) in power6_marked_instr_event() 159 bit = ptype ^ (pmc - 1); in power6_marked_instr_event() 182 unsigned int pmc, ev, b, u, s, psel; in p6_compute_mmcr() local 189 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK; in p6_compute_mmcr() 190 if (pmc) { in p6_compute_mmcr() 191 if (pmc_inuse & (1 << (pmc - 1))) in p6_compute_mmcr() 193 pmc_inuse |= 1 << (pmc - 1); in p6_compute_mmcr() [all …]
|
H A D | power5-pmu.c | 141 int pmc, byte, unit, sh; in power5_get_constraint() local 146 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power5_get_constraint() 147 if (pmc) { in power5_get_constraint() 148 if (pmc > 6) in power5_get_constraint() 150 sh = (pmc - 1) * 2; in power5_get_constraint() 153 if (pmc <= 4) in power5_get_constraint() 154 grp = (pmc - 1) >> 1; in power5_get_constraint() 186 if (!pmc) in power5_get_constraint() 201 if (pmc < 5) { in power5_get_constraint() 253 int pmc, altpmc, pp, j; in find_alternative_bdecode() local [all …]
|
H A D | power5+-pmu.c | 137 int pmc, byte, unit, sh; in power5p_get_constraint() local 141 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power5p_get_constraint() 142 if (pmc) { in power5p_get_constraint() 143 if (pmc > 6) in power5p_get_constraint() 145 sh = (pmc - 1) * 2; in power5p_get_constraint() 148 if (pmc >= 5 && !(event == 0x500009 || event == 0x600005)) in power5p_get_constraint() 179 if (pmc < 5) { in power5p_get_constraint() 191 int pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power5p_limited_pmc_event() local 193 return pmc == 5 || pmc == 6; in power5p_limited_pmc_event() 245 int pmc, altpmc, pp, j; in find_alternative_bdecode() local [all …]
|
H A D | isa207-common.h | 200 #define CNST_PMC_SHIFT(pmc) ((pmc - 1) * 2) argument 201 #define CNST_PMC_VAL(pmc) (1 << CNST_PMC_SHIFT(pmc)) argument 202 #define CNST_PMC_MASK(pmc) (2 << CNST_PMC_SHIFT(pmc)) argument 210 #define MMCR1_UNIT_SHIFT(pmc) (60 - (4 * ((pmc) - 1))) argument 211 #define MMCR1_COMBINE_SHIFT(pmc) (35 - ((pmc) - 1)) argument 212 #define MMCR1_PMCSEL_SHIFT(pmc) (24 - (((pmc) - 1)) * 8) argument 218 #define p9_MMCR1_COMBINE_SHIFT(pmc) (38 - ((pmc - 1) * 2)) argument 250 #define MMCR2_FCS(pmc) (1ull << (63 - (((pmc) - 1) * 9))) argument 251 #define MMCR2_FCP(pmc) (1ull << (62 - (((pmc) - 1) * 9))) argument 252 #define MMCR2_FCWAIT(pmc) (1ull << (58 - (((pmc) - 1) * 9))) argument [all …]
|
H A D | mpc7450-pmu.c | 39 int pmc; in mpc7450_classify_event() local 41 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in mpc7450_classify_event() 42 if (pmc) { in mpc7450_classify_event() 43 if (pmc > N_COUNTER) in mpc7450_classify_event() 79 int pmc, sel; in mpc7450_threshold_use() local 81 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in mpc7450_threshold_use() 83 switch (pmc) { in mpc7450_threshold_use() 153 int pmc, class; in mpc7450_get_constraint() local 161 pmc = ((unsigned int)event >> PM_PMC_SH) & PM_PMC_MSK; in mpc7450_get_constraint() 162 mask = pmcbits[pmc - 1][0]; in mpc7450_get_constraint() [all …]
|
H A D | isa207-common.c | 16 PMU_FORMAT_ATTR(pmc, "config:16-19"); 172 static unsigned long combine_shift(unsigned long pmc) in combine_shift() argument 175 return p9_MMCR1_COMBINE_SHIFT(pmc); in combine_shift() 177 return MMCR1_COMBINE_SHIFT(pmc); in combine_shift() 403 unsigned int unit, pmc, cache, ebb; in isa207_get_constraint() local 411 pmc = (event >> EVENT_PMC_SHIFT) & EVENT_PMC_MASK; in isa207_get_constraint() 421 if (pmc) { in isa207_get_constraint() 424 if (pmc > 6) in isa207_get_constraint() 430 if (pmc >= 5 && base_event != 0x500fa && in isa207_get_constraint() 434 mask |= CNST_PMC_MASK(pmc); in isa207_get_constraint() [all …]
|
/linux/arch/arm64/kvm/ |
H A D | pmu-emul.c | 25 static void kvm_pmu_create_perf_event(struct kvm_pmc *pmc); 26 static void kvm_pmu_release_perf_event(struct kvm_pmc *pmc); 27 static bool kvm_pmu_counter_is_enabled(struct kvm_pmc *pmc); 29 static struct kvm_vcpu *kvm_pmc_to_vcpu(const struct kvm_pmc *pmc) in kvm_pmc_to_vcpu() argument 31 return container_of(pmc, struct kvm_vcpu, arch.pmu.pmc[pmc->idx]); in kvm_pmc_to_vcpu() 36 return &vcpu->arch.pmu.pmc[cnt_idx]; in kvm_vcpu_idx_to_pmc() 83 static bool kvm_pmc_is_64bit(struct kvm_pmc *pmc) in kvm_pmc_is_64bit() argument 85 struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc); in kvm_pmc_is_64bit() 87 return (pmc->idx == ARMV8_PMU_CYCLE_IDX || in kvm_pmc_is_64bit() 91 static bool kvm_pmc_has_64bit_overflow(struct kvm_pmc *pmc) in kvm_pmc_has_64bit_overflow() argument [all …]
|
/linux/drivers/mfd/ |
H A D | intel_pmc_bxt.c | 82 int intel_pmc_gcr_read64(struct intel_pmc_dev *pmc, u32 offset, u64 *data) in intel_pmc_gcr_read64() argument 87 spin_lock(&pmc->gcr_lock); in intel_pmc_gcr_read64() 88 *data = readq(pmc->gcr_mem_base + offset); in intel_pmc_gcr_read64() 89 spin_unlock(&pmc->gcr_lock); in intel_pmc_gcr_read64() 107 int intel_pmc_gcr_update(struct intel_pmc_dev *pmc, u32 offset, u32 mask, u32 val) in intel_pmc_gcr_update() argument 114 spin_lock(&pmc->gcr_lock); in intel_pmc_gcr_update() 115 new_val = readl(pmc->gcr_mem_base + offset); in intel_pmc_gcr_update() 118 writel(new_val, pmc->gcr_mem_base + offset); in intel_pmc_gcr_update() 120 new_val = readl(pmc->gcr_mem_base + offset); in intel_pmc_gcr_update() 121 spin_unlock(&pmc->gcr_lock); in intel_pmc_gcr_update() [all …]
|
/linux/arch/x86/kvm/ |
H A D | pmu.h | 11 #define pmc_to_pmu(pmc) (&(pmc)->vcpu->arch.pmu) argument 92 #define kvm_for_each_pmc(pmu, pmc, i, bitmap) \ argument 94 if (!(pmc = kvm_pmc_idx_to_pmc(pmu, i))) \ 98 static inline u64 pmc_bitmask(struct kvm_pmc *pmc) in pmc_bitmask() argument 100 struct kvm_pmu *pmu = pmc_to_pmu(pmc); in pmc_bitmask() 102 return pmu->counter_bitmask[pmc->type]; in pmc_bitmask() 105 static inline u64 pmc_read_counter(struct kvm_pmc *pmc) in pmc_read_counter() argument 109 counter = pmc->counter + pmc->emulated_counter; in pmc_read_counter() 111 if (pmc->perf_event && !pmc->is_paused) in pmc_read_counter() 112 counter += perf_event_read_value(pmc->perf_event, in pmc_read_counter() [all …]
|
/linux/net/ipv6/ |
H A D | mcast.c | 82 static int sf_setstate(struct ifmcaddr6 *pmc); 83 static void sf_markstate(struct ifmcaddr6 *pmc); 84 static void ip6_mc_clear_src(struct ifmcaddr6 *pmc); 120 #define for_each_pmc_socklock(np, sk, pmc) \ argument 121 for (pmc = sock_dereference((np)->ipv6_mc_list, sk); \ 122 pmc; \ 123 pmc = sock_dereference(pmc->next, sk)) 125 #define for_each_pmc_rcu(np, pmc) \ argument 126 for (pmc = rcu_dereference((np)->ipv6_mc_list); \ 127 pmc; \ [all …]
|
/linux/drivers/platform/x86/ |
H A D | pmc_atom.c | 206 static inline u32 pmc_reg_read(struct pmc_dev *pmc, int reg_offset) in pmc_reg_read() argument 208 return readl(pmc->regmap + reg_offset); in pmc_reg_read() 211 static inline void pmc_reg_write(struct pmc_dev *pmc, int reg_offset, u32 val) in pmc_reg_write() argument 213 writel(val, pmc->regmap + reg_offset); in pmc_reg_write() 218 struct pmc_dev *pmc = &pmc_device; in pmc_atom_read() local 220 if (!pmc->init) in pmc_atom_read() 223 *value = pmc_reg_read(pmc, offset); in pmc_atom_read() 244 static void pmc_hw_reg_setup(struct pmc_dev *pmc) in pmc_hw_reg_setup() argument 254 pmc_reg_write(pmc, PMC_S0IX_WAKE_EN, (u32)PMC_WAKE_EN_SETTING); in pmc_hw_reg_setup() 275 struct pmc_dev *pmc = s->private; in pmc_dev_state_show() local [all …]
|
/linux/arch/arm/mach-at91/ |
H A D | pm_suspend.S | 22 pmc .req r0 label 42 2: ldr r8, [pmc, #AT91_PMC_SR] 54 1: ldr r7, [pmc, #AT91_PMC_SR] 65 1: ldr r7, [pmc, #AT91_PMC_SR] 79 str r7, [pmc, #AT91_PMC_SCDR] 476 ldr pmc, .pmc_base 485 ldr tmp1, [pmc, tmp3] 488 str tmp1, [pmc, tmp3] 496 ldr tmp1, [pmc, #AT91_CKGR_MOR] 499 str tmp1, [pmc, #AT91_CKGR_MOR] [all …]
|
/linux/arch/arm/boot/dts/microchip/ |
H A D | sama7g5.dtsi | 37 clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>; 192 clocks = <&pmc PMC_TYPE_CORE PMC_MCK1>; 210 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>; 241 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>; 244 pmc: clock-controller@e0018000 { label 245 compatible = "microchip,sama7g5-pmc", "syscon"; 315 …clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 9… 323 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>; 343 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>; 358 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>; [all …]
|
H A D | at91sam9260.dtsi | 118 pmc: clock-controller@fffffc00 { label 119 compatible = "atmel,at91sam9260-pmc", "syscon"; 130 clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>; 136 clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>; 143 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>; 154 …clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 1… 166 …clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 2… 507 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>; 518 clocks = <&pmc PMC_TYPE_PERIPHERAL 3>; 529 clocks = <&pmc PMC_TYPE_PERIPHERAL 4>; [all …]
|
H A D | at91sam9g45.dtsi | 111 clocks = <&pmc PMC_TYPE_SYSTEM 2>; 118 clocks = <&pmc PMC_TYPE_SYSTEM 2>; 132 pmc: clock-controller@fffffc00 { label 133 compatible = "atmel,at91sam9g45-pmc", "syscon"; 151 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>; 167 …clocks = <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 1… 177 …clocks = <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 1… 186 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>; 629 clocks = <&pmc PMC_TYPE_PERIPHERAL 2>; 640 clocks = <&pmc PMC_TYPE_PERIPHERAL 3>; [all …]
|
/linux/Documentation/devicetree/bindings/powerpc/fsl/ |
H A D | pmc.txt | 4 - compatible: "fsl,<chip>-pmc". 6 "fsl,mpc8349-pmc" should be listed for any chip whose PMC is 7 compatible. "fsl,mpc8313-pmc" should also be listed for any chip 10 "fsl,mpc8548-pmc" should be listed for any chip whose PMC is 11 compatible. "fsl,mpc8536-pmc" should also be listed for any chip 14 "fsl,mpc8641d-pmc" should be listed for any chip whose PMC is 15 compatible; all statements below that apply to "fsl,mpc8548-pmc" also 16 apply to "fsl,mpc8641d-pmc". 22 - reg: For devices compatible with "fsl,mpc8349-pmc", the first resource 26 For devices compatible with "fsl,mpc8548-pmc", the first resource [all …]
|
/linux/tools/testing/selftests/powerpc/pmu/ebb/ |
H A D | ebb.h | 14 #define PMC_INDEX(pmc) ((pmc)-1) argument 41 static inline void ebb_enable_pmc_counting(int pmc) in ebb_enable_pmc_counting() argument 43 ebb_state.pmc_enable[PMC_INDEX(pmc)] = true; in ebb_enable_pmc_counting() 46 bool ebb_check_count(int pmc, u64 sample_period, int fudge); 58 int count_pmc(int pmc, uint32_t sample_period); 63 void write_pmc(int pmc, u64 value); 64 u64 read_pmc(int pmc);
|