aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch')
-rw-r--r--target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch10
1 files changed, 7 insertions, 3 deletions
diff --git a/target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch b/target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch
index f7119e494c..dd28ef6c04 100644
--- a/target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch
+++ b/target/linux/layerscape/patches-4.9/816-tty-serial-support-layerscape.patch
@@ -117,12 +117,16 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
}
/*
-@@ -1899,9 +1922,13 @@ static int lpuart_probe(struct platform_
+@@ -1899,13 +1922,13 @@ static int lpuart_probe(struct platform_
ret = of_alias_get_id(np, "serial");
if (ret < 0) {
- dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret);
- return ret;
+- }
+- if (ret >= ARRAY_SIZE(lpuart_ports)) {
+- dev_err(&pdev->dev, "serial%d out of range\n", ret);
+- return -EINVAL;
+ ret = find_first_zero_bit(linemap, UART_NR);
+ if (ret >= UART_NR) {
+ dev_err(&pdev->dev, "port line is full, add device failed\n");
@@ -133,7 +137,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
sport->port.line = ret;
sport->lpuart32 = of_device_is_compatible(np, "fsl,ls1021a-lpuart");
-@@ -1983,6 +2010,7 @@ static int lpuart_remove(struct platform
+@@ -1987,6 +2010,7 @@ static int lpuart_remove(struct platform
struct lpuart_port *sport = platform_get_drvdata(pdev);
uart_remove_one_port(&lpuart_reg, &sport->port);
@@ -141,7 +145,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
clk_disable_unprepare(sport->clk);
-@@ -2067,12 +2095,10 @@ static int lpuart_resume(struct device *
+@@ -2071,12 +2095,10 @@ static int lpuart_resume(struct device *
if (sport->lpuart_dma_rx_use) {
if (sport->port.irq_wake) {