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

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

drivers: cci: Extend support to CCI revisions > r1p2



The driver queries the CCI IP revision to distinguish between r0 and r1
scheme for event numbers and currently supports upto version r1p2. To
minimise code churn every time there's a new version of the IP, assume
that event numbering doesn't change for revisions > r1p0 (which is
the case).

The driver will still need an update for future revisions that change
the event numbers.

Change-Id: I468944d914693bcb4a5885499623372433dc5fa3
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: 6fb0c4a74239416b572f088a827d5ff783902380
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


Signed-off-by: default avatarNeil Leeder <nleeder@codeaurora.org>
parent 9ac7f4bf
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -88,8 +88,7 @@ static unsigned long cci_ctrl_phys;

#define CCI_REV_R0		0
#define CCI_REV_R1		1
#define CCI_REV_R0_P4		4
#define CCI_REV_R1_P2		6
#define CCI_REV_R1_PX		5

#define CCI_PMU_EVT_SEL		0x000
#define CCI_PMU_CNTR		0x004
@@ -193,21 +192,16 @@ static int probe_cci_revision(void)
	rev = readl_relaxed(cci_ctrl_base + CCI_PID2) & CCI_PID2_REV_MASK;
	rev >>= CCI_PID2_REV_SHIFT;

	if (rev <= CCI_REV_R0_P4)
	if (rev < CCI_REV_R1_PX)
		return CCI_REV_R0;
	else if (rev <= CCI_REV_R1_P2)
	else
		return CCI_REV_R1;

	return -ENOENT;
}

static struct pmu_port_event_ranges *port_range_by_rev(void)
{
	int rev = probe_cci_revision();

	if (rev < 0)
		return NULL;

	return &port_event_range[rev];
}