OSDN Git Service

Merge tag 'powerpc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[uclinux-h8/linux.git] / arch / powerpc / perf / core-book3s.c
index 19d8ab4..81f8a0c 100644 (file)
@@ -128,10 +128,6 @@ static inline void power_pmu_bhrb_disable(struct perf_event *event) {}
 static void power_pmu_sched_task(struct perf_event_context *ctx, bool sched_in) {}
 static inline void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw) {}
 static void pmao_restore_workaround(bool ebb) { }
-static bool use_ic(u64 event)
-{
-       return false;
-}
 #endif /* CONFIG_PPC32 */
 
 static bool regs_use_siar(struct pt_regs *regs)
@@ -714,14 +710,6 @@ static void pmao_restore_workaround(bool ebb)
        mtspr(SPRN_PMC6, pmcs[5]);
 }
 
-static bool use_ic(u64 event)
-{
-       if (cpu_has_feature(CPU_FTR_POWER9_DD1) &&
-                       (event == 0x200f2 || event == 0x300f2))
-               return true;
-
-       return false;
-}
 #endif /* CONFIG_PPC64 */
 
 static void perf_event_interrupt(struct pt_regs *regs);
@@ -1046,7 +1034,6 @@ static u64 check_and_compute_delta(u64 prev, u64 val)
 static void power_pmu_read(struct perf_event *event)
 {
        s64 val, delta, prev;
-       struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events);
 
        if (event->hw.state & PERF_HES_STOPPED)
                return;
@@ -1056,13 +1043,6 @@ static void power_pmu_read(struct perf_event *event)
 
        if (is_ebb_event(event)) {
                val = read_pmc(event->hw.idx);
-               if (use_ic(event->attr.config)) {
-                       val = mfspr(SPRN_IC);
-                       if (val > cpuhw->ic_init)
-                               val = val - cpuhw->ic_init;
-                       else
-                               val = val + (0 - cpuhw->ic_init);
-               }
                local64_set(&event->hw.prev_count, val);
                return;
        }
@@ -1076,13 +1056,6 @@ static void power_pmu_read(struct perf_event *event)
                prev = local64_read(&event->hw.prev_count);
                barrier();
                val = read_pmc(event->hw.idx);
-               if (use_ic(event->attr.config)) {
-                       val = mfspr(SPRN_IC);
-                       if (val > cpuhw->ic_init)
-                               val = val - cpuhw->ic_init;
-                       else
-                               val = val + (0 - cpuhw->ic_init);
-               }
                delta = check_and_compute_delta(prev, val);
                if (!delta)
                        return;
@@ -1535,13 +1508,6 @@ nocheck:
                                        event->attr.branch_sample_type);
        }
 
-       /*
-        * Workaround for POWER9 DD1 to use the Instruction Counter
-        * register value for instruction counting
-        */
-       if (use_ic(event->attr.config))
-               cpuhw->ic_init = mfspr(SPRN_IC);
-
        perf_pmu_enable(event->pmu);
        local_irq_restore(flags);
        return ret;