Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a75fa323 authored by Punit Agrawal's avatar Punit Agrawal Committed by Neil Leeder
Browse files

drivers: cci: Export CCI PMU revision



The event numbering changed between revision r0 and r1 of the CCI
PMU. Expose this to userspace to allow tooling to handle the
differences in event numbers.

Change-Id: I89129ee934b7e86609f0c8dc62484df66c9aea54
Suggested-by: default avatarDrew Richardson <Drew.Richardson@arm.com>
Signed-off-by: default avatarPunit Agrawal <punit.agrawal@arm.com>
Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Git-commit: dc4409c0062d7e40fe523abc06310281ba666369
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


Signed-off-by: default avatarNeil Leeder <nleeder@codeaurora.org>
parent 3c5288ae
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@

#define DRIVER_NAME		"CCI-400"
#define DRIVER_NAME_PMU		DRIVER_NAME " PMU"
#define PMU_NAME		"CCI_400"

#define CCI_PORT_CTRL		0x0
#define CCI_CTRL_STATUS		0xc
@@ -162,6 +161,15 @@ static struct pmu_port_event_ranges port_event_range[] = {
	},
};

/*
 * Export different PMU names for the different revisions so userspace knows
 * because the event ids are different
 */
static char *const pmu_names[] = {
	[CCI_REV_R0] = "CCI_400",
	[CCI_REV_R1] = "CCI_400_r1",
};

struct cci_pmu_drv_data {
	void __iomem *base;
	struct arm_pmu *cci_pmu;
@@ -520,7 +528,7 @@ static void pmu_write_counter(struct perf_event *event, u32 value)
static int cci_pmu_init(struct arm_pmu *cci_pmu, struct platform_device *pdev)
{
	*cci_pmu = (struct arm_pmu){
		.name             = PMU_NAME,
		.name		  = pmu_names[probe_cci_revision()],
		.max_period       = (1LLU << 32) - 1,
		.get_hw_events    = pmu_get_hw_events,
		.get_event_idx    = pmu_get_event_idx,