diff options
Diffstat (limited to 'arch/parisc/kernel/perf.c')
| -rw-r--r-- | arch/parisc/kernel/perf.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c index b3ad0a505b87..44670d6e06f4 100644 --- a/arch/parisc/kernel/perf.c +++ b/arch/parisc/kernel/perf.c | |||
| @@ -746,7 +746,8 @@ static int perf_write_image(uint64_t *memaddr) | |||
| 746 | uint64_t *bptr; | 746 | uint64_t *bptr; |
| 747 | uint32_t dwords; | 747 | uint32_t dwords; |
| 748 | uint32_t *intrigue_rdr; | 748 | uint32_t *intrigue_rdr; |
| 749 | uint64_t *intrigue_bitmask, tmp64, proc_hpa; | 749 | uint64_t *intrigue_bitmask, tmp64; |
| 750 | void __iomem *runway; | ||
| 750 | struct rdr_tbl_ent *tentry; | 751 | struct rdr_tbl_ent *tentry; |
| 751 | int i; | 752 | int i; |
| 752 | 753 | ||
| @@ -798,15 +799,16 @@ static int perf_write_image(uint64_t *memaddr) | |||
| 798 | return -1; | 799 | return -1; |
| 799 | } | 800 | } |
| 800 | 801 | ||
| 801 | proc_hpa = cpu_device->hpa; | 802 | runway = ioremap(cpu_device->hpa.start, 4096); |
| 802 | 803 | ||
| 803 | /* Merge intrigue bits into Runway STATUS 0 */ | 804 | /* Merge intrigue bits into Runway STATUS 0 */ |
| 804 | tmp64 = __raw_readq(proc_hpa + RUNWAY_STATUS) & 0xffecfffffffffffful; | 805 | tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful; |
| 805 | __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), proc_hpa + RUNWAY_STATUS); | 806 | __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), |
| 807 | runway + RUNWAY_STATUS); | ||
| 806 | 808 | ||
| 807 | /* Write RUNWAY DEBUG registers */ | 809 | /* Write RUNWAY DEBUG registers */ |
| 808 | for (i = 0; i < 8; i++) { | 810 | for (i = 0; i < 8; i++) { |
| 809 | __raw_writeq(*memaddr++, proc_hpa + RUNWAY_DEBUG + i); | 811 | __raw_writeq(*memaddr++, runway + RUNWAY_DEBUG); |
| 810 | } | 812 | } |
| 811 | 813 | ||
| 812 | return 0; | 814 | return 0; |
