Loading arch/sparc/kernel/perf_event.c +14 −6 Original line number Diff line number Diff line Loading @@ -623,27 +623,35 @@ static u64 nop_for_index(int idx) static inline void sparc_pmu_enable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { u64 val, mask = mask_for_index(idx); int pcr_index = 0; val = cpuc->pcr[0]; if (sparc_pmu->num_pcrs > 1) pcr_index = idx; val = cpuc->pcr[pcr_index]; val &= ~mask; val |= hwc->config; cpuc->pcr[0] = val; cpuc->pcr[pcr_index] = val; pcr_ops->write_pcr(0, cpuc->pcr[0]); pcr_ops->write_pcr(pcr_index, cpuc->pcr[pcr_index]); } static inline void sparc_pmu_disable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { u64 mask = mask_for_index(idx); u64 nop = nop_for_index(idx); int pcr_index = 0; u64 val; val = cpuc->pcr[0]; if (sparc_pmu->num_pcrs > 1) pcr_index = idx; val = cpuc->pcr[pcr_index]; val &= ~mask; val |= nop; cpuc->pcr[0] = val; cpuc->pcr[pcr_index] = val; pcr_ops->write_pcr(0, cpuc->pcr[0]); pcr_ops->write_pcr(pcr_index, cpuc->pcr[pcr_index]); } static u64 sparc_perf_event_update(struct perf_event *event, Loading Loading
arch/sparc/kernel/perf_event.c +14 −6 Original line number Diff line number Diff line Loading @@ -623,27 +623,35 @@ static u64 nop_for_index(int idx) static inline void sparc_pmu_enable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { u64 val, mask = mask_for_index(idx); int pcr_index = 0; val = cpuc->pcr[0]; if (sparc_pmu->num_pcrs > 1) pcr_index = idx; val = cpuc->pcr[pcr_index]; val &= ~mask; val |= hwc->config; cpuc->pcr[0] = val; cpuc->pcr[pcr_index] = val; pcr_ops->write_pcr(0, cpuc->pcr[0]); pcr_ops->write_pcr(pcr_index, cpuc->pcr[pcr_index]); } static inline void sparc_pmu_disable_event(struct cpu_hw_events *cpuc, struct hw_perf_event *hwc, int idx) { u64 mask = mask_for_index(idx); u64 nop = nop_for_index(idx); int pcr_index = 0; u64 val; val = cpuc->pcr[0]; if (sparc_pmu->num_pcrs > 1) pcr_index = idx; val = cpuc->pcr[pcr_index]; val &= ~mask; val |= nop; cpuc->pcr[0] = val; cpuc->pcr[pcr_index] = val; pcr_ops->write_pcr(0, cpuc->pcr[0]); pcr_ops->write_pcr(pcr_index, cpuc->pcr[pcr_index]); } static u64 sparc_perf_event_update(struct perf_event *event, Loading