mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
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: Tamseel Shams <m.shams@samsung.com> Link: https://lore.kernel.org/r/20240220101227.80741-1-m.shams@samsung.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f75a010dcb
commit
b8a4ed3405
@@ -1951,7 +1951,7 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
struct s3c24xx_uart_port *ourport;
|
||||
int index = probe_index;
|
||||
int ret, prop = 0;
|
||||
int ret, prop = 0, fifosize_prop = 1;
|
||||
|
||||
if (np) {
|
||||
ret = of_alias_get_id(np, "serial");
|
||||
@@ -1991,8 +1991,8 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
|
||||
ourport->port.iotype = ourport->info->iotype;
|
||||
|
||||
if (np) {
|
||||
of_property_read_u32(np,
|
||||
"samsung,uart-fifosize", &ourport->port.fifosize);
|
||||
fifosize_prop = of_property_read_u32(np, "samsung,uart-fifosize",
|
||||
&ourport->port.fifosize);
|
||||
|
||||
if (of_property_read_u32(np, "reg-io-width", &prop) == 0) {
|
||||
switch (prop) {
|
||||
@@ -2010,10 +2010,13 @@ static int s3c24xx_serial_probe(struct platform_device *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
if (ourport->drv_data->fifosize[index])
|
||||
ourport->port.fifosize = ourport->drv_data->fifosize[index];
|
||||
else if (ourport->info->fifosize)
|
||||
ourport->port.fifosize = ourport->info->fifosize;
|
||||
if (fifosize_prop) {
|
||||
if (ourport->drv_data->fifosize[index])
|
||||
ourport->port.fifosize = ourport->drv_data->fifosize[index];
|
||||
else if (ourport->info->fifosize)
|
||||
ourport->port.fifosize = ourport->info->fifosize;
|
||||
}
|
||||
|
||||
ourport->port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_SAMSUNG_CONSOLE);
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user