From: Greg Kroah-Hartman Date: Sun, 22 Oct 2023 13:44:48 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v4.14.328~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=043db663b29ed90c7232c5e456dae15f67ba8be0;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: serial-8250-omap-convert-to-modern-pm-ops.patch serial-8250-omap-move-uart_write-inside-pm-section.patch --- diff --git a/queue-5.15/serial-8250-omap-convert-to-modern-pm-ops.patch b/queue-5.15/serial-8250-omap-convert-to-modern-pm-ops.patch new file mode 100644 index 00000000000..8910be46189 --- /dev/null +++ b/queue-5.15/serial-8250-omap-convert-to-modern-pm-ops.patch @@ -0,0 +1,80 @@ +From ae62c49c0ceff20dc7c1fad4a5b8f91d64b4f628 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Wed, 17 May 2023 22:20:07 +0200 +Subject: serial: 8250: omap: convert to modern PM ops + +From: Arnd Bergmann + +commit ae62c49c0ceff20dc7c1fad4a5b8f91d64b4f628 upstream. + +The new uart_write() function is only called from suspend/resume code, causing +a build warning when those are left out: + +drivers/tty/serial/8250/8250_omap.c:169:13: error: 'uart_write' defined but not used [-Werror=unused-function] + +Remove the #ifdefs and use the modern pm_ops/pm_sleep_ops and their wrappers +to let the compiler see where it's used but still drop the dead code. + +Fixes: 398cecc24846 ("serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()") +Signed-off-by: Arnd Bergmann +Reviewed-by: Tony Lindgren +Link: https://lore.kernel.org/r/20230517202012.634386-1-arnd@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/8250/8250_omap.c | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +--- a/drivers/tty/serial/8250/8250_omap.c ++++ b/drivers/tty/serial/8250/8250_omap.c +@@ -1503,7 +1503,6 @@ static int omap8250_remove(struct platfo + return 0; + } + +-#ifdef CONFIG_PM_SLEEP + static int omap8250_prepare(struct device *dev) + { + struct omap8250_priv *priv = dev_get_drvdata(dev); +@@ -1563,12 +1562,7 @@ static int omap8250_resume(struct device + + return 0; + } +-#else +-#define omap8250_prepare NULL +-#define omap8250_complete NULL +-#endif + +-#ifdef CONFIG_PM + static int omap8250_lost_context(struct uart_8250_port *up) + { + u32 val; +@@ -1680,7 +1674,6 @@ static int omap8250_runtime_resume(struc + schedule_work(&priv->qos_work); + return 0; + } +-#endif + + #ifdef CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP + static int __init omap8250_console_fixup(void) +@@ -1723,17 +1716,17 @@ console_initcall(omap8250_console_fixup) + #endif + + static const struct dev_pm_ops omap8250_dev_pm_ops = { +- SET_SYSTEM_SLEEP_PM_OPS(omap8250_suspend, omap8250_resume) +- SET_RUNTIME_PM_OPS(omap8250_runtime_suspend, ++ SYSTEM_SLEEP_PM_OPS(omap8250_suspend, omap8250_resume) ++ RUNTIME_PM_OPS(omap8250_runtime_suspend, + omap8250_runtime_resume, NULL) +- .prepare = omap8250_prepare, +- .complete = omap8250_complete, ++ .prepare = pm_sleep_ptr(omap8250_prepare), ++ .complete = pm_sleep_ptr(omap8250_complete), + }; + + static struct platform_driver omap8250_platform_driver = { + .driver = { + .name = "omap8250", +- .pm = &omap8250_dev_pm_ops, ++ .pm = pm_ptr(&omap8250_dev_pm_ops), + .of_match_table = omap8250_dt_ids, + }, + .probe = omap8250_probe, diff --git a/queue-5.15/serial-8250-omap-move-uart_write-inside-pm-section.patch b/queue-5.15/serial-8250-omap-move-uart_write-inside-pm-section.patch new file mode 100644 index 00000000000..72279f8c388 --- /dev/null +++ b/queue-5.15/serial-8250-omap-move-uart_write-inside-pm-section.patch @@ -0,0 +1,58 @@ +From c53aab20762255ee03e65dd66b3cba3887ad39d1 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Mon, 15 May 2023 08:57:06 +0200 +Subject: serial: 8250: omap: Move uart_write() inside PM section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Geert Uytterhoeven + +commit c53aab20762255ee03e65dd66b3cba3887ad39d1 upstream. + +If CONFIG_PM is not set (e.g. m68k/allmodconfig): + + drivers/tty/serial/8250/8250_omap.c:169:13: error: ‘uart_write’ defined but not used [-Werror=unused-function] + 169 | static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val) + | ^~~~~~~~~~ + +Fix tis by moving uart_write() inside the existing section protected +by #ifdef CONFIG_PM. + +Reported-by: noreply@ellerman.id.au +Link: http://kisskb.ellerman.id.au/kisskb/buildresult/14925095/ +Fixes: 398cecc24846e867 ("serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()") +Signed-off-by: Geert Uytterhoeven +Reviewed-by: Tony Lindgren +Link: https://lore.kernel.org/r/20230515065706.1723477-1-geert@linux-m68k.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/tty/serial/8250/8250_omap.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/tty/serial/8250/8250_omap.c ++++ b/drivers/tty/serial/8250/8250_omap.c +@@ -159,11 +159,6 @@ static u32 uart_read(struct omap8250_pri + return readl(priv->membase + (reg << OMAP_UART_REGSHIFT)); + } + +-static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val) +-{ +- writel(val, priv->membase + (reg << OMAP_UART_REGSHIFT)); +-} +- + /* + * Called on runtime PM resume path from omap8250_restore_regs(), and + * omap8250_set_mctrl(). +@@ -1589,6 +1584,11 @@ static int omap8250_lost_context(struct + return 0; + } + ++static void uart_write(struct omap8250_priv *priv, u32 reg, u32 val) ++{ ++ writel(val, priv->membase + (reg << OMAP_UART_REGSHIFT)); ++} ++ + /* TODO: in future, this should happen via API in drivers/reset/ */ + static int omap8250_soft_reset(struct device *dev) + { diff --git a/queue-5.15/series b/queue-5.15/series index d69a2bc6a68..4435f8b694e 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -133,3 +133,5 @@ platform-x86-asus-wmi-change-asus_wmi_brn_down-code-from-0x20-to-0x2e.patch platform-x86-asus-wmi-map-0x2a-code-ignore-0x2b-and-0x2c-events.patch gpio-vf610-set-value-before-the-direction-to-avoid-a-glitch.patch asoc-pxa-fix-a-memory-leak-in-probe.patch +serial-8250-omap-move-uart_write-inside-pm-section.patch +serial-8250-omap-convert-to-modern-pm-ops.patch