2020-07-14 00:59:47

by Tamseel Shams

[permalink] [raw]
Subject: [PATCH v4] serial: samsung: change to platform_get_irq_optional

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 <[email protected]>
---
Commit message is changed.
Addressed Krzysztof's previous comment.

drivers/tty/serial/samsung_tty.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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;
/*
--
2.17.1


2020-07-21 08:08:00

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v4] serial: samsung: change to platform_get_irq_optional

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