Re: [PATCH] ARM: dts: Fix timer regression for beagleboard revision c
From: Jarkko Nikula <jarkko.nikula@bitmer.com>
Date: 2021-12-11 15:33:11
Also in:
linux-omap, lkml
Hi Tony On 11/25/21 16:48, Tony Lindgren wrote:
Commit e428e250fde6 ("ARM: dts: Configure system timers for omap3")
caused a timer regression for beagleboard revision c where the system
clockevent stops working if omap3isp module is unloaded.
Turns out we still have beagleboard revisions a-b4 capacitor c70 quirks
applied that limit the usable timers for no good reason. This also affects
the power management as we use the system clock instead of the 32k clock
source.
Let's fix the issue by adding a new omap3-beagle-ab4.dts for the old timer
quirks. This allows us to remove the timer quirks for later beagleboard
revisions. We also need to update the related timer quirk check for the
correct compatible property.
Fixes: e428e250fde6 ("ARM: dts: Configure system timers for omap3")
Cc: linux-kernel@vger.kernel.org
Cc: Daniel Lezcano <redacted>
Cc: Thomas Gleixner <redacted>
Cc: Rob Herring <robh+dt@kernel.org>
Reported-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---.../devicetree/bindings/arm/omap/omap.txt | 3 ++ arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/omap3-beagle-ab4.dts | 47 +++++++++++++++++++ arch/arm/boot/dts/omap3-beagle.dts | 33 ------------- drivers/clocksource/timer-ti-dm-systimer.c | 2 +- 5 files changed, 52 insertions(+), 34 deletions(-) create mode 100644 arch/arm/boot/dts/omap3-beagle-ab4.dts
I must have some error in my methodology since I cannot see the issue
being fixed with your patch :-(
Testing at commit 6f513529296f ("Merge tag 'for-5.16-rc4-tag' of
git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux")
alias ma='nice make -j `getconf _NPROCESSORS_ONLN` ARCH=arm
CROSS_COMPILE="ccache arm-linux-gnueabihf-"'
make ARCH=arm omap2plus_defconfig
ma
cat arch/arm/boot/dts/omap3-beagle.dtb >>arch/arm/boot/zImage
ma LOADADDR=0x80008000 uImage
-> copy uImage & modules, boot
# rmmod omap3_isp
# sleep 1
-> This is the regression. Sleep is blocked until I hit keys over serial
console
rm vmlinux arch/arm/boot/zImage
patch -p1 </tmp/your-mail.eml
ma
cat arch/arm/boot/dts/omap3-beagle-ab4.dtb >>arch/arm/boot/zImage
ma LOADADDR=0x80008000 uImage
-> copy uImage & modules to µSD, boot
# rmmod omap3_isp
# sleep 1
-> is still blocked until I hit keys over serial console
When I compare the dmesg this is the only difference (along with "linux
version" line) before user space starts. I.e. timer configuration is the
same in both.
[ 0.000000] OF: fdt: Machine model: TI OMAP3 BeagleBoard
->
[ 0.000000] OF: fdt: Machine model: TI OMAP3 BeagleBoard A to B4
Jarkko