On 03/02/15 01:22, Abhilash Kesavan wrote: > In the existing code, the optional fifosizes property passed via device > tree was being overwritten. Ensure the setting of correct fifo sizes for > both dt and non-dt cases. > > Signed-off-by: Abhilash Kesavan <a.kesavan@xxxxxxxxxxx> > --- > drivers/tty/serial/samsung.c | 25 +++++++++++++++++-------- > 1 file changed, 17 insertions(+), 8 deletions(-) > > diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c > index af821a9..e04bb5e 100644 > --- a/drivers/tty/serial/samsung.c > +++ b/drivers/tty/serial/samsung.c > @@ -1827,14 +1827,23 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) > dev_get_platdata(&pdev->dev) : > ourport->drv_data->def_cfg; > > - if (np) > - of_property_read_u32(np, > - "samsung,uart-fifosize", &ourport->port.fifosize); > - > - 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 (np) { > + if (of_property_read_u32(np, > + "samsung,uart-fifosize", &ourport->port.fifosize)) { > + 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; > + } > + } else { > + 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; > + } Hmm...if 'np' is true and there is no property "samsung,uart-fifo-size" in DT? How about following? I need to think, in case of existing uart-fifosize in DT, which one should be overwritten though... diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index af821a9..0ad38ec 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -1827,12 +1827,11 @@ static int s3c24xx_serial_probe(struct platform_device *pdev) dev_get_platdata(&pdev->dev) : ourport->drv_data->def_cfg; - if (np) - of_property_read_u32(np, - "samsung,uart-fifosize", &ourport->port.fifosize); - if (ourport->drv_data->fifosize[index]) ourport->port.fifosize = ourport->drv_data->fifosize[index]; + else if (np) + of_property_read_u32(np, + "samsung,uart-fifosize", &ourport->port.fifosize); else if (ourport->info->fifosize) ourport->port.fifosize = ourport->info->fifosize; Thanks, Kukjin -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html