Lines Matching +full:software +full:- +full:programmable

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
97 * - PMAO=0: clear alerts in power8_pcpu_init()
98 * - FCPC=0, FCP=0: don't freeze counters in problem state in power8_pcpu_init()
99 * - FCECE: Freeze Counters on Enabled Condition or Event in power8_pcpu_init()
100 * - PMC1CE/PMCNCE: PMC1/N Condition Enable in power8_pcpu_init()
110 /* Disable events in PMCs 1-4 */ in power8_pcpu_init()
144 /* Unfreeze counters and re-enable PERF exceptions if requested. */ in power8_resume_pmc()
163 pe = a->pm_md.pm_event; in power8_allocate_pmc()
167 if (a->pm_class != PMC_CLASS_POWER8) in power8_allocate_pmc()
170 if ((a->pm_flags & PMC_F_EV_PMU) == 0) in power8_allocate_pmc()
174 * PMC5 and PMC6 are not programmable and always count instructions in power8_allocate_pmc()
177 * When counter is 0 any of the 4 programmable PMCs may be used for in power8_allocate_pmc()
190 caps = a->pm_caps; in power8_allocate_pmc()
199 pm->pm_md.pm_powerpc.pm_powerpc_evsel = config; in power8_allocate_pmc()
201 PMCDBG3(MDP,ALL,1,"powerpc-allocate cpu=%d ri=%d -> config=0x%x", in power8_allocate_pmc()
211 pmc_mdep->pmd_cputype = PMC_CPU_PPC_POWER8; in pmc_power8_initialize()
213 pcd = &pmc_mdep->pmd_classdep[PMC_MDEP_CLASS_INDEX_POWERPC]; in pmc_power8_initialize()
214 pcd->pcd_caps = POWERPC_PMC_CAPS; in pmc_power8_initialize()
215 pcd->pcd_class = PMC_CLASS_POWER8; in pmc_power8_initialize()
216 pcd->pcd_num = POWER8_MAX_PMCS; in pmc_power8_initialize()
217 pcd->pcd_ri = pmc_mdep->pmd_npmc; in pmc_power8_initialize()
218 pcd->pcd_width = 32; in pmc_power8_initialize()
220 pcd->pcd_pcpu_init = power8_pcpu_init; in pmc_power8_initialize()
221 pcd->pcd_pcpu_fini = power8_pcpu_fini; in pmc_power8_initialize()
222 pcd->pcd_allocate_pmc = power8_allocate_pmc; in pmc_power8_initialize()
223 pcd->pcd_release_pmc = powerpc_release_pmc; in pmc_power8_initialize()
224 pcd->pcd_start_pmc = powerpc_start_pmc; in pmc_power8_initialize()
225 pcd->pcd_stop_pmc = powerpc_stop_pmc; in pmc_power8_initialize()
226 pcd->pcd_get_config = powerpc_get_config; in pmc_power8_initialize()
227 pcd->pcd_config_pmc = powerpc_config_pmc; in pmc_power8_initialize()
228 pcd->pcd_describe = powerpc_describe; in pmc_power8_initialize()
229 pcd->pcd_read_pmc = powerpc_read_pmc; in pmc_power8_initialize()
230 pcd->pcd_write_pmc = powerpc_write_pmc; in pmc_power8_initialize()
232 pmc_mdep->pmd_npmc += POWER8_MAX_PMCS; in pmc_power8_initialize()
233 pmc_mdep->pmd_intr = powerpc_pmc_intr; in pmc_power8_initialize()