From: Greg Kroah-Hartman Date: Thu, 2 Nov 2023 17:38:59 +0000 (+0100) Subject: drop some unneeded omap documentation fixes X-Git-Tag: v4.14.329~57 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a70d758ae3ab8ed824512f15c3e382417ea5b5e5;p=thirdparty%2Fkernel%2Fstable-queue.git drop some unneeded omap documentation fixes --- diff --git a/queue-5.10/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch b/queue-5.10/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch deleted file mode 100644 index c54285531c4..00000000000 --- a/queue-5.10/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 79717ef45f51ab97a06693a3e7480b02d351f2de Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 6 Oct 2023 17:16:03 -0700 -Subject: ARM: OMAP: timer32K: fix all kernel-doc warnings - -From: Randy Dunlap - -[ Upstream commit 7eeca8ccd1066c68d6002dbbe26433f8c17c53eb ] - -Fix kernel-doc warnings reported by the kernel test robot: - -timer32k.c:186: warning: cannot understand function prototype: 'struct timespec64 persistent_ts; ' -timer32k.c:191: warning: Function parameter or member 'ts' not described in 'omap_read_persistent_clock64' -timer32k.c:216: warning: Function parameter or member 'vbase' not described in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'pbase' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'size' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: No description found for return value of 'omap_init_clocksource_32k' - -Fixes: a451570c008b ("ARM: OMAP: 32k counter: Provide y2038-safe omap_read_persistent_clock() replacement") -Fixes: 1fe97c8f6a1d ("ARM: OMAP: Make OMAP clocksource source selection using kernel param") -Signed-off-by: Randy Dunlap -Reported-by: kernel test robot -Closes: https://lore.kernel.org/all/202310070106.8QSyJOm3-lkp@intel.com/ -Cc: Arnd Bergmann -Cc: Vaibhav Hiremath -Cc: Felipe Balbi -Cc: Tony Lindgren -Cc: Xunlei Pang -Cc: John Stultz -Cc: Ingo Molnar -Cc: Aaro Koskinen -Cc: Janusz Krzysztofik -Cc: linux-omap@vger.kernel.org -Cc: linux-arm-kernel@lists.infradead.org -Message-ID: <20231007001603.24972-1-rdunlap@infradead.org> -Signed-off-by: Tony Lindgren -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/timer32k.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 11958ccd894dc..747899083f238 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -176,17 +176,18 @@ static u64 notrace omap_32k_read_sched_clock(void) - return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; - } - -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ - /** - * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * @ts: &struct timespec64 for the returned time - * - * Reads the time from a source which isn't disabled during PM, the - * 32k sync timer. Convert the cycles elapsed since last read into - * nsecs and adds to a monotonically increasing timespec64. - */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- - static void omap_read_persistent_clock64(struct timespec64 *ts) - { - unsigned long long nsecs; -@@ -206,10 +207,9 @@ static void omap_read_persistent_clock64(struct timespec64 *ts) - /** - * omap_init_clocksource_32k - setup and register counter 32k as a - * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -+ * @vbase: base addr of counter_32k module - * -- * Returns 0 upon success or negative error code upon failure. -+ * Returns: %0 upon success or negative error code upon failure. - * - */ - int __init omap_init_clocksource_32k(void __iomem *vbase) --- -2.42.0 - diff --git a/queue-5.10/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch b/queue-5.10/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch deleted file mode 100644 index 435e822f031..00000000000 --- a/queue-5.10/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch +++ /dev/null @@ -1,346 +0,0 @@ -From 85166f1cd7f9b5757bd09dd8ec1afdbbe93640ce Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 Sep 2019 13:57:31 +0200 -Subject: ARM: omap1: move 32k counter from plat-omap to mach-omap1 - -From: Arnd Bergmann - -[ Upstream commit d379e8899a8da1041c347ae5b792773c48a559a9 ] - -omap2 stopped using this code with commit 8d39ff3d1696 ("ARM: OMAP2+: -Remove unused legacy code for timer"), so just move it to mach-omap1 now, -along with the other half of that driver. - -Acked-by: Tony Lindgren -Signed-off-by: Arnd Bergmann -Stable-dep-of: 7eeca8ccd106 ("ARM: OMAP: timer32K: fix all kernel-doc warnings") -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/Kconfig | 16 +++ - arch/arm/mach-omap1/timer32k.c | 96 ++++++++++++++- - arch/arm/plat-omap/Kconfig | 17 --- - arch/arm/plat-omap/Makefile | 2 +- - arch/arm/plat-omap/counter_32k.c | 114 ------------------ - arch/arm/plat-omap/include/plat/counter-32k.h | 1 - - 6 files changed, 110 insertions(+), 136 deletions(-) - delete mode 100644 arch/arm/plat-omap/counter_32k.c - delete mode 100644 arch/arm/plat-omap/include/plat/counter-32k.h - -diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig -index 9536b8f3c07db..5b28f747c10d2 100644 ---- a/arch/arm/mach-omap1/Kconfig -+++ b/arch/arm/mach-omap1/Kconfig -@@ -53,6 +53,22 @@ config OMAP_MUX_WARNINGS - to change the pin multiplexing setup. When there are no warnings - printed, it's safe to deselect OMAP_MUX for your product. - -+config OMAP_32K_TIMER -+ bool "Use 32KHz timer" -+ depends on ARCH_OMAP16XX -+ default ARCH_OMAP16XX -+ help -+ Select this option if you want to enable the OMAP 32KHz timer. -+ This timer saves power compared to the OMAP_MPU_TIMER, and has -+ support for no tick during idle. The 32KHz timer provides less -+ intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -+ currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -+ -+ On OMAP2PLUS this value is only used for CONFIG_HZ and -+ CLOCK_TICK_RATE compile time calculation. -+ The actual timer selection is done in the board file -+ through the (DT_)MACHINE_START structure. -+ - comment "OMAP Board Type" - - config MACH_OMAP_INNOVATOR -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 780fdf03c3cee..11958ccd894dc 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -45,15 +45,13 @@ - #include - #include - #include -+#include - - #include - #include - #include - --#include -- - #include -- - #include "common.h" - - /* -@@ -159,6 +157,98 @@ static __init void omap_init_32k_timer(void) - OMAP_32K_TICKS_PER_SEC, 1, 0xfffffffe); - } - -+/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ -+#define OMAP2_32KSYNCNT_REV_OFF 0x0 -+#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) -+#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 -+#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -+ -+/* -+ * 32KHz clocksource ... always available, on pretty most chips except -+ * OMAP 730 and 1510. Other timers could be used as clocksources, with -+ * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -+ * but systems won't necessarily want to spend resources that way. -+ */ -+static void __iomem *sync32k_cnt_reg; -+ -+static u64 notrace omap_32k_read_sched_clock(void) -+{ -+ return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+} -+ -+/** -+ * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * -+ * Reads the time from a source which isn't disabled during PM, the -+ * 32k sync timer. Convert the cycles elapsed since last read into -+ * nsecs and adds to a monotonically increasing timespec64. -+ */ -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ -+static void omap_read_persistent_clock64(struct timespec64 *ts) -+{ -+ unsigned long long nsecs; -+ cycles_t last_cycles; -+ -+ last_cycles = cycles; -+ cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+ -+ nsecs = clocksource_cyc2ns(cycles - last_cycles, -+ persistent_mult, persistent_shift); -+ -+ timespec64_add_ns(&persistent_ts, nsecs); -+ -+ *ts = persistent_ts; -+} -+ -+/** -+ * omap_init_clocksource_32k - setup and register counter 32k as a -+ * kernel clocksource -+ * @pbase: base addr of counter_32k module -+ * @size: size of counter_32k to map -+ * -+ * Returns 0 upon success or negative error code upon failure. -+ * -+ */ -+int __init omap_init_clocksource_32k(void __iomem *vbase) -+{ -+ int ret; -+ -+ /* -+ * 32k sync Counter IP register offsets vary between the -+ * highlander version and the legacy ones. -+ * The 'SCHEME' bits(30-31) of the revision register is used -+ * to identify the version. -+ */ -+ if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -+ OMAP2_32KSYNCNT_REV_SCHEME) -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -+ else -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -+ -+ /* -+ * 120000 rough estimate from the calculations in -+ * __clocksource_update_freq_scale. -+ */ -+ clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -+ 32768, NSEC_PER_SEC, 120000); -+ -+ ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -+ 250, 32, clocksource_mmio_readl_up); -+ if (ret) { -+ pr_err("32k_counter: can't register clocksource\n"); -+ return ret; -+ } -+ -+ sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -+ register_persistent_clock(omap_read_persistent_clock64); -+ pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -+ -+ return 0; -+} -+ - /* - * --------------------------------------------------------------------------- - * Timer initialization -diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig -index 272670ef1e92d..dfa19d5030e35 100644 ---- a/arch/arm/plat-omap/Kconfig -+++ b/arch/arm/plat-omap/Kconfig -@@ -72,23 +72,6 @@ config OMAP_MPU_TIMER - timer provides more intra-tick resolution than the 32KHz timer, - but consumes more power. - --config OMAP_32K_TIMER -- bool "Use 32KHz timer" -- depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS -- default y if (ARCH_OMAP16XX || ARCH_OMAP2PLUS) -- help -- Select this option if you want to enable the OMAP 32KHz timer. -- This timer saves power compared to the OMAP_MPU_TIMER, and has -- support for no tick during idle. The 32KHz timer provides less -- intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -- currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -- -- On OMAP2PLUS this value is only used for CONFIG_HZ and -- CLOCK_TICK_RATE compile time calculation. -- The actual timer selection is done in the board file -- through the (DT_)MACHINE_START structure. -- -- - config OMAP3_L2_AUX_SECURE_SAVE_RESTORE - bool "OMAP3 HS/EMU save and restore for L2 AUX control register" - depends on ARCH_OMAP3 && PM -diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile -index 371f2ed00eda2..98a7b607873a2 100644 ---- a/arch/arm/plat-omap/Makefile -+++ b/arch/arm/plat-omap/Makefile -@@ -6,7 +6,7 @@ - ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-omap/include - - # Common support --obj-y := sram.o dma.o counter_32k.o -+obj-y := sram.o dma.o - - # omap_device support (OMAP2+ only at the moment) - -diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c -deleted file mode 100644 -index 7a729ade21057..0000000000000 ---- a/arch/arm/plat-omap/counter_32k.c -+++ /dev/null -@@ -1,114 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0-only --/* -- * OMAP 32ksynctimer/counter_32k-related code -- * -- * Copyright (C) 2009 Texas Instruments -- * Copyright (C) 2010 Nokia Corporation -- * Tony Lindgren -- * Added OMAP4 support - Santosh Shilimkar -- * -- * NOTE: This timer is not the same timer as the old OMAP1 MPU timer. -- */ --#include --#include --#include --#include --#include --#include --#include -- --#include -- --#include -- --/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ --#define OMAP2_32KSYNCNT_REV_OFF 0x0 --#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) --#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 --#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -- --/* -- * 32KHz clocksource ... always available, on pretty most chips except -- * OMAP 730 and 1510. Other timers could be used as clocksources, with -- * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -- * but systems won't necessarily want to spend resources that way. -- */ --static void __iomem *sync32k_cnt_reg; -- --static u64 notrace omap_32k_read_sched_clock(void) --{ -- return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; --} -- --/** -- * omap_read_persistent_clock64 - Return time from a persistent clock. -- * -- * Reads the time from a source which isn't disabled during PM, the -- * 32k sync timer. Convert the cycles elapsed since last read into -- * nsecs and adds to a monotonically increasing timespec64. -- */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- --static void omap_read_persistent_clock64(struct timespec64 *ts) --{ -- unsigned long long nsecs; -- cycles_t last_cycles; -- -- last_cycles = cycles; -- cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -- -- nsecs = clocksource_cyc2ns(cycles - last_cycles, -- persistent_mult, persistent_shift); -- -- timespec64_add_ns(&persistent_ts, nsecs); -- -- *ts = persistent_ts; --} -- --/** -- * omap_init_clocksource_32k - setup and register counter 32k as a -- * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -- * -- * Returns 0 upon success or negative error code upon failure. -- * -- */ --int __init omap_init_clocksource_32k(void __iomem *vbase) --{ -- int ret; -- -- /* -- * 32k sync Counter IP register offsets vary between the -- * highlander version and the legacy ones. -- * The 'SCHEME' bits(30-31) of the revision register is used -- * to identify the version. -- */ -- if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -- OMAP2_32KSYNCNT_REV_SCHEME) -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -- else -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -- -- /* -- * 120000 rough estimate from the calculations in -- * __clocksource_update_freq_scale. -- */ -- clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -- 32768, NSEC_PER_SEC, 120000); -- -- ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -- 250, 32, clocksource_mmio_readl_up); -- if (ret) { -- pr_err("32k_counter: can't register clocksource\n"); -- return ret; -- } -- -- sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -- register_persistent_clock(omap_read_persistent_clock64); -- pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -- -- return 0; --} -diff --git a/arch/arm/plat-omap/include/plat/counter-32k.h b/arch/arm/plat-omap/include/plat/counter-32k.h -deleted file mode 100644 -index da000d482ff26..0000000000000 ---- a/arch/arm/plat-omap/include/plat/counter-32k.h -+++ /dev/null -@@ -1 +0,0 @@ --int omap_init_clocksource_32k(void __iomem *vbase); --- -2.42.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 1cf0720e5a8..9493c23d7ec 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -6,8 +6,6 @@ virtio-mmio-fix-memory-leak-of-vm_dev.patch mm-page_alloc-correct-start-page-when-guard-page-debug-is-enabled.patch mmc-renesas_sdhi-use-custom-mask-for-tmio_mask_all.patch drm-dp_mst-fix-null-deref-in-get_mst_branch_device_b.patch -arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch -arm-omap-timer32k-fix-all-kernel-doc-warnings.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_tx-whi.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_rx-whi.patch treewide-spelling-fix-in-comment.patch diff --git a/queue-5.15/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch b/queue-5.15/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch deleted file mode 100644 index 994df65d41e..00000000000 --- a/queue-5.15/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch +++ /dev/null @@ -1,84 +0,0 @@ -From fc2bd66cfaee20c2988212bff3829003155b0da0 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 6 Oct 2023 17:16:03 -0700 -Subject: ARM: OMAP: timer32K: fix all kernel-doc warnings - -From: Randy Dunlap - -[ Upstream commit 7eeca8ccd1066c68d6002dbbe26433f8c17c53eb ] - -Fix kernel-doc warnings reported by the kernel test robot: - -timer32k.c:186: warning: cannot understand function prototype: 'struct timespec64 persistent_ts; ' -timer32k.c:191: warning: Function parameter or member 'ts' not described in 'omap_read_persistent_clock64' -timer32k.c:216: warning: Function parameter or member 'vbase' not described in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'pbase' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'size' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: No description found for return value of 'omap_init_clocksource_32k' - -Fixes: a451570c008b ("ARM: OMAP: 32k counter: Provide y2038-safe omap_read_persistent_clock() replacement") -Fixes: 1fe97c8f6a1d ("ARM: OMAP: Make OMAP clocksource source selection using kernel param") -Signed-off-by: Randy Dunlap -Reported-by: kernel test robot -Closes: https://lore.kernel.org/all/202310070106.8QSyJOm3-lkp@intel.com/ -Cc: Arnd Bergmann -Cc: Vaibhav Hiremath -Cc: Felipe Balbi -Cc: Tony Lindgren -Cc: Xunlei Pang -Cc: John Stultz -Cc: Ingo Molnar -Cc: Aaro Koskinen -Cc: Janusz Krzysztofik -Cc: linux-omap@vger.kernel.org -Cc: linux-arm-kernel@lists.infradead.org -Message-ID: <20231007001603.24972-1-rdunlap@infradead.org> -Signed-off-by: Tony Lindgren -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/timer32k.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 11958ccd894dc..747899083f238 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -176,17 +176,18 @@ static u64 notrace omap_32k_read_sched_clock(void) - return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; - } - -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ - /** - * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * @ts: &struct timespec64 for the returned time - * - * Reads the time from a source which isn't disabled during PM, the - * 32k sync timer. Convert the cycles elapsed since last read into - * nsecs and adds to a monotonically increasing timespec64. - */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- - static void omap_read_persistent_clock64(struct timespec64 *ts) - { - unsigned long long nsecs; -@@ -206,10 +207,9 @@ static void omap_read_persistent_clock64(struct timespec64 *ts) - /** - * omap_init_clocksource_32k - setup and register counter 32k as a - * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -+ * @vbase: base addr of counter_32k module - * -- * Returns 0 upon success or negative error code upon failure. -+ * Returns: %0 upon success or negative error code upon failure. - * - */ - int __init omap_init_clocksource_32k(void __iomem *vbase) --- -2.42.0 - diff --git a/queue-5.15/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch b/queue-5.15/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch deleted file mode 100644 index 6dc85a4246f..00000000000 --- a/queue-5.15/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch +++ /dev/null @@ -1,346 +0,0 @@ -From 6c253f436849316a5f057130c516efc4a5af9b8e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 Sep 2019 13:57:31 +0200 -Subject: ARM: omap1: move 32k counter from plat-omap to mach-omap1 - -From: Arnd Bergmann - -[ Upstream commit d379e8899a8da1041c347ae5b792773c48a559a9 ] - -omap2 stopped using this code with commit 8d39ff3d1696 ("ARM: OMAP2+: -Remove unused legacy code for timer"), so just move it to mach-omap1 now, -along with the other half of that driver. - -Acked-by: Tony Lindgren -Signed-off-by: Arnd Bergmann -Stable-dep-of: 7eeca8ccd106 ("ARM: OMAP: timer32K: fix all kernel-doc warnings") -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/Kconfig | 16 +++ - arch/arm/mach-omap1/timer32k.c | 96 ++++++++++++++- - arch/arm/plat-omap/Kconfig | 17 --- - arch/arm/plat-omap/Makefile | 2 +- - arch/arm/plat-omap/counter_32k.c | 114 ------------------ - arch/arm/plat-omap/include/plat/counter-32k.h | 1 - - 6 files changed, 110 insertions(+), 136 deletions(-) - delete mode 100644 arch/arm/plat-omap/counter_32k.c - delete mode 100644 arch/arm/plat-omap/include/plat/counter-32k.h - -diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig -index 208c700c2455c..04155b5ce9786 100644 ---- a/arch/arm/mach-omap1/Kconfig -+++ b/arch/arm/mach-omap1/Kconfig -@@ -53,6 +53,22 @@ config OMAP_MUX_WARNINGS - to change the pin multiplexing setup. When there are no warnings - printed, it's safe to deselect OMAP_MUX for your product. - -+config OMAP_32K_TIMER -+ bool "Use 32KHz timer" -+ depends on ARCH_OMAP16XX -+ default ARCH_OMAP16XX -+ help -+ Select this option if you want to enable the OMAP 32KHz timer. -+ This timer saves power compared to the OMAP_MPU_TIMER, and has -+ support for no tick during idle. The 32KHz timer provides less -+ intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -+ currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -+ -+ On OMAP2PLUS this value is only used for CONFIG_HZ and -+ CLOCK_TICK_RATE compile time calculation. -+ The actual timer selection is done in the board file -+ through the (DT_)MACHINE_START structure. -+ - comment "OMAP Board Type" - - config MACH_OMAP_INNOVATOR -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 780fdf03c3cee..11958ccd894dc 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -45,15 +45,13 @@ - #include - #include - #include -+#include - - #include - #include - #include - --#include -- - #include -- - #include "common.h" - - /* -@@ -159,6 +157,98 @@ static __init void omap_init_32k_timer(void) - OMAP_32K_TICKS_PER_SEC, 1, 0xfffffffe); - } - -+/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ -+#define OMAP2_32KSYNCNT_REV_OFF 0x0 -+#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) -+#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 -+#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -+ -+/* -+ * 32KHz clocksource ... always available, on pretty most chips except -+ * OMAP 730 and 1510. Other timers could be used as clocksources, with -+ * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -+ * but systems won't necessarily want to spend resources that way. -+ */ -+static void __iomem *sync32k_cnt_reg; -+ -+static u64 notrace omap_32k_read_sched_clock(void) -+{ -+ return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+} -+ -+/** -+ * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * -+ * Reads the time from a source which isn't disabled during PM, the -+ * 32k sync timer. Convert the cycles elapsed since last read into -+ * nsecs and adds to a monotonically increasing timespec64. -+ */ -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ -+static void omap_read_persistent_clock64(struct timespec64 *ts) -+{ -+ unsigned long long nsecs; -+ cycles_t last_cycles; -+ -+ last_cycles = cycles; -+ cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+ -+ nsecs = clocksource_cyc2ns(cycles - last_cycles, -+ persistent_mult, persistent_shift); -+ -+ timespec64_add_ns(&persistent_ts, nsecs); -+ -+ *ts = persistent_ts; -+} -+ -+/** -+ * omap_init_clocksource_32k - setup and register counter 32k as a -+ * kernel clocksource -+ * @pbase: base addr of counter_32k module -+ * @size: size of counter_32k to map -+ * -+ * Returns 0 upon success or negative error code upon failure. -+ * -+ */ -+int __init omap_init_clocksource_32k(void __iomem *vbase) -+{ -+ int ret; -+ -+ /* -+ * 32k sync Counter IP register offsets vary between the -+ * highlander version and the legacy ones. -+ * The 'SCHEME' bits(30-31) of the revision register is used -+ * to identify the version. -+ */ -+ if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -+ OMAP2_32KSYNCNT_REV_SCHEME) -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -+ else -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -+ -+ /* -+ * 120000 rough estimate from the calculations in -+ * __clocksource_update_freq_scale. -+ */ -+ clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -+ 32768, NSEC_PER_SEC, 120000); -+ -+ ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -+ 250, 32, clocksource_mmio_readl_up); -+ if (ret) { -+ pr_err("32k_counter: can't register clocksource\n"); -+ return ret; -+ } -+ -+ sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -+ register_persistent_clock(omap_read_persistent_clock64); -+ pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -+ -+ return 0; -+} -+ - /* - * --------------------------------------------------------------------------- - * Timer initialization -diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig -index 272670ef1e92d..dfa19d5030e35 100644 ---- a/arch/arm/plat-omap/Kconfig -+++ b/arch/arm/plat-omap/Kconfig -@@ -72,23 +72,6 @@ config OMAP_MPU_TIMER - timer provides more intra-tick resolution than the 32KHz timer, - but consumes more power. - --config OMAP_32K_TIMER -- bool "Use 32KHz timer" -- depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS -- default y if (ARCH_OMAP16XX || ARCH_OMAP2PLUS) -- help -- Select this option if you want to enable the OMAP 32KHz timer. -- This timer saves power compared to the OMAP_MPU_TIMER, and has -- support for no tick during idle. The 32KHz timer provides less -- intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -- currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -- -- On OMAP2PLUS this value is only used for CONFIG_HZ and -- CLOCK_TICK_RATE compile time calculation. -- The actual timer selection is done in the board file -- through the (DT_)MACHINE_START structure. -- -- - config OMAP3_L2_AUX_SECURE_SAVE_RESTORE - bool "OMAP3 HS/EMU save and restore for L2 AUX control register" - depends on ARCH_OMAP3 && PM -diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile -index 371f2ed00eda2..98a7b607873a2 100644 ---- a/arch/arm/plat-omap/Makefile -+++ b/arch/arm/plat-omap/Makefile -@@ -6,7 +6,7 @@ - ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-omap/include - - # Common support --obj-y := sram.o dma.o counter_32k.o -+obj-y := sram.o dma.o - - # omap_device support (OMAP2+ only at the moment) - -diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c -deleted file mode 100644 -index 7a729ade21057..0000000000000 ---- a/arch/arm/plat-omap/counter_32k.c -+++ /dev/null -@@ -1,114 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0-only --/* -- * OMAP 32ksynctimer/counter_32k-related code -- * -- * Copyright (C) 2009 Texas Instruments -- * Copyright (C) 2010 Nokia Corporation -- * Tony Lindgren -- * Added OMAP4 support - Santosh Shilimkar -- * -- * NOTE: This timer is not the same timer as the old OMAP1 MPU timer. -- */ --#include --#include --#include --#include --#include --#include --#include -- --#include -- --#include -- --/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ --#define OMAP2_32KSYNCNT_REV_OFF 0x0 --#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) --#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 --#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -- --/* -- * 32KHz clocksource ... always available, on pretty most chips except -- * OMAP 730 and 1510. Other timers could be used as clocksources, with -- * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -- * but systems won't necessarily want to spend resources that way. -- */ --static void __iomem *sync32k_cnt_reg; -- --static u64 notrace omap_32k_read_sched_clock(void) --{ -- return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; --} -- --/** -- * omap_read_persistent_clock64 - Return time from a persistent clock. -- * -- * Reads the time from a source which isn't disabled during PM, the -- * 32k sync timer. Convert the cycles elapsed since last read into -- * nsecs and adds to a monotonically increasing timespec64. -- */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- --static void omap_read_persistent_clock64(struct timespec64 *ts) --{ -- unsigned long long nsecs; -- cycles_t last_cycles; -- -- last_cycles = cycles; -- cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -- -- nsecs = clocksource_cyc2ns(cycles - last_cycles, -- persistent_mult, persistent_shift); -- -- timespec64_add_ns(&persistent_ts, nsecs); -- -- *ts = persistent_ts; --} -- --/** -- * omap_init_clocksource_32k - setup and register counter 32k as a -- * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -- * -- * Returns 0 upon success or negative error code upon failure. -- * -- */ --int __init omap_init_clocksource_32k(void __iomem *vbase) --{ -- int ret; -- -- /* -- * 32k sync Counter IP register offsets vary between the -- * highlander version and the legacy ones. -- * The 'SCHEME' bits(30-31) of the revision register is used -- * to identify the version. -- */ -- if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -- OMAP2_32KSYNCNT_REV_SCHEME) -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -- else -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -- -- /* -- * 120000 rough estimate from the calculations in -- * __clocksource_update_freq_scale. -- */ -- clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -- 32768, NSEC_PER_SEC, 120000); -- -- ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -- 250, 32, clocksource_mmio_readl_up); -- if (ret) { -- pr_err("32k_counter: can't register clocksource\n"); -- return ret; -- } -- -- sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -- register_persistent_clock(omap_read_persistent_clock64); -- pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -- -- return 0; --} -diff --git a/arch/arm/plat-omap/include/plat/counter-32k.h b/arch/arm/plat-omap/include/plat/counter-32k.h -deleted file mode 100644 -index da000d482ff26..0000000000000 ---- a/arch/arm/plat-omap/include/plat/counter-32k.h -+++ /dev/null -@@ -1 +0,0 @@ --int omap_init_clocksource_32k(void __iomem *vbase); --- -2.42.0 - diff --git a/queue-5.15/series b/queue-5.15/series index 0b638abe371..2886ee1a01a 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -17,8 +17,6 @@ vsock-virtio-factor-our-the-code-to-initialize-and-d.patch vsock-virtio-add-support-for-device-suspend-resume.patch vsock-virtio-initialize-the_virtio_vsock-before-usin.patch drm-dp_mst-fix-null-deref-in-get_mst_branch_device_b.patch -arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch -arm-omap-timer32k-fix-all-kernel-doc-warnings.patch firmware-imx-dsp-fix-use_after_free-in-imx_dsp_setup.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_tx-whi.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_tx-whi.patch-409 diff --git a/queue-5.4/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch b/queue-5.4/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch deleted file mode 100644 index b002d5d4cd0..00000000000 --- a/queue-5.4/arm-omap-timer32k-fix-all-kernel-doc-warnings.patch +++ /dev/null @@ -1,84 +0,0 @@ -From c77ba9e4eefd9aebee0a921784bac31581104cd2 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 6 Oct 2023 17:16:03 -0700 -Subject: ARM: OMAP: timer32K: fix all kernel-doc warnings - -From: Randy Dunlap - -[ Upstream commit 7eeca8ccd1066c68d6002dbbe26433f8c17c53eb ] - -Fix kernel-doc warnings reported by the kernel test robot: - -timer32k.c:186: warning: cannot understand function prototype: 'struct timespec64 persistent_ts; ' -timer32k.c:191: warning: Function parameter or member 'ts' not described in 'omap_read_persistent_clock64' -timer32k.c:216: warning: Function parameter or member 'vbase' not described in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'pbase' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: Excess function parameter 'size' description in 'omap_init_clocksource_32k' -timer32k.c:216: warning: No description found for return value of 'omap_init_clocksource_32k' - -Fixes: a451570c008b ("ARM: OMAP: 32k counter: Provide y2038-safe omap_read_persistent_clock() replacement") -Fixes: 1fe97c8f6a1d ("ARM: OMAP: Make OMAP clocksource source selection using kernel param") -Signed-off-by: Randy Dunlap -Reported-by: kernel test robot -Closes: https://lore.kernel.org/all/202310070106.8QSyJOm3-lkp@intel.com/ -Cc: Arnd Bergmann -Cc: Vaibhav Hiremath -Cc: Felipe Balbi -Cc: Tony Lindgren -Cc: Xunlei Pang -Cc: John Stultz -Cc: Ingo Molnar -Cc: Aaro Koskinen -Cc: Janusz Krzysztofik -Cc: linux-omap@vger.kernel.org -Cc: linux-arm-kernel@lists.infradead.org -Message-ID: <20231007001603.24972-1-rdunlap@infradead.org> -Signed-off-by: Tony Lindgren -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/timer32k.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 11958ccd894dc..747899083f238 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -176,17 +176,18 @@ static u64 notrace omap_32k_read_sched_clock(void) - return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; - } - -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ - /** - * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * @ts: &struct timespec64 for the returned time - * - * Reads the time from a source which isn't disabled during PM, the - * 32k sync timer. Convert the cycles elapsed since last read into - * nsecs and adds to a monotonically increasing timespec64. - */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- - static void omap_read_persistent_clock64(struct timespec64 *ts) - { - unsigned long long nsecs; -@@ -206,10 +207,9 @@ static void omap_read_persistent_clock64(struct timespec64 *ts) - /** - * omap_init_clocksource_32k - setup and register counter 32k as a - * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -+ * @vbase: base addr of counter_32k module - * -- * Returns 0 upon success or negative error code upon failure. -+ * Returns: %0 upon success or negative error code upon failure. - * - */ - int __init omap_init_clocksource_32k(void __iomem *vbase) --- -2.42.0 - diff --git a/queue-5.4/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch b/queue-5.4/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch deleted file mode 100644 index 280e024f902..00000000000 --- a/queue-5.4/arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch +++ /dev/null @@ -1,346 +0,0 @@ -From 1f137417252d2bf3728978d1db09c7cbabf0dd73 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 20 Sep 2019 13:57:31 +0200 -Subject: ARM: omap1: move 32k counter from plat-omap to mach-omap1 - -From: Arnd Bergmann - -[ Upstream commit d379e8899a8da1041c347ae5b792773c48a559a9 ] - -omap2 stopped using this code with commit 8d39ff3d1696 ("ARM: OMAP2+: -Remove unused legacy code for timer"), so just move it to mach-omap1 now, -along with the other half of that driver. - -Acked-by: Tony Lindgren -Signed-off-by: Arnd Bergmann -Stable-dep-of: 7eeca8ccd106 ("ARM: OMAP: timer32K: fix all kernel-doc warnings") -Signed-off-by: Sasha Levin ---- - arch/arm/mach-omap1/Kconfig | 16 +++ - arch/arm/mach-omap1/timer32k.c | 96 ++++++++++++++- - arch/arm/plat-omap/Kconfig | 17 --- - arch/arm/plat-omap/Makefile | 2 +- - arch/arm/plat-omap/counter_32k.c | 114 ------------------ - arch/arm/plat-omap/include/plat/counter-32k.h | 1 - - 6 files changed, 110 insertions(+), 136 deletions(-) - delete mode 100644 arch/arm/plat-omap/counter_32k.c - delete mode 100644 arch/arm/plat-omap/include/plat/counter-32k.h - -diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig -index 2a17dc1d122c0..60f4362034540 100644 ---- a/arch/arm/mach-omap1/Kconfig -+++ b/arch/arm/mach-omap1/Kconfig -@@ -59,6 +59,22 @@ config OMAP_MUX_WARNINGS - to change the pin multiplexing setup. When there are no warnings - printed, it's safe to deselect OMAP_MUX for your product. - -+config OMAP_32K_TIMER -+ bool "Use 32KHz timer" -+ depends on ARCH_OMAP16XX -+ default ARCH_OMAP16XX -+ help -+ Select this option if you want to enable the OMAP 32KHz timer. -+ This timer saves power compared to the OMAP_MPU_TIMER, and has -+ support for no tick during idle. The 32KHz timer provides less -+ intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -+ currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -+ -+ On OMAP2PLUS this value is only used for CONFIG_HZ and -+ CLOCK_TICK_RATE compile time calculation. -+ The actual timer selection is done in the board file -+ through the (DT_)MACHINE_START structure. -+ - comment "OMAP Board Type" - depends on ARCH_OMAP1 - -diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c -index 780fdf03c3cee..11958ccd894dc 100644 ---- a/arch/arm/mach-omap1/timer32k.c -+++ b/arch/arm/mach-omap1/timer32k.c -@@ -45,15 +45,13 @@ - #include - #include - #include -+#include - - #include - #include - #include - --#include -- - #include -- - #include "common.h" - - /* -@@ -159,6 +157,98 @@ static __init void omap_init_32k_timer(void) - OMAP_32K_TICKS_PER_SEC, 1, 0xfffffffe); - } - -+/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ -+#define OMAP2_32KSYNCNT_REV_OFF 0x0 -+#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) -+#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 -+#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -+ -+/* -+ * 32KHz clocksource ... always available, on pretty most chips except -+ * OMAP 730 and 1510. Other timers could be used as clocksources, with -+ * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -+ * but systems won't necessarily want to spend resources that way. -+ */ -+static void __iomem *sync32k_cnt_reg; -+ -+static u64 notrace omap_32k_read_sched_clock(void) -+{ -+ return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+} -+ -+/** -+ * omap_read_persistent_clock64 - Return time from a persistent clock. -+ * -+ * Reads the time from a source which isn't disabled during PM, the -+ * 32k sync timer. Convert the cycles elapsed since last read into -+ * nsecs and adds to a monotonically increasing timespec64. -+ */ -+static struct timespec64 persistent_ts; -+static cycles_t cycles; -+static unsigned int persistent_mult, persistent_shift; -+ -+static void omap_read_persistent_clock64(struct timespec64 *ts) -+{ -+ unsigned long long nsecs; -+ cycles_t last_cycles; -+ -+ last_cycles = cycles; -+ cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -+ -+ nsecs = clocksource_cyc2ns(cycles - last_cycles, -+ persistent_mult, persistent_shift); -+ -+ timespec64_add_ns(&persistent_ts, nsecs); -+ -+ *ts = persistent_ts; -+} -+ -+/** -+ * omap_init_clocksource_32k - setup and register counter 32k as a -+ * kernel clocksource -+ * @pbase: base addr of counter_32k module -+ * @size: size of counter_32k to map -+ * -+ * Returns 0 upon success or negative error code upon failure. -+ * -+ */ -+int __init omap_init_clocksource_32k(void __iomem *vbase) -+{ -+ int ret; -+ -+ /* -+ * 32k sync Counter IP register offsets vary between the -+ * highlander version and the legacy ones. -+ * The 'SCHEME' bits(30-31) of the revision register is used -+ * to identify the version. -+ */ -+ if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -+ OMAP2_32KSYNCNT_REV_SCHEME) -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -+ else -+ sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -+ -+ /* -+ * 120000 rough estimate from the calculations in -+ * __clocksource_update_freq_scale. -+ */ -+ clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -+ 32768, NSEC_PER_SEC, 120000); -+ -+ ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -+ 250, 32, clocksource_mmio_readl_up); -+ if (ret) { -+ pr_err("32k_counter: can't register clocksource\n"); -+ return ret; -+ } -+ -+ sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -+ register_persistent_clock(omap_read_persistent_clock64); -+ pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -+ -+ return 0; -+} -+ - /* - * --------------------------------------------------------------------------- - * Timer initialization -diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig -index 93fd7fc537cf4..faae8557cd12b 100644 ---- a/arch/arm/plat-omap/Kconfig -+++ b/arch/arm/plat-omap/Kconfig -@@ -72,23 +72,6 @@ config OMAP_MPU_TIMER - timer provides more intra-tick resolution than the 32KHz timer, - but consumes more power. - --config OMAP_32K_TIMER -- bool "Use 32KHz timer" -- depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS -- default y if (ARCH_OMAP16XX || ARCH_OMAP2PLUS) -- help -- Select this option if you want to enable the OMAP 32KHz timer. -- This timer saves power compared to the OMAP_MPU_TIMER, and has -- support for no tick during idle. The 32KHz timer provides less -- intra-tick resolution than OMAP_MPU_TIMER. The 32KHz timer is -- currently only available for OMAP16XX, 24XX, 34XX, OMAP4/5 and DRA7XX. -- -- On OMAP2PLUS this value is only used for CONFIG_HZ and -- CLOCK_TICK_RATE compile time calculation. -- The actual timer selection is done in the board file -- through the (DT_)MACHINE_START structure. -- -- - config OMAP3_L2_AUX_SECURE_SAVE_RESTORE - bool "OMAP3 HS/EMU save and restore for L2 AUX control register" - depends on ARCH_OMAP3 && PM -diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile -index 371f2ed00eda2..98a7b607873a2 100644 ---- a/arch/arm/plat-omap/Makefile -+++ b/arch/arm/plat-omap/Makefile -@@ -6,7 +6,7 @@ - ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-omap/include - - # Common support --obj-y := sram.o dma.o counter_32k.o -+obj-y := sram.o dma.o - - # omap_device support (OMAP2+ only at the moment) - -diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c -deleted file mode 100644 -index 7a729ade21057..0000000000000 ---- a/arch/arm/plat-omap/counter_32k.c -+++ /dev/null -@@ -1,114 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0-only --/* -- * OMAP 32ksynctimer/counter_32k-related code -- * -- * Copyright (C) 2009 Texas Instruments -- * Copyright (C) 2010 Nokia Corporation -- * Tony Lindgren -- * Added OMAP4 support - Santosh Shilimkar -- * -- * NOTE: This timer is not the same timer as the old OMAP1 MPU timer. -- */ --#include --#include --#include --#include --#include --#include --#include -- --#include -- --#include -- --/* OMAP2_32KSYNCNT_CR_OFF: offset of 32ksync counter register */ --#define OMAP2_32KSYNCNT_REV_OFF 0x0 --#define OMAP2_32KSYNCNT_REV_SCHEME (0x3 << 30) --#define OMAP2_32KSYNCNT_CR_OFF_LOW 0x10 --#define OMAP2_32KSYNCNT_CR_OFF_HIGH 0x30 -- --/* -- * 32KHz clocksource ... always available, on pretty most chips except -- * OMAP 730 and 1510. Other timers could be used as clocksources, with -- * higher resolution in free-running counter modes (e.g. 12 MHz xtal), -- * but systems won't necessarily want to spend resources that way. -- */ --static void __iomem *sync32k_cnt_reg; -- --static u64 notrace omap_32k_read_sched_clock(void) --{ -- return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; --} -- --/** -- * omap_read_persistent_clock64 - Return time from a persistent clock. -- * -- * Reads the time from a source which isn't disabled during PM, the -- * 32k sync timer. Convert the cycles elapsed since last read into -- * nsecs and adds to a monotonically increasing timespec64. -- */ --static struct timespec64 persistent_ts; --static cycles_t cycles; --static unsigned int persistent_mult, persistent_shift; -- --static void omap_read_persistent_clock64(struct timespec64 *ts) --{ -- unsigned long long nsecs; -- cycles_t last_cycles; -- -- last_cycles = cycles; -- cycles = sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; -- -- nsecs = clocksource_cyc2ns(cycles - last_cycles, -- persistent_mult, persistent_shift); -- -- timespec64_add_ns(&persistent_ts, nsecs); -- -- *ts = persistent_ts; --} -- --/** -- * omap_init_clocksource_32k - setup and register counter 32k as a -- * kernel clocksource -- * @pbase: base addr of counter_32k module -- * @size: size of counter_32k to map -- * -- * Returns 0 upon success or negative error code upon failure. -- * -- */ --int __init omap_init_clocksource_32k(void __iomem *vbase) --{ -- int ret; -- -- /* -- * 32k sync Counter IP register offsets vary between the -- * highlander version and the legacy ones. -- * The 'SCHEME' bits(30-31) of the revision register is used -- * to identify the version. -- */ -- if (readl_relaxed(vbase + OMAP2_32KSYNCNT_REV_OFF) & -- OMAP2_32KSYNCNT_REV_SCHEME) -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_HIGH; -- else -- sync32k_cnt_reg = vbase + OMAP2_32KSYNCNT_CR_OFF_LOW; -- -- /* -- * 120000 rough estimate from the calculations in -- * __clocksource_update_freq_scale. -- */ -- clocks_calc_mult_shift(&persistent_mult, &persistent_shift, -- 32768, NSEC_PER_SEC, 120000); -- -- ret = clocksource_mmio_init(sync32k_cnt_reg, "32k_counter", 32768, -- 250, 32, clocksource_mmio_readl_up); -- if (ret) { -- pr_err("32k_counter: can't register clocksource\n"); -- return ret; -- } -- -- sched_clock_register(omap_32k_read_sched_clock, 32, 32768); -- register_persistent_clock(omap_read_persistent_clock64); -- pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); -- -- return 0; --} -diff --git a/arch/arm/plat-omap/include/plat/counter-32k.h b/arch/arm/plat-omap/include/plat/counter-32k.h -deleted file mode 100644 -index da000d482ff26..0000000000000 ---- a/arch/arm/plat-omap/include/plat/counter-32k.h -+++ /dev/null -@@ -1 +0,0 @@ --int omap_init_clocksource_32k(void __iomem *vbase); --- -2.42.0 - diff --git a/queue-5.4/series b/queue-5.4/series index 2dcdfe160a2..6adf10ec4ed 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -4,8 +4,6 @@ mcb-return-actual-parsed-size-when-reading-chameleon.patch mcb-lpc-reallocate-memory-region-to-avoid-memory-ove.patch virtio_balloon-fix-endless-deflation-and-inflation-on-arm64.patch virtio-mmio-fix-memory-leak-of-vm_dev.patch -arm-omap1-move-32k-counter-from-plat-omap-to-mach-om.patch -arm-omap-timer32k-fix-all-kernel-doc-warnings.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_tx-whi.patch r8169-fix-the-kcsan-reported-data-race-in-rtl_rx-whi.patch treewide-spelling-fix-in-comment.patch