<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/tty/serial/xilinx_uartps.c, branch linux-7.1.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.1.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.1.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2026-03-30T15:36:34+00:00</updated>
<entry>
<title>serial: xilinx_uartps: Drop unused include</title>
<updated>2026-03-30T15:36:34+00:00</updated>
<author>
<name>Andy Shevchenko</name>
<email>andriy.shevchenko@linux.intel.com</email>
</author>
<published>2026-03-20T22:08:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=da6dbbf11c01aba88233c5be247ed2918183b387'/>
<id>urn:sha1:da6dbbf11c01aba88233c5be247ed2918183b387</id>
<content type='text'>
This driver includes the legacy header &lt;linux/gpio.h&gt; but does
not use any symbols from it. Drop the inclusion.

Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Link: https://patch.msgid.link/20260320220827.3237499-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: xilinx_uartps: fix rs485 delay_rts_after_send</title>
<updated>2025-12-23T10:55:16+00:00</updated>
<author>
<name>j.turek</name>
<email>jakub.turek@elsta.tech</email>
</author>
<published>2025-12-21T10:32:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=267ee93c417e685d9f8e079e41c70ba6ee4df5a5'/>
<id>urn:sha1:267ee93c417e685d9f8e079e41c70ba6ee4df5a5</id>
<content type='text'>
RTS line control with delay should be triggered when there is no more
bytes in kfifo and hardware buffer is empty. Without this patch RTS
control is scheduled right after feeding hardware buffer and this is too
early.

RTS line may change state before hardware buffer is empty.

With this patch delayed RTS state change is triggered when function
cdns_uart_handle_tx is called from cdns_uart_isr on
CDNS_UART_IXR_TXEMPTY exactly when hardware completed transmission

Fixes: fccc9d9233f9 ("tty: serial: uartps: Add rs485 support to uartps driver")
Cc: stable &lt;stable@kernel.org&gt;
Link: https://patch.msgid.link/20251221103221.1971125-1-jakub.turek@elsta.tech
Signed-off-by: Jakub Turek  &lt;jakub.turek@elsta.tech&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: xilinx_uartps: drop cdns_uart::cdns_uart_driver</title>
<updated>2025-11-21T17:31:27+00:00</updated>
<author>
<name>Jiri Slaby (SUSE)</name>
<email>jirislaby@kernel.org</email>
</author>
<published>2025-11-19T09:24:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6d4b55bf18c6dc74221f76770c8e4862f1a2b084'/>
<id>urn:sha1:6d4b55bf18c6dc74221f76770c8e4862f1a2b084</id>
<content type='text'>
Provided the uart driver is available globally, there is no need to
store a pointer to it in struct cdns_uart. Instead, use the global
cdns_uart_uart_driver in the code directly.

Signed-off-by: Jiri Slaby (SUSE) &lt;jirislaby@kernel.org&gt;
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Link: https://patch.msgid.link/20251119092457.826789-3-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: xilinx_uartps: read reg size from DTS</title>
<updated>2025-09-06T13:51:47+00:00</updated>
<author>
<name>Harshit Shah</name>
<email>hshah@axiado.com</email>
</author>
<published>2025-09-02T19:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b5e3277c0f1c3439dd02b58997c06201d0ee8dbf'/>
<id>urn:sha1:b5e3277c0f1c3439dd02b58997c06201d0ee8dbf</id>
<content type='text'>
Current implementation uses `CDNS_UART_REGISTER_SPACE(0x1000)`
for request_mem_region() and ioremap() in cdns_uart_request_port() API.

The cadence/xilinx IP has register space defined from offset 0x0 to 0x48.
It also mentions that the register map is defined as [6:0]. So, the upper
region may/maynot be used based on the IP integration.

In Axiado AX3000 SoC two UART instances are defined
0x100 apart. That is creating issue in some other instance due to overlap
with addresses.

Since, this address space is already being defined in the
devicetree, use the same when requesting the register space.

Fixes: 1f7055779001 ("arm64: dts: axiado: Add initial support for AX3000 SoC and eval board")
Acked-by: Michal Simek &lt;michal.simek@amd.com&gt;
Signed-off-by: Harshit Shah &lt;hshah@axiado.com&gt;
Link: https://lore.kernel.org/r/20250902-xilinx-uartps-reg-size-v3-1-d11cfa7258e3@axiado.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: xilinx_uartps: Use helper function hrtimer_update_function()</title>
<updated>2025-02-18T16:41:35+00:00</updated>
<author>
<name>Nam Cao</name>
<email>namcao@linutronix.de</email>
</author>
<published>2025-02-05T10:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=eee00df8e1f1f5648ed8f9e40e2bb54c2877344a'/>
<id>urn:sha1:eee00df8e1f1f5648ed8f9e40e2bb54c2877344a</id>
<content type='text'>
The field 'function' of struct hrtimer should not be changed directly, as
the write is lockless and a concurrent timer expiry might end up using the
wrong function pointer.

Switch to use hrtimer_update_function() which also performs runtime checks
that it is safe to modify the callback.

Signed-off-by: Nam Cao &lt;namcao@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: https://lore.kernel.org/all/af7823518fb060c6c97105a2513cfc61adbdf38f.1738746927.git.namcao@linutronix.de

</content>
</entry>
<entry>
<title>serial: xilinx_uartps: Switch to use hrtimer_setup()</title>
<updated>2025-02-18T10:19:03+00:00</updated>
<author>
<name>Nam Cao</name>
<email>namcao@linutronix.de</email>
</author>
<published>2025-02-05T10:46:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0852ca41ce1cf1559764cdc7bf17c68e8042daaa'/>
<id>urn:sha1:0852ca41ce1cf1559764cdc7bf17c68e8042daaa</id>
<content type='text'>
hrtimer_setup() takes the callback function pointer as argument and
initializes the timer completely.

Replace hrtimer_init() and the open coded initialization of
hrtimer::function with the new setup mechanism.

Patch was created by using Coccinelle.

Signed-off-by: Nam Cao &lt;namcao@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Zack Rusin &lt;zack.rusin@broadcom.com&gt;
Link: https://lore.kernel.org/all/4a028a23126b3350a5e243dcb49e1ef1b2a4b740.1738746904.git.namcao@linutronix.de

</content>
</entry>
<entry>
<title>tty: xilinx_uartps: split sysrq handling</title>
<updated>2025-01-13T05:46:50+00:00</updated>
<author>
<name>Sean Anderson</name>
<email>sean.anderson@linux.dev</email>
</author>
<published>2025-01-10T21:38:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b06f388994500297bb91be60ffaf6825ecfd2afe'/>
<id>urn:sha1:b06f388994500297bb91be60ffaf6825ecfd2afe</id>
<content type='text'>
lockdep detects the following circular locking dependency:

CPU 0                      CPU 1
========================== ============================
cdns_uart_isr()            printk()
  uart_port_lock(port)       console_lock()
			     cdns_uart_console_write()
                               if (!port-&gt;sysrq)
                                 uart_port_lock(port)
  uart_handle_break()
    port-&gt;sysrq = ...
  uart_handle_sysrq_char()
    printk()
      console_lock()

The fixed commit attempts to avoid this situation by only taking the
port lock in cdns_uart_console_write if port-&gt;sysrq unset. However, if
(as shown above) cdns_uart_console_write runs before port-&gt;sysrq is set,
then it will try to take the port lock anyway. This may result in a
deadlock.

Fix this by splitting sysrq handling into two parts. We use the prepare
helper under the port lock and defer handling until we release the lock.

Fixes: 74ea66d4ca06 ("tty: xuartps: Improve sysrq handling")
Signed-off-by: Sean Anderson &lt;sean.anderson@linux.dev&gt;
Cc: stable@vger.kernel.org # c980248179d: serial: xilinx_uartps: Use port lock wrappers
Acked-by: John Ogness &lt;john.ogness@linutronix.de&gt;
Link: https://lore.kernel.org/r/20250110213822.2107462-1-sean.anderson@linux.dev
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: Switch back to struct platform_driver::remove()</title>
<updated>2024-10-11T06:13:28+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@baylibre.com</email>
</author>
<published>2024-10-07T20:58:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5cbb9b1705ab8d98ed96affa4ec399023a22b755'/>
<id>urn:sha1:5cbb9b1705ab8d98ed96affa4ec399023a22b755</id>
<content type='text'>
After commit 0edb555a65d1 ("platform: Make platform_driver::remove()
return void") .remove() is (again) the right callback to implement for
platform drivers.

Convert all platform drivers below drivers/tty/serial to use .remove(),
with the eventual goal to drop struct platform_driver::remove_new(). As
.remove() and .remove_new() have the same prototypes, conversion is done
by just changing the structure member name in the driver initializer.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@baylibre.com&gt;
Link: https://lore.kernel.org/r/20241007205803.444994-7-u.kleine-koenig@baylibre.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: xilinx_uartps: Make cdns_rs485_supported static</title>
<updated>2024-09-03T08:46:58+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2024-08-19T12:01:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=68c5efd9dca4b0e97791d638004c803b8a3bb3d4'/>
<id>urn:sha1:68c5efd9dca4b0e97791d638004c803b8a3bb3d4</id>
<content type='text'>
The sparse tool complains as follows:

drivers/tty/serial/xilinx_uartps.c:222:21: warning:
	symbol 'cdns_rs485_supported' was not declared. Should it be static?

This symbol is not used outside xilinx_uartps.c, so marks it static.

Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Link: https://lore.kernel.org/r/20240819120107.3884973-1-ruanjinjie@huawei.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: uartps: Add support for uartps controller reset</title>
<updated>2024-05-04T16:11:05+00:00</updated>
<author>
<name>Manikanta Guntupalli</name>
<email>manikanta.guntupalli@amd.com</email>
</author>
<published>2024-04-25T06:23:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e3896be240780ccade65cc6cc8925c6f12e7f6c6'/>
<id>urn:sha1:e3896be240780ccade65cc6cc8925c6f12e7f6c6</id>
<content type='text'>
Add support for an optional reset for the uartps controller using
the reset driver. If the uartps node contains the "resets" property,
then cdns_uart_startup performs uartps controller non-pulse out of reset
and reset in exit path.

Signed-off-by: Manikanta Guntupalli &lt;manikanta.guntupalli@amd.com&gt;
Link: https://lore.kernel.org/r/20240425062358.1347684-4-manikanta.guntupalli@amd.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
