Lines Matching refs:pmc
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()
153 if ((pmc == 1 || pmc == 3) && (psel & ~7) == 0x48) in find_alternative_decode()
215 int pmc, psel; in power7_marked_instr_event() local
218 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power7_marked_instr_event()
221 if (pmc >= 5) in power7_marked_instr_event()
226 return pmc == 2 || pmc == 4; in power7_marked_instr_event()
229 return pmc == 1; in power7_marked_instr_event()
231 return pmc != 2; in power7_marked_instr_event()
238 return pmc >= 3; in power7_marked_instr_event()
252 unsigned int pmc, unit, combine, l2sel, psel; in power7_compute_mmcr() local
258 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK; in power7_compute_mmcr()
259 if (pmc) { in power7_compute_mmcr()
260 if (pmc > 6) in power7_compute_mmcr()
262 if (pmc_inuse & (1 << (pmc - 1))) in power7_compute_mmcr()
264 pmc_inuse |= 1 << (pmc - 1); in power7_compute_mmcr()
270 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK; in power7_compute_mmcr()
275 if (!pmc) { in power7_compute_mmcr()
277 for (pmc = 0; pmc < 4; ++pmc) { in power7_compute_mmcr()
278 if (!(pmc_inuse & (1 << pmc))) in power7_compute_mmcr()
281 if (pmc >= 4) in power7_compute_mmcr()
283 pmc_inuse |= 1 << pmc; in power7_compute_mmcr()
286 --pmc; in power7_compute_mmcr()
288 if (pmc <= 3) { in power7_compute_mmcr()
290 << (MMCR1_TTM0SEL_SH - 4 * pmc); in power7_compute_mmcr()
292 << (MMCR1_PMC1_COMBINE_SH - pmc); in power7_compute_mmcr()
293 mmcr1 |= psel << MMCR1_PMCSEL_SH(pmc); in power7_compute_mmcr()
300 hwc[i] = pmc; in power7_compute_mmcr()
314 static void power7_disable_pmc(unsigned int pmc, struct mmcr_regs *mmcr) in power7_disable_pmc() argument
316 if (pmc <= 3) in power7_disable_pmc()
317 mmcr->mmcr1 &= ~(0xffUL << MMCR1_PMCSEL_SH(pmc)); in power7_disable_pmc()