metag: perf: fix build on Meta1
authorJames Hogan <james.hogan@imgtec.com>
Mon, 22 Jul 2013 14:18:34 +0000 (15:18 +0100)
committerJames Hogan <james.hogan@imgtec.com>
Tue, 3 May 2016 08:25:30 +0000 (09:25 +0100)
Meta1 doesn't support PERF_ICORE or PERF_CHAN registers resulting in
build errors due to missing definitions. Fix this with an ifdef matching
the one in asm/metag_mem.h.

The build errors (found by a randconfig):

arch/metag/kernel/perf/perf_event.c: In function 'metag_pmu_enable_counter':
arch/metag/kernel/perf/perf_event.c:639: error: 'PERF_ICORE0' undeclared (first use in this function)
arch/metag/kernel/perf/perf_event.c:639: error: (Each undeclared identifier is reported only once
arch/metag/kernel/perf/perf_event.c:639: error: for each function it appears in.)
arch/metag/kernel/perf/perf_event.c:643: error: 'PERF_CHAN0' undeclared (first use in this function)

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: linux-metag@vger.kernel.org
arch/metag/kernel/perf/perf_event.c

index 2478ec6d23c9e3e0b14954d670f9f96e925c8f6d..33a365f924be359e13b0e24c39d8546a4d0c54b8 100644 (file)
@@ -618,6 +618,8 @@ static void metag_pmu_enable_counter(struct hw_perf_event *event, int idx)
 
        /* Check for a core internal or performance channel event. */
        if (tmp) {
+               /* PERF_ICORE/PERF_CHAN only exist since Meta2 */
+#ifdef METAC_2_1
                void *perf_addr;
 
                /*
@@ -640,6 +642,7 @@ static void metag_pmu_enable_counter(struct hw_perf_event *event, int idx)
 
                if (perf_addr)
                        metag_out32((config & 0x0f), perf_addr);
+#endif
 
                /*
                 * Now we use the high nibble as the performance event to