metag: perf: fix core internal / perf channel mux
authorJames Hogan <james.hogan@imgtec.com>
Wed, 27 Feb 2013 14:05:53 +0000 (14:05 +0000)
committerJames Hogan <james.hogan@imgtec.com>
Fri, 15 Mar 2013 13:19:11 +0000 (13:19 +0000)
The value written to the PERF_ICOREx or PERF_CHANx register to select
the performance events for the core internal and perf channel events was
(tmp & 0x0f), but tmp was set to (config & 0xf0) so it would always be
0. Correct it to use config instead of tmp.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
arch/metag/kernel/perf/perf_event.c

index a876d5ff3897c15247229bf363a9150fbbea1e3c..f38bf6d4dc55bb039d7f7b5cc8e3cda82190812f 100644 (file)
@@ -634,7 +634,7 @@ static void metag_pmu_enable_counter(struct hw_perf_event *event, int idx)
                        break;
                }
 
-               metag_out32((tmp & 0x0f), perf_addr);
+               metag_out32((config & 0x0f), perf_addr);
 
                /*
                 * Now we use the high nibble as the performance event to