Home
last modified time | relevance | path

Searched full:pmc (Results 1 – 25 of 437) sorted by relevance

12345678910>>...18

/linux/drivers/net/wireless/ath/wil6210/
H A Dpmc.c14 #include "pmc.h"
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()
34 * Initialize the descriptors as required by pmc dma.
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()
54 wil_err(wil, "ERROR pmc is already allocated\n"); in wil_pmc_alloc()
[all …]
/linux/Documentation/devicetree/bindings/powerpc/fsl/
H A Dpmc.yaml4 $id: http://devicetree.org/schemas/powerpc/fsl/pmc.yaml#
17 example `sleep = <&pmc 0x00000030>`. Any cells after the &pmc phandle are
20 For "fsl,mpc8349-pmc", sleep specifiers consist of one cell. For each bit that
25 For "fsl,mpc8536-pmc", sleep specifiers consist of three cells, the third of
27 resume. The first two cells are as described for fsl,mpc8548-pmc. This
31 For "fsl,mpc8548-pmc" or "fsl,mpc8641d-pmc", Sleep specifiers consist of one
43 - const: fsl,mpc8315-pmc
44 - const: fsl,mpc8313-pmc
45 - const: fsl,mpc8349-pmc
49 - fsl,mpc8313-pmc
[all …]
/linux/drivers/platform/x86/intel/pmc/
H A Dcore.c65 static inline u32 pmc_core_reg_read(struct pmc *pmc, int reg_offset) in pmc_core_reg_read() argument
67 return readl(pmc->regbase + reg_offset); in pmc_core_reg_read()
70 static inline void pmc_core_reg_write(struct pmc *pmc, int reg_offset, in pmc_core_reg_write() argument
73 writel(val, pmc->regbase + reg_offset); in pmc_core_reg_write()
76 static inline u64 pmc_core_adjust_slp_s0_step(struct pmc *pmc, u32 value) in pmc_core_adjust_slp_s0_step() argument
84 const int lpm_adj_x2 = pmc->map->lpm_res_counter_step_x2; in pmc_core_adjust_slp_s0_step()
86 if (pmc->map == &adl_reg_map) in pmc_core_adjust_slp_s0_step()
89 return (u64)value * pmc->map->slp_s0_res_counter_step; in pmc_core_adjust_slp_s0_step()
94 struct pmc *pmc = pmcdev->pmcs[PMC_IDX_MAIN]; in set_etr3() local
95 const struct pmc_reg_map *map = pmc->map; in set_etr3()
[all …]
/linux/tools/testing/selftests/powerpc/pmu/sampling_tests/
H A Dmisc.h65 static inline int get_mmcr0_fc56(u64 mmcr0, int pmc)
70 static inline int get_mmcr0_pmccext(u64 mmcr0, int pmc)
75 static inline int get_mmcr0_pmao(u64 mmcr0, int pmc)
80 static inline int get_mmcr0_cc56run(u64 mmcr0, int pmc)
85 static inline int get_mmcr0_pmcjce(u64 mmcr0, int pmc)
90 static inline int get_mmcr0_pmc1ce(u64 mmcr0, int pmc)
95 static inline int get_mmcr0_pmae(u64 mmcr0, int pmc)
100 static inline int get_mmcr1_pmcxsel(u64 mmcr1, int pmc)
102 return ((mmcr1 >> ((24 - (((pmc) - 1) * 8))) & 0xff)); in get_mmcr1_unit()
105 static inline int get_mmcr1_unit(u64 mmcr1, int pmc)
61 get_mmcr0_fc56(u64 mmcr0,int pmc) get_mmcr0_fc56() argument
66 get_mmcr0_pmccext(u64 mmcr0,int pmc) get_mmcr0_pmccext() argument
71 get_mmcr0_pmao(u64 mmcr0,int pmc) get_mmcr0_pmao() argument
76 get_mmcr0_cc56run(u64 mmcr0,int pmc) get_mmcr0_cc56run() argument
81 get_mmcr0_pmcjce(u64 mmcr0,int pmc) get_mmcr0_pmcjce() argument
86 get_mmcr0_pmc1ce(u64 mmcr0,int pmc) get_mmcr0_pmc1ce() argument
91 get_mmcr0_pmae(u64 mmcr0,int pmc) get_mmcr0_pmae() argument
96 get_mmcr1_pmcxsel(u64 mmcr1,int pmc) get_mmcr1_pmcxsel() argument
101 get_mmcr1_unit(u64 mmcr1,int pmc) get_mmcr1_unit() argument
106 get_mmcr1_comb(u64 mmcr1,int pmc) get_mmcr1_comb() argument
111 get_mmcr1_cache(u64 mmcr1,int pmc) get_mmcr1_cache() argument
116 get_mmcr1_rsq(u64 mmcr1,int pmc) get_mmcr1_rsq() argument
121 get_mmcr2_fcs(u64 mmcr2,int pmc) get_mmcr2_fcs() argument
126 get_mmcr2_fcp(u64 mmcr2,int pmc) get_mmcr2_fcp() argument
131 get_mmcr2_fcpc(u64 mmcr2,int pmc) get_mmcr2_fcpc() argument
136 get_mmcr2_fcm1(u64 mmcr2,int pmc) get_mmcr2_fcm1() argument
141 get_mmcr2_fcm0(u64 mmcr2,int pmc) get_mmcr2_fcm0() argument
146 get_mmcr2_fcwait(u64 mmcr2,int pmc) get_mmcr2_fcwait() argument
151 get_mmcr2_fch(u64 mmcr2,int pmc) get_mmcr2_fch() argument
156 get_mmcr2_fcti(u64 mmcr2,int pmc) get_mmcr2_fcti() argument
161 get_mmcr2_fcta(u64 mmcr2,int pmc) get_mmcr2_fcta() argument
166 get_mmcr2_l2l3(u64 mmcr2,int pmc) get_mmcr2_l2l3() argument
173 get_mmcr3_src(u64 mmcr3,int pmc) get_mmcr3_src() argument
180 get_mmcra_thd_cmp(u64 mmcra,int pmc) get_mmcra_thd_cmp() argument
187 get_mmcra_sm(u64 mmcra,int pmc) get_mmcra_sm() argument
192 get_mmcra_bhrb_disable(u64 mmcra,int pmc) get_mmcra_bhrb_disable() argument
199 get_mmcra_ifm(u64 mmcra,int pmc) get_mmcra_ifm() argument
204 get_mmcra_thd_sel(u64 mmcra,int pmc) get_mmcra_thd_sel() argument
209 get_mmcra_thd_start(u64 mmcra,int pmc) get_mmcra_thd_start() argument
214 get_mmcra_thd_stop(u64 mmcra,int pmc) get_mmcra_thd_stop() argument
219 get_mmcra_rand_samp_elig(u64 mmcra,int pmc) get_mmcra_rand_samp_elig() argument
224 get_mmcra_sample_mode(u64 mmcra,int pmc) get_mmcra_sample_mode() argument
229 get_mmcra_marked(u64 mmcra,int pmc) get_mmcra_marked() argument
[all...]
/linux/drivers/soc/tegra/
H A Dpmc.c3 * drivers/soc/tegra/pmc.c
12 #define pr_fmt(fmt) "tegra-pmc: " fmt
55 #include <soc/tegra/pmc.h>
62 #include <dt-bindings/soc/tegra-pmc.h>
198 /* for secure PMC */
270 struct tegra_pmc *pmc; member
358 void (*init)(struct tegra_pmc *pmc);
359 void (*setup_irq_polarity)(struct tegra_pmc *pmc,
362 void (*set_wake_filters)(struct tegra_pmc *pmc);
365 int (*powergate_set)(struct tegra_pmc *pmc, unsigned int id,
[all …]
/linux/arch/x86/kvm/
H A Dpmu.c65 * - There are three types of index to access perf counters (PMC):
75 * 3. Global PMC Index (named pmc): pmc is an index specific to PMU
76 * code. Each pmc, stored in kvm_pmc.idx field, is unique across
78 * between pmc and perf counters is as the following:
156 static inline void __kvm_perf_overflow(struct kvm_pmc *pmc, bool in_pmi) in __kvm_perf_overflow() argument
158 struct kvm_pmu *pmu = pmc_to_pmu(pmc); in __kvm_perf_overflow()
161 if (pmc->perf_event && pmc->perf_event->attr.precise_ip) { in __kvm_perf_overflow()
176 __set_bit(pmc->idx, (unsigned long *)&pmu->global_status); in __kvm_perf_overflow()
179 if (pmc->intr && !skip_pmi) in __kvm_perf_overflow()
180 kvm_make_request(KVM_REQ_PMI, pmc->vcpu); in __kvm_perf_overflow()
[all …]
H A Dpmu.h11 #define pmc_to_pmu(pmc) (&(pmc)->vcpu->arch.pmu) argument
87 #define kvm_for_each_pmc(pmu, pmc, i, bitmap) \ argument
89 if (!(pmc = kvm_pmc_idx_to_pmc(pmu, i))) \
93 static inline u64 pmc_bitmask(struct kvm_pmc *pmc) in pmc_bitmask() argument
95 struct kvm_pmu *pmu = pmc_to_pmu(pmc); in pmc_bitmask()
97 return pmu->counter_bitmask[pmc->type]; in pmc_bitmask()
100 static inline u64 pmc_read_counter(struct kvm_pmc *pmc) in pmc_read_counter() argument
104 counter = pmc->counter + pmc->emulated_counter; in pmc_read_counter()
106 if (pmc->perf_event && !pmc->is_paused) in pmc_read_counter()
107 counter += perf_event_read_value(pmc->perf_event, in pmc_read_counter()
[all …]
/linux/drivers/mfd/
H A Dintel_pmc_bxt.c3 * Driver for the Intel Broxton PMC
10 * The PMC (Power Management Controller) running on the ARC processor
13 * turn sends messages between the IA and the PMC.
51 * BIOS does not create an ACPI device for each PMC function, but
73 * intel_pmc_gcr_read64() - Read a 64-bit PMC GCR register
74 * @pmc: PMC device pointer
78 * Reads the 64-bit PMC GCR register at given offset.
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()
[all …]
/linux/net/ipv4/
H A Digmp.c163 static int sf_setstate(struct ip_mc_list *pmc);
164 static void sf_markstate(struct ip_mc_list *pmc);
166 static void ip_mc_clear_src(struct ip_mc_list *pmc);
178 #define for_each_pmc_rcu(in_dev, pmc) \ argument
179 for (pmc = rcu_dereference(in_dev->mc_list); \
180 pmc != NULL; \
181 pmc = rcu_dereference(pmc->next_rcu))
183 #define for_each_pmc_rtnl(in_dev, pmc) \ argument
184 for (pmc = rtnl_dereference(in_dev->mc_list); \
185 pmc != NULL; \
[all …]
/linux/arch/arm/mach-at91/
H A Dpm_suspend.S22 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]
453 ldr pmc, .pmc_base
462 ldr tmp1, [pmc, tmp3]
465 str tmp1, [pmc, tmp3]
473 ldr tmp1, [pmc, #AT91_CKGR_MOR]
476 str tmp1, [pmc, #AT91_CKGR_MOR]
[all …]
/linux/arch/arm64/kvm/
H A Dpmu-emul.c23 static void kvm_pmu_create_perf_event(struct kvm_pmc *pmc);
24 static void kvm_pmu_release_perf_event(struct kvm_pmc *pmc);
25 static bool kvm_pmu_counter_is_enabled(struct kvm_pmc *pmc);
33 static struct kvm_vcpu *kvm_pmc_to_vcpu(const struct kvm_pmc *pmc) in kvm_pmc_to_vcpu() argument
35 return container_of(pmc, struct kvm_vcpu, arch.pmu.pmc[pmc->idx]); in kvm_pmc_to_vcpu()
40 return &vcpu->arch.pmu.pmc[cnt_idx]; in kvm_vcpu_idx_to_pmc()
85 * @pmc: counter context
87 static bool kvm_pmc_is_64bit(struct kvm_pmc *pmc) in kvm_pmc_is_64bit() argument
89 struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc); in kvm_pmc_is_64bit()
91 return (pmc->idx == ARMV8_PMU_CYCLE_IDX || in kvm_pmc_is_64bit()
[all …]
/linux/arch/arm/boot/dts/microchip/
H A Dsama7g5.dtsi37 clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>;
205 clocks = <&pmc PMC_TYPE_CORE PMC_MCK1>;
223 clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
254 clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
257 pmc: clock-controller@e0018000 { label
258 compatible = "microchip,sama7g5-pmc", "syscon";
328 …clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 9…
336 clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
356 clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
371 clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
[all …]
H A Dsama5d2.dtsi50 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
66 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
136 clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
145 clocks = <&pmc PMC_TYPE_PERIPHERAL 41>, <&pmc PMC_TYPE_PERIPHERAL 41>, <&pmc PMC_TYPE_SYSTEM 6>;
154 clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 41>;
179 clocks = <&pmc PMC_TYPE_CORE PMC_MCK2>;
198 clocks = <&pmc PMC_TYPE_PERIPHERAL 31>, <&pmc PMC_TYPE_GCK 31>, <&pmc PMC_TYPE_CORE PMC_MAIN>;
200 assigned-clocks = <&pmc PMC_TYPE_GCK 31>;
209 clocks = <&pmc PMC_TYPE_PERIPHERAL 32>, <&pmc PMC_TYPE_GCK 32>, <&pmc PMC_TYPE_CORE PMC_MAIN>;
211 assigned-clocks = <&pmc PMC_TYPE_GCK 32>;
[all …]
H A Dsam9x60.dtsi84 clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
86 assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
95 clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
104 clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
106 assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
124 clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
141 clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
143 assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
152 clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
154 assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
[all …]
/linux/net/ipv6/
H A Dmcast.c82 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
364 struct ipv6_mc_socklist *pmc; ip6_mc_source() local
499 struct ipv6_mc_socklist *pmc; ip6_mc_msfilter() local
595 struct ipv6_mc_socklist *pmc; ip6_mc_msfget() local
738 struct ifmcaddr6 *pmc; mld_add_delrec() local
779 struct ifmcaddr6 *pmc, *pmc_prev; mld_del_delrec() local
819 struct ifmcaddr6 *pmc, *nextpmc; mld_clear_delrec() local
1176 mld_xmarksources(struct ifmcaddr6 * pmc,int nsrcs,const struct in6_addr * srcs) mld_xmarksources() argument
1206 mld_marksources(struct ifmcaddr6 * pmc,int nsrcs,const struct in6_addr * srcs) mld_marksources() argument
1680 is_in(struct ifmcaddr6 * pmc,struct ip6_sf_list * psf,int type,int gdeleted,int sdeleted) is_in() argument
1725 mld_scount(struct ifmcaddr6 * pmc,int type,int gdeleted,int sdeleted) mld_scount() argument
1879 grec_size(struct ifmcaddr6 * pmc,int type,int gdel,int sdel) grec_size() argument
1884 add_grhead(struct sk_buff * skb,struct ifmcaddr6 * pmc,int type,struct mld2_grec ** ppgr,unsigned int mtu) add_grhead() argument
1908 add_grec(struct sk_buff * skb,struct ifmcaddr6 * pmc,int type,int gdeleted,int sdeleted,int crsend) add_grec() argument
2041 mld_send_report(struct inet6_dev * idev,struct ifmcaddr6 * pmc) mld_send_report() argument
2095 struct ifmcaddr6 *pmc, *pmc_prev, *pmc_next; mld_send_cr() local
2258 struct ifmcaddr6 *pmc; mld_send_initial_cr() local
2310 ip6_mc_del1_src(struct ifmcaddr6 * pmc,int sfmode,const struct in6_addr * psfsrc) ip6_mc_del1_src() argument
2358 struct ifmcaddr6 *pmc; ip6_mc_del_src() local
2409 ip6_mc_add1_src(struct ifmcaddr6 * pmc,int sfmode,const struct in6_addr * psfsrc) ip6_mc_add1_src() argument
2438 sf_markstate(struct ifmcaddr6 * pmc) sf_markstate() argument
2456 sf_setstate(struct ifmcaddr6 * pmc) sf_setstate() argument
2528 struct ifmcaddr6 *pmc; ip6_mc_add_src() local
2584 ip6_mc_clear_src(struct ifmcaddr6 * pmc) ip6_mc_clear_src() argument
2866 struct ifmcaddr6 *pmc; ipv6_mc_rejoin_groups() local
[all...]
/linux/drivers/platform/x86/
H A Dpmc_atom.c15 #include <linux/platform_data/x86/clk-pmc-atom.h>
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
247 * Disable PMC S0IX_WAKE_EN events coming from: in pmc_hw_reg_setup()
[all …]
/linux/arch/powerpc/perf/
H A Dpower7-pmu.c18 #define PM_PMC_SH 16 /* PMC number (1-based) for direct events */
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()
[all …]
H A Dppc970-pmu.c17 #define PM_PMC_SH 12 /* PMC number (1-based) for direct events */
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()
[all …]
H A Dpower5-pmu.c18 #define PM_PMC_SH 20 /* PMC number (1-based) for direct events */
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()
[all …]
H A Dpower5+-pmu.c18 #define PM_PMC_SH 20 /* PMC number (1-based) for direct events */
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()
[all …]
H A Dpower6-pmu.c18 #define PM_PMC_SH 20 /* PMC number (1-based) for direct events */
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()
173 * Assign PMC numbers and compute MMCR1 value for a set of events
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()
[all …]
H A Disa207-common.h38 #define EVENT_PMC_SHIFT 16 /* PMC number (1-based) */
138 * BHRB IFM -* | | |*radix_scope | Count of events for each PMC.
143 * The PMC fields P1..P6, and NC, are adder fields. As we accumulate constraints
196 * For the per-PMC fields we have two bits. The low bit is added, so if two
197 * events ask for the same PMC the sum will overflow, setting the high bit,
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
[all …]
/linux/drivers/usb/typec/mux/
H A Dintel_pmc_mux.c3 * Driver for Intel PMC USB mux control
135 struct pmc_usb *pmc; member
172 port->iom_status = readl(port->pmc->iom_base + in update_port_status()
173 port->pmc->iom_port_status_offset + in update_port_status()
174 port_num * port->pmc->iom_port_status_size); in update_port_status()
235 * If PMC is busy then retry the command once again in pmc_usb_command()
238 ret = pmc_usb_send_command(port->pmc->ipc, msg, len); in pmc_usb_command()
301 if (!is_pmc_mux_tbt(port->pmc->iom_adev)) { in pmc_usb_mux_dp()
357 if (acpi_dev_hid_uid_match(port->pmc->iom_adev, "INTC1072", NULL) || in pmc_usb_mux_tbt()
358 acpi_dev_hid_uid_match(port->pmc->iom_adev, "INTC1079", NULL)) { in pmc_usb_mux_tbt()
[all …]
/linux/drivers/platform/mellanox/
H A Dmlxbf-pmc.c111 * @mmio_base: The VA at which the PMC block is mapped
138 * struct mlxbf_pmc_context - Structure to hold PMC context info
1000 static struct mlxbf_pmc_context *pmc; variable
1011 arm_smccc_smc(command, pmc->sreg_tbl_perf, (uintptr_t)addr, 0, 0, 0, 0, in mlxbf_pmc_secure_read()
1034 if (pmc->svc_sreg_support) in mlxbf_pmc_read()
1065 arm_smccc_smc(command, pmc->sreg_tbl_perf, value, (uintptr_t)addr, 0, 0, in mlxbf_pmc_secure_write()
1085 if (pmc->svc_sreg_support) in mlxbf_pmc_write()
1100 (offset + MLXBF_PMC_REG_SIZE <= pmc->block[blk_num].blk_size)) in mlxbf_pmc_valid_range()
1101 return true; /* inside the mapped PMC space */ in mlxbf_pmc_valid_range()
1122 switch (pmc->event_set) { in mlxbf_pmc_event_list()
[all …]
/linux/arch/x86/kvm/svm/
H A Dpmu.c96 struct kvm_pmc *pmc; in amd_msr_idx_to_pmc() local
98 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER); in amd_msr_idx_to_pmc()
99 pmc = pmc ? pmc : get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL); in amd_msr_idx_to_pmc()
101 return pmc; in amd_msr_idx_to_pmc()
131 struct kvm_pmc *pmc; in amd_pmu_get_msr() local
135 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER); in amd_pmu_get_msr()
136 if (pmc) { in amd_pmu_get_msr()
137 msr_info->data = pmc_read_counter(pmc); in amd_pmu_get_msr()
141 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL); in amd_pmu_get_msr()
142 if (pmc) { in amd_pmu_get_msr()
[all …]

12345678910>>...18