[v4] serial: samsung: change to platform_get_irq_optional
diff mbox series

Message ID 20200713135531.68583-1-m.shams@samsung.com
State Not Applicable
Headers show
Series
  • [v4] serial: samsung: change to platform_get_irq_optional
Related show

Commit Message

Tamseel Shams July 13, 2020, 1:55 p.m. UTC
In few older Samsung SoCs like s3c2410, s3c2412
and s3c2440, UART IP is having 2 interrupt lines.
However, in other SoCs like s3c6400, s5pv210,
exynos5433, and exynos4210 UART is having only 1
interrupt line. Due to this, "platform_get_irq(platdev, 1)"
call in the driver gives the following false-positive error:
"IRQ index 1 not found" on recent platforms.

This patch replaces the platform_get_irq() call with
platform_get_irq_optional() and hence avoiding the
false-positive error.

Signed-off-by: Tamseel Shams <m.shams@samsung.com>
---
Commit message is changed.
Addressed Krzysztof's previous comment.
 
 drivers/tty/serial/samsung_tty.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Krzysztof Kozlowski July 21, 2020, 8:04 a.m. UTC | #1
On Mon, Jul 13, 2020 at 07:25:31PM +0530, Tamseel Shams wrote:
> In few older Samsung SoCs like s3c2410, s3c2412
> and s3c2440, UART IP is having 2 interrupt lines.
> However, in other SoCs like s3c6400, s5pv210,
> exynos5433, and exynos4210 UART is having only 1
> interrupt line. Due to this, "platform_get_irq(platdev, 1)"
> call in the driver gives the following false-positive error:
> "IRQ index 1 not found" on recent platforms.
> 
> This patch replaces the platform_get_irq() call with
> platform_get_irq_optional() and hence avoiding the
> false-positive error.

The error is not a false positive on S3C platforms, but a real error.
The existing code did not handle missing TX IRQ but at least printed a
message.  Your change hides the message.

The real problem here is a missing error handling for TX interrupt.
Solving this one, would solve also false-positive error message on newer
SoCs.

Best regards,
Krzysztof

Patch
diff mbox series

diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index 6ef614d8648c..c44582011b9b 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -1911,7 +1911,7 @@  static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
 		ourport->tx_irq = ret + 1;
 	}
 
-	ret = platform_get_irq(platdev, 1);
+	ret = platform_get_irq_optional(platdev, 1);
 	if (ret > 0)
 		ourport->tx_irq = ret;
 	/*