diff options
Diffstat (limited to 'drivers/clocksource/arm_arch_timer.c')
-rw-r--r-- | drivers/clocksource/arm_arch_timer.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index 887f6d00a71d..bf9e9d76375e 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c | |||
@@ -270,6 +270,29 @@ static u64 notrace hisi_161010101_read_cntvct_el0(void) | |||
270 | { | 270 | { |
271 | return __hisi_161010101_read_reg(cntvct_el0); | 271 | return __hisi_161010101_read_reg(cntvct_el0); |
272 | } | 272 | } |
273 | |||
274 | static struct ate_acpi_oem_info hisi_161010101_oem_info[] = { | ||
275 | /* | ||
276 | * Note that trailing spaces are required to properly match | ||
277 | * the OEM table information. | ||
278 | */ | ||
279 | { | ||
280 | .oem_id = "HISI ", | ||
281 | .oem_table_id = "HIP05 ", | ||
282 | .oem_revision = 0, | ||
283 | }, | ||
284 | { | ||
285 | .oem_id = "HISI ", | ||
286 | .oem_table_id = "HIP06 ", | ||
287 | .oem_revision = 0, | ||
288 | }, | ||
289 | { | ||
290 | .oem_id = "HISI ", | ||
291 | .oem_table_id = "HIP07 ", | ||
292 | .oem_revision = 0, | ||
293 | }, | ||
294 | { /* Sentinel indicating the end of the OEM array */ }, | ||
295 | }; | ||
273 | #endif | 296 | #endif |
274 | 297 | ||
275 | #ifdef CONFIG_ARM64_ERRATUM_858921 | 298 | #ifdef CONFIG_ARM64_ERRATUM_858921 |
@@ -347,6 +370,16 @@ static const struct arch_timer_erratum_workaround ool_workarounds[] = { | |||
347 | .set_next_event_phys = erratum_set_next_event_tval_phys, | 370 | .set_next_event_phys = erratum_set_next_event_tval_phys, |
348 | .set_next_event_virt = erratum_set_next_event_tval_virt, | 371 | .set_next_event_virt = erratum_set_next_event_tval_virt, |
349 | }, | 372 | }, |
373 | { | ||
374 | .match_type = ate_match_acpi_oem_info, | ||
375 | .id = hisi_161010101_oem_info, | ||
376 | .desc = "HiSilicon erratum 161010101", | ||
377 | .read_cntp_tval_el0 = hisi_161010101_read_cntp_tval_el0, | ||
378 | .read_cntv_tval_el0 = hisi_161010101_read_cntv_tval_el0, | ||
379 | .read_cntvct_el0 = hisi_161010101_read_cntvct_el0, | ||
380 | .set_next_event_phys = erratum_set_next_event_tval_phys, | ||
381 | .set_next_event_virt = erratum_set_next_event_tval_virt, | ||
382 | }, | ||
350 | #endif | 383 | #endif |
351 | #ifdef CONFIG_ARM64_ERRATUM_858921 | 384 | #ifdef CONFIG_ARM64_ERRATUM_858921 |
352 | { | 385 | { |