Lines Matching refs:counter
318 static void cn10k_ddr_perf_free_counter(struct cn10k_ddr_pmu *pmu, int counter) in cn10k_ddr_perf_free_counter() argument
320 pmu->events[counter] = NULL; in cn10k_ddr_perf_free_counter()
355 int counter, bool enable) in cn10k_ddr_perf_counter_enable() argument
360 if (counter > DDRC_PERF_NUM_COUNTERS) { in cn10k_ddr_perf_counter_enable()
361 pr_err("Error: unsupported counter %d\n", counter); in cn10k_ddr_perf_counter_enable()
365 if (counter < DDRC_PERF_NUM_GEN_COUNTERS) { in cn10k_ddr_perf_counter_enable()
366 reg = DDRC_PERF_CFG(counter); in cn10k_ddr_perf_counter_enable()
378 if (counter == DDRC_PERF_READ_COUNTER_IDX) in cn10k_ddr_perf_counter_enable()
383 if (counter == DDRC_PERF_READ_COUNTER_IDX) in cn10k_ddr_perf_counter_enable()
392 static u64 cn10k_ddr_perf_read_counter(struct cn10k_ddr_pmu *pmu, int counter) in cn10k_ddr_perf_read_counter() argument
396 if (counter == DDRC_PERF_READ_COUNTER_IDX) in cn10k_ddr_perf_read_counter()
399 if (counter == DDRC_PERF_WRITE_COUNTER_IDX) in cn10k_ddr_perf_read_counter()
402 val = readq_relaxed(pmu->base + DDRC_PERF_CNT_VALUE(counter)); in cn10k_ddr_perf_read_counter()
426 int counter = hwc->idx; in cn10k_ddr_perf_event_start() local
430 cn10k_ddr_perf_counter_enable(pmu, counter, true); in cn10k_ddr_perf_event_start()
440 int counter, ret; in cn10k_ddr_perf_event_add() local
444 counter = cn10k_ddr_perf_alloc_counter(pmu, event); in cn10k_ddr_perf_event_add()
445 if (counter < 0) in cn10k_ddr_perf_event_add()
449 hwc->idx = counter; in cn10k_ddr_perf_event_add()
455 if (counter < DDRC_PERF_NUM_GEN_COUNTERS) { in cn10k_ddr_perf_event_add()
457 reg_offset = DDRC_PERF_CFG(counter); in cn10k_ddr_perf_event_add()
465 if (counter == DDRC_PERF_READ_COUNTER_IDX) in cn10k_ddr_perf_event_add()
485 int counter = hwc->idx; in cn10k_ddr_perf_event_stop() local
487 cn10k_ddr_perf_counter_enable(pmu, counter, false); in cn10k_ddr_perf_event_stop()
499 int counter = hwc->idx; in cn10k_ddr_perf_event_del() local
503 cn10k_ddr_perf_free_counter(pmu, counter); in cn10k_ddr_perf_event_del()