Commit b8a4ed34 authored by Tamseel Shams's avatar Tamseel Shams Committed by Greg Kroah-Hartman

serial: samsung: honor fifosize from dts at first

Currently for platforms which passes UART fifosize from DT gets
override by local driver structure "s3c24xx_serial_drv_data",
which is not intended. Change the code to honor fifosize from
device tree at first.
Signed-off-by: default avatarTamseel Shams <m.shams@samsung.com>
Link: https://lore.kernel.org/r/20240220101227.80741-1-m.shams@samsung.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f75a010d
...@@ -1951,7 +1951,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) ...@@ -1951,7 +1951,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
struct s3c24xx_uart_port *ourport; struct s3c24xx_uart_port *ourport;
int index = probe_index; int index = probe_index;
int ret, prop = 0; int ret, prop = 0, fifosize_prop = 1;
if (np) { if (np) {
ret = of_alias_get_id(np, "serial"); ret = of_alias_get_id(np, "serial");
...@@ -1991,8 +1991,8 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) ...@@ -1991,8 +1991,8 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
ourport->port.iotype = ourport->info->iotype; ourport->port.iotype = ourport->info->iotype;
if (np) { if (np) {
of_property_read_u32(np, fifosize_prop = of_property_read_u32(np, "samsung,uart-fifosize",
"samsung,uart-fifosize", &ourport->port.fifosize); &ourport->port.fifosize);
if (of_property_read_u32(np, "reg-io-width", &prop) == 0) { if (of_property_read_u32(np, "reg-io-width", &prop) == 0) {
switch (prop) { switch (prop) {
...@@ -2010,10 +2010,13 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) ...@@ -2010,10 +2010,13 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
} }
} }
if (ourport->drv_data->fifosize[index]) if (fifosize_prop) {
ourport->port.fifosize = ourport->drv_data->fifosize[index]; if (ourport->drv_data->fifosize[index])
else if (ourport->info->fifosize) ourport->port.fifosize = ourport->drv_data->fifosize[index];
ourport->port.fifosize = ourport->info->fifosize; else if (ourport->info->fifosize)
ourport->port.fifosize = ourport->info->fifosize;
}
ourport->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_SAMSUNG_CONSOLE); ourport->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_SAMSUNG_CONSOLE);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment