Lines Matching refs:pmc
141 int pmc, psel, ptype; in power6_marked_instr_event() local
145 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in power6_marked_instr_event()
147 if (pmc >= 5) in power6_marked_instr_event()
153 if (pmc == 0 || !(ptype & (1 << (pmc - 1)))) in power6_marked_instr_event()
161 bit = ptype ^ (pmc - 1); in power6_marked_instr_event()
183 unsigned int pmc, ev, b, u, s, psel; in p6_compute_mmcr() local
190 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK; in p6_compute_mmcr()
191 if (pmc) { in p6_compute_mmcr()
192 if (pmc_inuse & (1 << (pmc - 1))) in p6_compute_mmcr()
194 pmc_inuse |= 1 << (pmc - 1); in p6_compute_mmcr()
199 pmc = (ev >> PM_PMC_SH) & PM_PMC_MSK; in p6_compute_mmcr()
200 if (pmc) { in p6_compute_mmcr()
201 --pmc; in p6_compute_mmcr()
204 for (pmc = 0; pmc < 4; ++pmc) in p6_compute_mmcr()
205 if (!(pmc_inuse & (1 << pmc))) in p6_compute_mmcr()
207 if (pmc >= 4) in p6_compute_mmcr()
209 pmc_inuse |= 1 << pmc; in p6_compute_mmcr()
211 hwc[i] = pmc; in p6_compute_mmcr()
234 mmcr1 |= MMCR1_PMC1_ADDR_SEL >> pmc; in p6_compute_mmcr()
237 if (pmc >= 2 && (psel & 0x90) == 0x80) in p6_compute_mmcr()
241 mmcr1 |= MMCR1_PMC1_LLA >> pmc; in p6_compute_mmcr()
243 mmcr1 |= MMCR1_PMC1_LLA_VALUE >> pmc; in p6_compute_mmcr()
247 if (pmc < 4) in p6_compute_mmcr()
248 mmcr1 |= (unsigned long)psel << MMCR1_PMCSEL_SH(pmc); in p6_compute_mmcr()
273 int pmc, byte, sh, subunit; in p6_get_constraint() local
276 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in p6_get_constraint()
277 if (pmc) { in p6_get_constraint()
278 if (pmc > 4 && !(event == 0x500009 || event == 0x600005)) in p6_get_constraint()
280 sh = (pmc - 1) * 2; in p6_get_constraint()
295 if (pmc <= 4) { in p6_get_constraint()
306 int pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in p6_limited_pmc_event() local
308 return pmc == 5 || pmc == 6; in p6_limited_pmc_event()
365 unsigned int psel, pmc; in p6_get_alternatives() local
389 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK; in p6_get_alternatives()
390 if (pmc && (psel == 0x32 || psel == 0x34)) in p6_get_alternatives()
392 ((5 - pmc) << PM_PMC_SH); in p6_get_alternatives()
395 if (pmc && (psel == 0x38 || psel == 0x3a)) in p6_get_alternatives()
397 ((pmc > 2? pmc - 2: pmc + 2) << PM_PMC_SH); in p6_get_alternatives()
464 static void p6_disable_pmc(unsigned int pmc, unsigned long mmcr[]) in p6_disable_pmc() argument
467 if (pmc <= 3) in p6_disable_pmc()
468 mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SH(pmc)); in p6_disable_pmc()