mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
I have changed the way the patches are generated a bit. Instead of using orange-pi branch from megous tree for 6.6 kernel, I have used the following kernel branches a83t-suspend, af8133j, anx, audio, axp, cam, drm, err, fixes, mbus, modem, opi3, pb, pinetab, pp, ppkb, samuel, speed, tbs-a711, ths These branches were carefully chosen to include only allwinner related patches and remove importing of the rockchip related patches into the allwinner kernel. Following patches are modified to fix patch application failure - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch - patches.armbian/arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch - patches.armbian/arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch - patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch - patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1.patch Following patches are modified because of kernel api change to fix compilation failure - patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch - patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch
49 lines
2.3 KiB
Diff
49 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: The-going <48602507+The-going@users.noreply.github.com>
|
|
Date: Fri, 28 Jan 2022 14:18:17 +0300
|
|
Subject: drv:clocksource:arm_arch_timer fix a64 timejump
|
|
|
|
---
|
|
drivers/clocksource/arm_arch_timer.c | 25 ++++++----
|
|
1 file changed, 14 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
|
|
index 7dd2c615bce2..fae1985407ab 100644
|
|
--- a/drivers/clocksource/arm_arch_timer.c
|
|
+++ b/drivers/clocksource/arm_arch_timer.c
|
|
@@ -383,17 +383,20 @@ static u64 notrace arm64_858921_read_cntvct_el0(void)
|
|
* with all ones or all zeros in the low bits. Bound the loop by the maximum
|
|
* number of CPU cycles in 3 consecutive 24 MHz counter periods.
|
|
*/
|
|
-#define __sun50i_a64_read_reg(reg) ({ \
|
|
- u64 _val; \
|
|
- int _retries = 150; \
|
|
- \
|
|
- do { \
|
|
- _val = read_sysreg(reg); \
|
|
- _retries--; \
|
|
- } while (((_val + 1) & GENMASK(8, 0)) <= 1 && _retries); \
|
|
- \
|
|
- WARN_ON_ONCE(!_retries); \
|
|
- _val; \
|
|
+#define __sun50i_a64_read_reg(reg) ({ \
|
|
+ register u64 _tries = 5, _old, _new; \
|
|
+ \
|
|
+ do { \
|
|
+ if (unlikely(_tries < 3)) \
|
|
+ isb(); \
|
|
+ _old = read_sysreg(reg); \
|
|
+ _new = read_sysreg(reg); \
|
|
+ } while (unlikely((_new - _old) >> 4) && --_tries); \
|
|
+ \
|
|
+ if (unlikely(!_tries)) \
|
|
+ pr_err("(cpu %d) returning possibly incorrect counter value %llx (%llx)\n", \
|
|
+ smp_processor_id() + 1, _new, _old); \
|
|
+ _new; \
|
|
})
|
|
|
|
static u64 notrace sun50i_a64_read_cntpct_el0(void)
|
|
--
|
|
Armbian
|
|
|