.. | .. |
---|
46 | 46 | { |
---|
47 | 47 | /* returns the bit offset of the performance counter register */ |
---|
48 | 48 | switch (boot_cpu_data.x86_vendor) { |
---|
| 49 | + case X86_VENDOR_HYGON: |
---|
49 | 50 | case X86_VENDOR_AMD: |
---|
50 | 51 | if (msr >= MSR_F15H_PERF_CTR) |
---|
51 | 52 | return (msr - MSR_F15H_PERF_CTR) >> 1; |
---|
.. | .. |
---|
62 | 63 | case 15: |
---|
63 | 64 | return msr - MSR_P4_BPU_PERFCTR0; |
---|
64 | 65 | } |
---|
| 66 | + break; |
---|
| 67 | + case X86_VENDOR_ZHAOXIN: |
---|
| 68 | + case X86_VENDOR_CENTAUR: |
---|
| 69 | + return msr - MSR_ARCH_PERFMON_PERFCTR0; |
---|
65 | 70 | } |
---|
66 | 71 | return 0; |
---|
67 | 72 | } |
---|
.. | .. |
---|
74 | 79 | { |
---|
75 | 80 | /* returns the bit offset of the event selection register */ |
---|
76 | 81 | switch (boot_cpu_data.x86_vendor) { |
---|
| 82 | + case X86_VENDOR_HYGON: |
---|
77 | 83 | case X86_VENDOR_AMD: |
---|
78 | 84 | if (msr >= MSR_F15H_PERF_CTL) |
---|
79 | 85 | return (msr - MSR_F15H_PERF_CTL) >> 1; |
---|
.. | .. |
---|
90 | 96 | case 15: |
---|
91 | 97 | return msr - MSR_P4_BSU_ESCR0; |
---|
92 | 98 | } |
---|
| 99 | + break; |
---|
| 100 | + case X86_VENDOR_ZHAOXIN: |
---|
| 101 | + case X86_VENDOR_CENTAUR: |
---|
| 102 | + return msr - MSR_ARCH_PERFMON_EVENTSEL0; |
---|
93 | 103 | } |
---|
94 | 104 | return 0; |
---|
95 | 105 | |
---|