hisi_pmu 64 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static u64 hisi_ddrc_pmu_read_counter(struct hisi_pmu *ddrc_pmu, hisi_pmu 78 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_write_counter(struct hisi_pmu *ddrc_pmu, hisi_pmu 96 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_write_evtype(struct hisi_pmu *hha_pmu, int idx, hisi_pmu 101 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_start_counters(struct hisi_pmu *ddrc_pmu) hisi_pmu 111 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_stop_counters(struct hisi_pmu *ddrc_pmu) hisi_pmu 121 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_enable_counter(struct hisi_pmu *ddrc_pmu, hisi_pmu 132 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_disable_counter(struct hisi_pmu *ddrc_pmu, hisi_pmu 145 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu = to_hisi_pmu(event->pmu); hisi_pmu 159 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_enable_counter_int(struct hisi_pmu *ddrc_pmu, hisi_pmu 170 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static void hisi_ddrc_pmu_disable_counter_int(struct hisi_pmu *ddrc_pmu, hisi_pmu 183 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu = dev_id; hisi_pmu 213 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c static int hisi_ddrc_pmu_init_irq(struct hisi_pmu *ddrc_pmu, hisi_pmu 244 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu) hisi_pmu 335 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu) hisi_pmu 359 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu; hisi_pmu 409 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c struct hisi_pmu *ddrc_pmu = platform_get_drvdata(pdev); hisi_pmu 50 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static u64 hisi_hha_pmu_read_counter(struct hisi_pmu *hha_pmu, hisi_pmu 64 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_write_counter(struct hisi_pmu *hha_pmu, hisi_pmu 78 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_write_evtype(struct hisi_pmu *hha_pmu, int idx, hisi_pmu 101 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_start_counters(struct hisi_pmu *hha_pmu) hisi_pmu 114 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_stop_counters(struct hisi_pmu *hha_pmu) hisi_pmu 127 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_enable_counter(struct hisi_pmu *hha_pmu, hisi_pmu 138 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_disable_counter(struct hisi_pmu *hha_pmu, hisi_pmu 149 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_enable_counter_int(struct hisi_pmu *hha_pmu, hisi_pmu 160 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static void hisi_hha_pmu_disable_counter_int(struct hisi_pmu *hha_pmu, hisi_pmu 173 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c struct hisi_pmu *hha_pmu = dev_id; hisi_pmu 203 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c static int hisi_hha_pmu_init_irq(struct hisi_pmu *hha_pmu, hisi_pmu 234 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c struct hisi_pmu *hha_pmu) hisi_pmu 346 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c struct hisi_pmu *hha_pmu) hisi_pmu 370 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c struct hisi_pmu *hha_pmu; hisi_pmu 420 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c struct hisi_pmu *hha_pmu = platform_get_drvdata(pdev); hisi_pmu 49 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static u64 hisi_l3c_pmu_read_counter(struct hisi_pmu *l3c_pmu, hisi_pmu 63 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_write_counter(struct hisi_pmu *l3c_pmu, hisi_pmu 77 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_write_evtype(struct hisi_pmu *l3c_pmu, int idx, hisi_pmu 100 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_start_counters(struct hisi_pmu *l3c_pmu) hisi_pmu 113 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_stop_counters(struct hisi_pmu *l3c_pmu) hisi_pmu 126 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_enable_counter(struct hisi_pmu *l3c_pmu, hisi_pmu 137 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_disable_counter(struct hisi_pmu *l3c_pmu, hisi_pmu 148 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_enable_counter_int(struct hisi_pmu *l3c_pmu, hisi_pmu 159 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static void hisi_l3c_pmu_disable_counter_int(struct hisi_pmu *l3c_pmu, hisi_pmu 172 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c struct hisi_pmu *l3c_pmu = dev_id; hisi_pmu 202 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c static int hisi_l3c_pmu_init_irq(struct hisi_pmu *l3c_pmu, hisi_pmu 233 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c struct hisi_pmu *l3c_pmu) hisi_pmu 336 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c struct hisi_pmu *l3c_pmu) hisi_pmu 360 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c struct hisi_pmu *l3c_pmu; hisi_pmu 410 drivers/perf/hisilicon/hisi_uncore_l3c_pmu.c struct hisi_pmu *l3c_pmu = platform_get_drvdata(pdev); hisi_pmu 57 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(dev_get_drvdata(dev)); hisi_pmu 59 drivers/perf/hisilicon/hisi_uncore_pmu.c return sprintf(buf, "%d\n", hisi_pmu->on_cpu); hisi_pmu 65 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 92 drivers/perf/hisilicon/hisi_uncore_pmu.c return counters <= hisi_pmu->num_counters; hisi_pmu 95 drivers/perf/hisilicon/hisi_uncore_pmu.c int hisi_uncore_pmu_counter_valid(struct hisi_pmu *hisi_pmu, int idx) hisi_pmu 97 drivers/perf/hisilicon/hisi_uncore_pmu.c return idx >= 0 && idx < hisi_pmu->num_counters; hisi_pmu 102 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 103 drivers/perf/hisilicon/hisi_uncore_pmu.c unsigned long *used_mask = hisi_pmu->pmu_events.used_mask; hisi_pmu 104 drivers/perf/hisilicon/hisi_uncore_pmu.c u32 num_counters = hisi_pmu->num_counters; hisi_pmu 116 drivers/perf/hisilicon/hisi_uncore_pmu.c static void hisi_uncore_pmu_clear_event_idx(struct hisi_pmu *hisi_pmu, int idx) hisi_pmu 118 drivers/perf/hisilicon/hisi_uncore_pmu.c if (!hisi_uncore_pmu_counter_valid(hisi_pmu, idx)) { hisi_pmu 119 drivers/perf/hisilicon/hisi_uncore_pmu.c dev_err(hisi_pmu->dev, "Unsupported event index:%d!\n", idx); hisi_pmu 123 drivers/perf/hisilicon/hisi_uncore_pmu.c clear_bit(idx, hisi_pmu->pmu_events.used_mask); hisi_pmu 129 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu; hisi_pmu 156 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 157 drivers/perf/hisilicon/hisi_uncore_pmu.c if (event->attr.config > hisi_pmu->check_event) hisi_pmu 160 drivers/perf/hisilicon/hisi_uncore_pmu.c if (hisi_pmu->on_cpu == -1) hisi_pmu 171 drivers/perf/hisilicon/hisi_uncore_pmu.c event->cpu = hisi_pmu->on_cpu; hisi_pmu 182 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 185 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->write_evtype(hisi_pmu, hwc->idx, hisi_pmu 188 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->enable_counter_int(hisi_pmu, hwc); hisi_pmu 189 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->enable_counter(hisi_pmu, hwc); hisi_pmu 197 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 200 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->disable_counter(hisi_pmu, hwc); hisi_pmu 201 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->disable_counter_int(hisi_pmu, hwc); hisi_pmu 206 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 216 drivers/perf/hisilicon/hisi_uncore_pmu.c u64 val = BIT_ULL(hisi_pmu->counter_bits - 1); hisi_pmu 220 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->write_counter(hisi_pmu, hwc, val); hisi_pmu 225 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 231 drivers/perf/hisilicon/hisi_uncore_pmu.c new_raw_count = hisi_pmu->ops->read_counter(hisi_pmu, hwc); hisi_pmu 239 drivers/perf/hisilicon/hisi_uncore_pmu.c HISI_MAX_PERIOD(hisi_pmu->counter_bits); hisi_pmu 245 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 258 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->write_counter(hisi_pmu, hwc, prev_raw_count); hisi_pmu 283 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 290 drivers/perf/hisilicon/hisi_uncore_pmu.c idx = hisi_pmu->ops->get_event_idx(event); hisi_pmu 295 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->pmu_events.hw_events[idx] = event; hisi_pmu 305 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(event->pmu); hisi_pmu 309 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_uncore_pmu_clear_event_idx(hisi_pmu, hwc->idx); hisi_pmu 311 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->pmu_events.hw_events[hwc->idx] = NULL; hisi_pmu 322 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(pmu); hisi_pmu 323 drivers/perf/hisilicon/hisi_uncore_pmu.c int enabled = bitmap_weight(hisi_pmu->pmu_events.used_mask, hisi_pmu 324 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->num_counters); hisi_pmu 329 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->start_counters(hisi_pmu); hisi_pmu 334 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = to_hisi_pmu(pmu); hisi_pmu 336 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->ops->stop_counters(hisi_pmu); hisi_pmu 367 drivers/perf/hisilicon/hisi_uncore_pmu.c static bool hisi_pmu_cpu_is_associated_pmu(struct hisi_pmu *hisi_pmu) hisi_pmu 371 drivers/perf/hisilicon/hisi_uncore_pmu.c if (hisi_pmu->ccl_id == -1) { hisi_pmu 375 drivers/perf/hisilicon/hisi_uncore_pmu.c return sccl_id == hisi_pmu->sccl_id; hisi_pmu 380 drivers/perf/hisilicon/hisi_uncore_pmu.c return sccl_id == hisi_pmu->sccl_id && ccl_id == hisi_pmu->ccl_id; hisi_pmu 385 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = hlist_entry_safe(node, struct hisi_pmu, hisi_pmu 388 drivers/perf/hisilicon/hisi_uncore_pmu.c if (!hisi_pmu_cpu_is_associated_pmu(hisi_pmu)) hisi_pmu 391 drivers/perf/hisilicon/hisi_uncore_pmu.c cpumask_set_cpu(cpu, &hisi_pmu->associated_cpus); hisi_pmu 394 drivers/perf/hisilicon/hisi_uncore_pmu.c if (hisi_pmu->on_cpu != -1) hisi_pmu 398 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->on_cpu = cpu; hisi_pmu 401 drivers/perf/hisilicon/hisi_uncore_pmu.c WARN_ON(irq_set_affinity(hisi_pmu->irq, cpumask_of(cpu))); hisi_pmu 408 drivers/perf/hisilicon/hisi_uncore_pmu.c struct hisi_pmu *hisi_pmu = hlist_entry_safe(node, struct hisi_pmu, hisi_pmu 413 drivers/perf/hisilicon/hisi_uncore_pmu.c if (!cpumask_test_and_clear_cpu(cpu, &hisi_pmu->associated_cpus)) hisi_pmu 417 drivers/perf/hisilicon/hisi_uncore_pmu.c if (hisi_pmu->on_cpu != cpu) hisi_pmu 421 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->on_cpu = -1; hisi_pmu 424 drivers/perf/hisilicon/hisi_uncore_pmu.c cpumask_and(&pmu_online_cpus, &hisi_pmu->associated_cpus, hisi_pmu 430 drivers/perf/hisilicon/hisi_uncore_pmu.c perf_pmu_migrate_context(&hisi_pmu->pmu, cpu, target); hisi_pmu 432 drivers/perf/hisilicon/hisi_uncore_pmu.c hisi_pmu->on_cpu = target; hisi_pmu 433 drivers/perf/hisilicon/hisi_uncore_pmu.c WARN_ON(irq_set_affinity(hisi_pmu->irq, cpumask_of(target))); hisi_pmu 24 drivers/perf/hisilicon/hisi_uncore_pmu.h #define to_hisi_pmu(p) (container_of(p, struct hisi_pmu, pmu)) hisi_pmu 36 drivers/perf/hisilicon/hisi_uncore_pmu.h struct hisi_pmu; hisi_pmu 39 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*write_evtype)(struct hisi_pmu *, int, u32); hisi_pmu 41 drivers/perf/hisilicon/hisi_uncore_pmu.h u64 (*read_counter)(struct hisi_pmu *, struct hw_perf_event *); hisi_pmu 42 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*write_counter)(struct hisi_pmu *, struct hw_perf_event *, u64); hisi_pmu 43 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*enable_counter)(struct hisi_pmu *, struct hw_perf_event *); hisi_pmu 44 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*disable_counter)(struct hisi_pmu *, struct hw_perf_event *); hisi_pmu 45 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*enable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); hisi_pmu 46 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*disable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); hisi_pmu 47 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*start_counters)(struct hisi_pmu *); hisi_pmu 48 drivers/perf/hisilicon/hisi_uncore_pmu.h void (*stop_counters)(struct hisi_pmu *); hisi_pmu 79 drivers/perf/hisilicon/hisi_uncore_pmu.h int hisi_uncore_pmu_counter_valid(struct hisi_pmu *hisi_pmu, int idx);