Skip to content

Commit

Permalink
sparc: Support all ultra3 and ultra4 derivatives.
Browse files Browse the repository at this point in the history
For the generic events we support, all of these chips have
the same encodings as ultra3i.

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Sep 27, 2009
1 parent 2ce4da2 commit 28e8f9b
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions arch/sparc/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,19 @@ struct sparc_pmu {
int lower_nop;
};

static const struct perf_event_map ultra3i_perfmon_event_map[] = {
static const struct perf_event_map ultra3_perfmon_event_map[] = {
[PERF_COUNT_HW_CPU_CYCLES] = { 0x0000, PIC_UPPER | PIC_LOWER },
[PERF_COUNT_HW_INSTRUCTIONS] = { 0x0001, PIC_UPPER | PIC_LOWER },
[PERF_COUNT_HW_CACHE_REFERENCES] = { 0x0009, PIC_LOWER },
[PERF_COUNT_HW_CACHE_MISSES] = { 0x0009, PIC_UPPER },
};

static const struct perf_event_map *ultra3i_event_map(int event_id)
static const struct perf_event_map *ultra3_event_map(int event_id)
{
return &ultra3i_perfmon_event_map[event_id];
return &ultra3_perfmon_event_map[event_id];
}

static const cache_map_t ultra3i_cache_map = {
static const cache_map_t ultra3_cache_map = {
[C(L1D)] = {
[C(OP_READ)] = {
[C(RESULT_ACCESS)] = { 0x09, PIC_LOWER, },
Expand Down Expand Up @@ -190,10 +190,10 @@ static const cache_map_t ultra3i_cache_map = {
},
};

static const struct sparc_pmu ultra3i_pmu = {
.event_map = ultra3i_event_map,
.cache_map = &ultra3i_cache_map,
.max_events = ARRAY_SIZE(ultra3i_perfmon_event_map),
static const struct sparc_pmu ultra3_pmu = {
.event_map = ultra3_event_map,
.cache_map = &ultra3_cache_map,
.max_events = ARRAY_SIZE(ultra3_perfmon_event_map),
.upper_shift = 11,
.lower_shift = 4,
.event_mask = 0x3f,
Expand Down Expand Up @@ -658,8 +658,11 @@ static __read_mostly struct notifier_block perf_event_nmi_notifier = {

static bool __init supported_pmu(void)
{
if (!strcmp(sparc_pmu_type, "ultra3i")) {
sparc_pmu = &ultra3i_pmu;
if (!strcmp(sparc_pmu_type, "ultra3") ||
!strcmp(sparc_pmu_type, "ultra3+") ||
!strcmp(sparc_pmu_type, "ultra3i") ||
!strcmp(sparc_pmu_type, "ultra4+")) {
sparc_pmu = &ultra3_pmu;
return true;
}
if (!strcmp(sparc_pmu_type, "niagara2")) {
Expand Down

0 comments on commit 28e8f9b

Please sign in to comment.