]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 6.1
authorSasha Levin <sashal@kernel.org>
Tue, 8 Apr 2025 00:42:39 +0000 (20:42 -0400)
committerSasha Levin <sashal@kernel.org>
Tue, 8 Apr 2025 00:42:39 +0000 (20:42 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.1/drm-amdgpu-gfx11-fix-num_mec.patch [new file with mode: 0644]
queue-6.1/series
queue-6.1/tty-serial-fsl_lpuart-disable-transmitter-before-cha.patch [new file with mode: 0644]
queue-6.1/tty-serial-fsl_lpuart-use-uartmodir-register-bits-fo.patch [new file with mode: 0644]

diff --git a/queue-6.1/drm-amdgpu-gfx11-fix-num_mec.patch b/queue-6.1/drm-amdgpu-gfx11-fix-num_mec.patch
new file mode 100644 (file)
index 0000000..fe151b6
--- /dev/null
@@ -0,0 +1,35 @@
+From 17cec6e226cc96f571217eff783ae61574e78697 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 26 Mar 2025 09:35:02 -0400
+Subject: drm/amdgpu/gfx11: fix num_mec
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+[ Upstream commit 4161050d47e1b083a7e1b0b875c9907e1a6f1f1f ]
+
+GC11 only has 1 mec.
+
+Fixes: 3d879e81f0f9 ("drm/amdgpu: add init support for GFX11 (v2)")
+Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
+index c76895cca4d9a..61e869839641e 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
+@@ -1301,7 +1301,7 @@ static int gfx_v11_0_sw_init(void *handle)
+               adev->gfx.me.num_me = 1;
+               adev->gfx.me.num_pipe_per_me = 1;
+               adev->gfx.me.num_queue_per_pipe = 1;
+-              adev->gfx.mec.num_mec = 2;
++              adev->gfx.mec.num_mec = 1;
+               adev->gfx.mec.num_pipe_per_mec = 4;
+               adev->gfx.mec.num_queue_per_pipe = 4;
+               break;
+-- 
+2.39.5
+
index 61e0f62150d84a48f905d25357b26925af789fc6..bdf0eb319427593fd69d4c8759522ea02fa3c58a 100644 (file)
@@ -167,3 +167,6 @@ ipv6-start-path-selection-from-the-first-nexthop.patch
 ipv6-do-not-consider-link-down-nexthops-in-path-sele.patch
 arcnet-add-null-check-in-com20020pci_probe.patch
 io_uring-filetable-ensure-node-switch-is-always-done-if-needed.patch
+drm-amdgpu-gfx11-fix-num_mec.patch
+tty-serial-fsl_lpuart-use-uartmodir-register-bits-fo.patch
+tty-serial-fsl_lpuart-disable-transmitter-before-cha.patch
diff --git a/queue-6.1/tty-serial-fsl_lpuart-disable-transmitter-before-cha.patch b/queue-6.1/tty-serial-fsl_lpuart-disable-transmitter-before-cha.patch
new file mode 100644 (file)
index 0000000..c921adf
--- /dev/null
@@ -0,0 +1,64 @@
+From c8a2feb2ebba20acafe1482a3cd59e6d6ed507f4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 12 Mar 2025 10:25:03 +0800
+Subject: tty: serial: fsl_lpuart: disable transmitter before changing RS485
+ related registers
+
+From: Sherry Sun <sherry.sun@nxp.com>
+
+[ Upstream commit f5cb528d6441eb860250a2f085773aac4f44085e ]
+
+According to the LPUART reference manual, TXRTSE and TXRTSPOL of MODIR
+register only can be changed when the transmitter is disabled.
+So disable the transmitter before changing RS485 related registers and
+re-enable it after the change is done.
+
+Fixes: 67b01837861c ("tty: serial: lpuart: Add RS485 support for 32-bit uart flavour")
+Cc: stable <stable@kernel.org>
+Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
+Reviewed-by: Frank Li <Frank.Li@nxp.com>
+Link: https://lore.kernel.org/r/20250312022503.1342990-1-sherry.sun@nxp.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/tty/serial/fsl_lpuart.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
+index e96354edff6e9..011f175936132 100644
+--- a/drivers/tty/serial/fsl_lpuart.c
++++ b/drivers/tty/serial/fsl_lpuart.c
+@@ -1395,6 +1395,19 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
+       unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
+                               & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE);
++      u32 ctrl;
++
++      /* TXRTSE and TXRTSPOL only can be changed when transmitter is disabled. */
++      ctrl = lpuart32_read(&sport->port, UARTCTRL);
++      if (ctrl & UARTCTRL_TE) {
++              /* wait for the transmit engine to complete */
++              lpuart32_wait_bit_set(&sport->port, UARTSTAT, UARTSTAT_TC);
++              lpuart32_write(&sport->port, ctrl & ~UARTCTRL_TE, UARTCTRL);
++
++              while (lpuart32_read(&sport->port, UARTCTRL) & UARTCTRL_TE)
++                      cpu_relax();
++      }
++
+       lpuart32_write(&sport->port, modem, UARTMODIR);
+       if (rs485->flags & SER_RS485_ENABLED) {
+@@ -1414,6 +1427,10 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
+       }
+       lpuart32_write(&sport->port, modem, UARTMODIR);
++
++      if (ctrl & UARTCTRL_TE)
++              lpuart32_write(&sport->port, ctrl, UARTCTRL);
++
+       return 0;
+ }
+-- 
+2.39.5
+
diff --git a/queue-6.1/tty-serial-fsl_lpuart-use-uartmodir-register-bits-fo.patch b/queue-6.1/tty-serial-fsl_lpuart-use-uartmodir-register-bits-fo.patch
new file mode 100644 (file)
index 0000000..0da5da2
--- /dev/null
@@ -0,0 +1,61 @@
+From ba320864b335b3037845cf34938a66e42a25e5be Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 14 Apr 2023 10:21:11 +0800
+Subject: tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32
+ platform
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Sherry Sun <sherry.sun@nxp.com>
+
+[ Upstream commit d57d56e4dddfb5c92cd81abf8922055bf0fb85a4 ]
+
+For lpuart32 platforms, UARTMODIR register is used instead of UARTMODEM.
+So here should configure the corresponding UARTMODIR register bits to
+avoid confusion.
+
+Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
+Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
+Link: https://lore.kernel.org/r/20230414022111.20896-1-sherry.sun@nxp.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Stable-dep-of: f5cb528d6441 ("tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers")
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/tty/serial/fsl_lpuart.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
+index f94c782638686..e96354edff6e9 100644
+--- a/drivers/tty/serial/fsl_lpuart.c
++++ b/drivers/tty/serial/fsl_lpuart.c
+@@ -1394,12 +1394,12 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
+                       struct lpuart_port, port);
+       unsigned long modem = lpuart32_read(&sport->port, UARTMODIR)
+-                              & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE);
++                              & ~(UARTMODIR_TXRTSPOL | UARTMODIR_TXRTSE);
+       lpuart32_write(&sport->port, modem, UARTMODIR);
+       if (rs485->flags & SER_RS485_ENABLED) {
+               /* Enable auto RS-485 RTS mode */
+-              modem |= UARTMODEM_TXRTSE;
++              modem |= UARTMODIR_TXRTSE;
+               /*
+                * The hardware defaults to RTS logic HIGH while transfer.
+@@ -1408,9 +1408,9 @@ static int lpuart32_config_rs485(struct uart_port *port, struct ktermios *termio
+                * Note: UART is assumed to be active high.
+                */
+               if (rs485->flags & SER_RS485_RTS_ON_SEND)
+-                      modem |= UARTMODEM_TXRTSPOL;
++                      modem |= UARTMODIR_TXRTSPOL;
+               else if (rs485->flags & SER_RS485_RTS_AFTER_SEND)
+-                      modem &= ~UARTMODEM_TXRTSPOL;
++                      modem &= ~UARTMODIR_TXRTSPOL;
+       }
+       lpuart32_write(&sport->port, modem, UARTMODIR);
+-- 
+2.39.5
+