Lines Matching refs:pmc
139 int pmc, psel, ptype;
143 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
145 if (pmc >= 5)
151 if (pmc == 0 || !(ptype & (1 << (pmc - 1))))
159 bit = ptype ^ (pmc - 1);
182 unsigned int pmc, ev, b, u, s, psel;
189 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK;
190 if (pmc) {
191 if (pmc_inuse & (1 << (pmc - 1)))
193 pmc_inuse |= 1 << (pmc - 1);
198 pmc = (ev >> PM_PMC_SH) & PM_PMC_MSK;
199 if (pmc) {
200 --pmc;
203 for (pmc = 0; pmc < 4; ++pmc)
204 if (!(pmc_inuse & (1 << pmc)))
206 if (pmc >= 4)
208 pmc_inuse |= 1 << pmc;
210 hwc[i] = pmc;
233 mmcr1 |= MMCR1_PMC1_ADDR_SEL >> pmc;
236 if (pmc >= 2 && (psel & 0x90) == 0x80)
240 mmcr1 |= MMCR1_PMC1_LLA >> pmc;
242 mmcr1 |= MMCR1_PMC1_LLA_VALUE >> pmc;
246 if (pmc < 4)
247 mmcr1 |= (unsigned long)psel << MMCR1_PMCSEL_SH(pmc);
272 int pmc, byte, sh, subunit;
275 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
276 if (pmc) {
277 if (pmc > 4 && !(event == 0x500009 || event == 0x600005))
279 sh = (pmc - 1) * 2;
294 if (pmc <= 4) {
305 int pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
307 return pmc == 5 || pmc == 6;
376 unsigned int psel, pmc;
400 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
401 if (pmc && (psel == 0x32 || psel == 0x34))
403 ((5 - pmc) << PM_PMC_SH);
406 if (pmc && (psel == 0x38 || psel == 0x3a))
408 ((pmc > 2? pmc - 2: pmc + 2) << PM_PMC_SH);
475 static void p6_disable_pmc(unsigned int pmc, struct mmcr_regs *mmcr)
478 if (pmc <= 3)
479 mmcr->mmcr1 &= ~(0xffUL << MMCR1_PMCSEL_SH(pmc));