dsu_pmu           127 drivers/perf/arm_dsu_pmu.c static inline struct dsu_pmu *to_dsu_pmu(struct pmu *pmu)
dsu_pmu           129 drivers/perf/arm_dsu_pmu.c 	return container_of(pmu, struct dsu_pmu, pmu);
dsu_pmu           156 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(pmu);
dsu_pmu           164 drivers/perf/arm_dsu_pmu.c 		cpumask = &dsu_pmu->active_cpu;
dsu_pmu           167 drivers/perf/arm_dsu_pmu.c 		cpumask = &dsu_pmu->associated_cpus;
dsu_pmu           202 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(pmu);
dsu_pmu           207 drivers/perf/arm_dsu_pmu.c 	return test_bit(evt, dsu_pmu->cpmceid_bitmap) ? attr->mode : 0;
dsu_pmu           233 drivers/perf/arm_dsu_pmu.c static int dsu_pmu_get_online_cpu_any_but(struct dsu_pmu *dsu_pmu, int cpu)
dsu_pmu           238 drivers/perf/arm_dsu_pmu.c 			 &dsu_pmu->associated_cpus, cpu_online_mask);
dsu_pmu           242 drivers/perf/arm_dsu_pmu.c static inline bool dsu_pmu_counter_valid(struct dsu_pmu *dsu_pmu, u32 idx)
dsu_pmu           244 drivers/perf/arm_dsu_pmu.c 	return (idx < dsu_pmu->num_counters) ||
dsu_pmu           252 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           256 drivers/perf/arm_dsu_pmu.c 				 &dsu_pmu->associated_cpus)))
dsu_pmu           259 drivers/perf/arm_dsu_pmu.c 	if (!dsu_pmu_counter_valid(dsu_pmu, idx)) {
dsu_pmu           265 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_irqsave(&dsu_pmu->pmu_lock, flags);
dsu_pmu           270 drivers/perf/arm_dsu_pmu.c 	raw_spin_unlock_irqrestore(&dsu_pmu->pmu_lock, flags);
dsu_pmu           278 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           282 drivers/perf/arm_dsu_pmu.c 			 &dsu_pmu->associated_cpus)))
dsu_pmu           285 drivers/perf/arm_dsu_pmu.c 	if (!dsu_pmu_counter_valid(dsu_pmu, idx)) {
dsu_pmu           291 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_irqsave(&dsu_pmu->pmu_lock, flags);
dsu_pmu           296 drivers/perf/arm_dsu_pmu.c 	raw_spin_unlock_irqrestore(&dsu_pmu->pmu_lock, flags);
dsu_pmu           304 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           313 drivers/perf/arm_dsu_pmu.c 	idx = find_first_zero_bit(used_mask, dsu_pmu->num_counters);
dsu_pmu           314 drivers/perf/arm_dsu_pmu.c 	if (idx >= dsu_pmu->num_counters)
dsu_pmu           320 drivers/perf/arm_dsu_pmu.c static void dsu_pmu_enable_counter(struct dsu_pmu *dsu_pmu, int idx)
dsu_pmu           326 drivers/perf/arm_dsu_pmu.c static void dsu_pmu_disable_counter(struct dsu_pmu *dsu_pmu, int idx)
dsu_pmu           332 drivers/perf/arm_dsu_pmu.c static inline void dsu_pmu_set_event(struct dsu_pmu *dsu_pmu,
dsu_pmu           338 drivers/perf/arm_dsu_pmu.c 	if (!dsu_pmu_counter_valid(dsu_pmu, idx)) {
dsu_pmu           344 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_irqsave(&dsu_pmu->pmu_lock, flags);
dsu_pmu           346 drivers/perf/arm_dsu_pmu.c 	raw_spin_unlock_irqrestore(&dsu_pmu->pmu_lock, flags);
dsu_pmu           394 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = dev;
dsu_pmu           395 drivers/perf/arm_dsu_pmu.c 	struct dsu_hw_events *hw_events = &dsu_pmu->hw_events;
dsu_pmu           417 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           424 drivers/perf/arm_dsu_pmu.c 		dsu_pmu_set_event(dsu_pmu, event);
dsu_pmu           426 drivers/perf/arm_dsu_pmu.c 	dsu_pmu_enable_counter(dsu_pmu, event->hw.idx);
dsu_pmu           431 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           435 drivers/perf/arm_dsu_pmu.c 	dsu_pmu_disable_counter(dsu_pmu, event->hw.idx);
dsu_pmu           442 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           443 drivers/perf/arm_dsu_pmu.c 	struct dsu_hw_events *hw_events = &dsu_pmu->hw_events;
dsu_pmu           448 drivers/perf/arm_dsu_pmu.c 					   &dsu_pmu->associated_cpus)))
dsu_pmu           468 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           469 drivers/perf/arm_dsu_pmu.c 	struct dsu_hw_events *hw_events = &dsu_pmu->hw_events;
dsu_pmu           483 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(pmu);
dsu_pmu           486 drivers/perf/arm_dsu_pmu.c 	if (bitmap_empty(dsu_pmu->hw_events.used_mask, DSU_PMU_MAX_HW_CNTRS))
dsu_pmu           489 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_irqsave(&dsu_pmu->pmu_lock, flags);
dsu_pmu           493 drivers/perf/arm_dsu_pmu.c 	raw_spin_unlock_irqrestore(&dsu_pmu->pmu_lock, flags);
dsu_pmu           500 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(pmu);
dsu_pmu           502 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_irqsave(&dsu_pmu->pmu_lock, flags);
dsu_pmu           506 drivers/perf/arm_dsu_pmu.c 	raw_spin_unlock_irqrestore(&dsu_pmu->pmu_lock, flags);
dsu_pmu           545 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = to_dsu_pmu(event->pmu);
dsu_pmu           552 drivers/perf/arm_dsu_pmu.c 		dev_dbg(dsu_pmu->pmu.dev, "Can't support sampling events\n");
dsu_pmu           558 drivers/perf/arm_dsu_pmu.c 		dev_dbg(dsu_pmu->pmu.dev, "Can't support per-task counters\n");
dsu_pmu           563 drivers/perf/arm_dsu_pmu.c 		dev_dbg(dsu_pmu->pmu.dev, "Can't support filtering\n");
dsu_pmu           567 drivers/perf/arm_dsu_pmu.c 	if (!cpumask_test_cpu(event->cpu, &dsu_pmu->associated_cpus)) {
dsu_pmu           568 drivers/perf/arm_dsu_pmu.c 		dev_dbg(dsu_pmu->pmu.dev,
dsu_pmu           578 drivers/perf/arm_dsu_pmu.c 	event->cpu = cpumask_first(&dsu_pmu->active_cpu);
dsu_pmu           588 drivers/perf/arm_dsu_pmu.c static struct dsu_pmu *dsu_pmu_alloc(struct platform_device *pdev)
dsu_pmu           590 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu;
dsu_pmu           592 drivers/perf/arm_dsu_pmu.c 	dsu_pmu = devm_kzalloc(&pdev->dev, sizeof(*dsu_pmu), GFP_KERNEL);
dsu_pmu           593 drivers/perf/arm_dsu_pmu.c 	if (!dsu_pmu)
dsu_pmu           596 drivers/perf/arm_dsu_pmu.c 	raw_spin_lock_init(&dsu_pmu->pmu_lock);
dsu_pmu           601 drivers/perf/arm_dsu_pmu.c 	dsu_pmu->num_counters = -1;
dsu_pmu           602 drivers/perf/arm_dsu_pmu.c 	return dsu_pmu;
dsu_pmu           637 drivers/perf/arm_dsu_pmu.c static void dsu_pmu_probe_pmu(struct dsu_pmu *dsu_pmu)
dsu_pmu           647 drivers/perf/arm_dsu_pmu.c 	dsu_pmu->num_counters = num_counters;
dsu_pmu           648 drivers/perf/arm_dsu_pmu.c 	if (!dsu_pmu->num_counters)
dsu_pmu           652 drivers/perf/arm_dsu_pmu.c 	bitmap_from_arr32(dsu_pmu->cpmceid_bitmap, cpmceid,
dsu_pmu           656 drivers/perf/arm_dsu_pmu.c static void dsu_pmu_set_active_cpu(int cpu, struct dsu_pmu *dsu_pmu)
dsu_pmu           658 drivers/perf/arm_dsu_pmu.c 	cpumask_set_cpu(cpu, &dsu_pmu->active_cpu);
dsu_pmu           659 drivers/perf/arm_dsu_pmu.c 	if (irq_set_affinity_hint(dsu_pmu->irq, &dsu_pmu->active_cpu))
dsu_pmu           667 drivers/perf/arm_dsu_pmu.c static void dsu_pmu_init_pmu(struct dsu_pmu *dsu_pmu)
dsu_pmu           669 drivers/perf/arm_dsu_pmu.c 	if (dsu_pmu->num_counters == -1)
dsu_pmu           670 drivers/perf/arm_dsu_pmu.c 		dsu_pmu_probe_pmu(dsu_pmu);
dsu_pmu           678 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu;
dsu_pmu           682 drivers/perf/arm_dsu_pmu.c 	dsu_pmu = dsu_pmu_alloc(pdev);
dsu_pmu           683 drivers/perf/arm_dsu_pmu.c 	if (IS_ERR(dsu_pmu))
dsu_pmu           684 drivers/perf/arm_dsu_pmu.c 		return PTR_ERR(dsu_pmu);
dsu_pmu           686 drivers/perf/arm_dsu_pmu.c 	rc = dsu_pmu_dt_get_cpus(pdev->dev.of_node, &dsu_pmu->associated_cpus);
dsu_pmu           703 drivers/perf/arm_dsu_pmu.c 			      IRQF_NOBALANCING, name, dsu_pmu);
dsu_pmu           709 drivers/perf/arm_dsu_pmu.c 	dsu_pmu->irq = irq;
dsu_pmu           710 drivers/perf/arm_dsu_pmu.c 	platform_set_drvdata(pdev, dsu_pmu);
dsu_pmu           712 drivers/perf/arm_dsu_pmu.c 						&dsu_pmu->cpuhp_node);
dsu_pmu           716 drivers/perf/arm_dsu_pmu.c 	dsu_pmu->pmu = (struct pmu) {
dsu_pmu           732 drivers/perf/arm_dsu_pmu.c 	rc = perf_pmu_register(&dsu_pmu->pmu, name, -1);
dsu_pmu           735 drivers/perf/arm_dsu_pmu.c 						 &dsu_pmu->cpuhp_node);
dsu_pmu           736 drivers/perf/arm_dsu_pmu.c 		irq_set_affinity_hint(dsu_pmu->irq, NULL);
dsu_pmu           744 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = platform_get_drvdata(pdev);
dsu_pmu           746 drivers/perf/arm_dsu_pmu.c 	perf_pmu_unregister(&dsu_pmu->pmu);
dsu_pmu           747 drivers/perf/arm_dsu_pmu.c 	cpuhp_state_remove_instance(dsu_pmu_cpuhp_state, &dsu_pmu->cpuhp_node);
dsu_pmu           748 drivers/perf/arm_dsu_pmu.c 	irq_set_affinity_hint(dsu_pmu->irq, NULL);
dsu_pmu           769 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = hlist_entry_safe(node, struct dsu_pmu,
dsu_pmu           772 drivers/perf/arm_dsu_pmu.c 	if (!cpumask_test_cpu(cpu, &dsu_pmu->associated_cpus))
dsu_pmu           776 drivers/perf/arm_dsu_pmu.c 	if (!cpumask_empty(&dsu_pmu->active_cpu))
dsu_pmu           779 drivers/perf/arm_dsu_pmu.c 	dsu_pmu_init_pmu(dsu_pmu);
dsu_pmu           780 drivers/perf/arm_dsu_pmu.c 	dsu_pmu_set_active_cpu(cpu, dsu_pmu);
dsu_pmu           788 drivers/perf/arm_dsu_pmu.c 	struct dsu_pmu *dsu_pmu = hlist_entry_safe(node, struct dsu_pmu,
dsu_pmu           791 drivers/perf/arm_dsu_pmu.c 	if (!cpumask_test_and_clear_cpu(cpu, &dsu_pmu->active_cpu))
dsu_pmu           794 drivers/perf/arm_dsu_pmu.c 	dst = dsu_pmu_get_online_cpu_any_but(dsu_pmu, cpu);
dsu_pmu           797 drivers/perf/arm_dsu_pmu.c 		irq_set_affinity_hint(dsu_pmu->irq, NULL);
dsu_pmu           801 drivers/perf/arm_dsu_pmu.c 	perf_pmu_migrate_context(&dsu_pmu->pmu, cpu, dst);
dsu_pmu           802 drivers/perf/arm_dsu_pmu.c 	dsu_pmu_set_active_cpu(dst, dsu_pmu);