lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230704135936.14697-4-ddrokosov@sberdevices.ru>
Date:   Tue, 4 Jul 2023 16:59:34 +0300
From:   Dmitry Rokosov <ddrokosov@...rdevices.ru>
To:     <gregkh@...uxfoundation.org>, <robh+dt@...nel.org>,
        <krzysztof.kozlowski+dt@...aro.org>, <conor+dt@...nel.org>,
        <neil.armstrong@...aro.org>, <jbrunet@...libre.com>,
        <jirislaby@...nel.org>, <khilman@...libre.com>,
        <martin.blumenstingl@...glemail.com>
CC:     <kelvin.zhang@...ogic.com>, <xianwei.zhao@...ogic.com>,
        <kernel@...rdevices.ru>, <rockosov@...il.com>,
        <linux-amlogic@...ts.infradead.org>,
        <linux-serial@...r.kernel.org>, <devicetree@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>,
        <linux-arm-kernel@...ts.infradead.org>,
        Dmitry Rokosov <ddrokosov@...rdevices.ru>
Subject: [PATCH v1 3/5] tty: serial: meson: apply ttyS devname instead of ttyAML for new SoCs

It is worth noting that the devname ttyS is a widely recognized tty name
and is commonly used by many uart device drivers. Given the established
usage and compatibility concerns, it may not be feasible to change the
devname for older SoCs. However, for new definitions, it is acceptable
and even recommended to use a new devname to help ensure clarity and
avoid any potential conflicts on lower or upper software levels. In
addition, modify the meson_uart_dt match data for g12a, a1, and s4 to
their appropriate values to ensure proper devname values and
functionality.

For more information please refer to IRC discussion at [1].

Links:
    [1]: https://libera.irclog.whitequark.org/linux-amlogic/2023-07-03

Signed-off-by: Dmitry Rokosov <ddrokosov@...rdevices.ru>
---
 drivers/tty/serial/meson_uart.c | 33 +++++++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
index 87c0eb5f2dba..361f9326b527 100644
--- a/drivers/tty/serial/meson_uart.c
+++ b/drivers/tty/serial/meson_uart.c
@@ -82,6 +82,7 @@ static struct uart_driver meson_uart_driver;
 static struct uart_port *meson_ports[AML_UART_PORT_NUM];
 
 struct meson_uart_data {
+	const char *dev_name;
 	bool has_xtal_div2;
 };
 
@@ -683,6 +684,7 @@ static int meson_uart_probe_clocks(struct platform_device *pdev,
 
 static int meson_uart_probe(struct platform_device *pdev)
 {
+	const struct meson_uart_data *priv_data;
 	struct resource *res_mem;
 	struct uart_port *port;
 	u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
@@ -729,6 +731,18 @@ static int meson_uart_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
+	priv_data = device_get_match_data(&pdev->dev);
+
+	if (priv_data) {
+		struct console *cons = meson_uart_driver.cons;
+
+		meson_uart_driver.dev_name = priv_data->dev_name;
+
+		if (cons)
+			strscpy(cons->name, priv_data->dev_name,
+				sizeof(cons->name));
+	}
+
 	if (!meson_uart_driver.state) {
 		ret = uart_register_driver(&meson_uart_driver);
 		if (ret)
@@ -748,7 +762,7 @@ static int meson_uart_probe(struct platform_device *pdev)
 	port->x_char = 0;
 	port->ops = &meson_uart_ops;
 	port->fifosize = fifosize;
-	port->private_data = (void *)device_get_match_data(&pdev->dev);
+	port->private_data = (void *)priv_data;
 
 	meson_ports[pdev->id] = port;
 	platform_set_drvdata(pdev, port);
@@ -780,6 +794,17 @@ static int meson_uart_remove(struct platform_device *pdev)
 }
 
 static struct meson_uart_data meson_g12a_uart_data = {
+	.dev_name = "ttyAML",
+	.has_xtal_div2 = true,
+};
+
+static struct meson_uart_data meson_a1_uart_data = {
+	.dev_name = "ttyS",
+	.has_xtal_div2 = false,
+};
+
+static struct meson_uart_data meson_s4_uart_data = {
+	.dev_name = "ttyS",
 	.has_xtal_div2 = true,
 };
 
@@ -794,7 +819,11 @@ static const struct of_device_id meson_uart_dt_match[] = {
 	},
 	{
 		.compatible = "amlogic,meson-s4-uart",
-		.data = (void *)&meson_g12a_uart_data,
+		.data = (void *)&meson_s4_uart_data,
+	},
+	{
+		.compatible = "amlogic,meson-a1-uart",
+		.data = (void *)&meson_a1_uart_data,
 	},
 	{ /* sentinel */ },
 };
-- 
2.36.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ