diff mbox series

tty: serial: samsung_tty: Fix suspend/resume on S5L

Message ID 20220502092505.30934-1-marcan@marcan.st (mailing list archive)
State Accepted
Commit 135c579d77d066aece83609329150b87fe81e454
Headers show
Series tty: serial: samsung_tty: Fix suspend/resume on S5L | expand

Commit Message

Hector Martin May 2, 2022, 9:25 a.m. UTC
We were restoring the IRQ masks then clearing them again, because
ucon_mask wasn't set properly. Adding that makes suspend/resume
work as intended.

Signed-off-by: Hector Martin <marcan@marcan.st>
---
 drivers/tty/serial/samsung_tty.c | 1 +
 include/linux/serial_s3c.h       | 3 +++
 2 files changed, 4 insertions(+)

Comments

Greg KH May 2, 2022, 11:44 a.m. UTC | #1
On Mon, May 02, 2022 at 06:25:05PM +0900, Hector Martin wrote:
> We were restoring the IRQ masks then clearing them again, because
> ucon_mask wasn't set properly. Adding that makes suspend/resume
> work as intended.
> 
> Signed-off-by: Hector Martin <marcan@marcan.st>
> ---
>  drivers/tty/serial/samsung_tty.c | 1 +
>  include/linux/serial_s3c.h       | 3 +++
>  2 files changed, 4 insertions(+)

Does this fix a specific older commit?

And should it be backported to older stable kernels?

thanks,

greg k-h
Hector Martin May 2, 2022, 12:39 p.m. UTC | #2
On 02/05/2022 20.44, Greg Kroah-Hartman wrote:
> On Mon, May 02, 2022 at 06:25:05PM +0900, Hector Martin wrote:
>> We were restoring the IRQ masks then clearing them again, because
>> ucon_mask wasn't set properly. Adding that makes suspend/resume
>> work as intended.
>>
>> Signed-off-by: Hector Martin <marcan@marcan.st>
>> ---
>>  drivers/tty/serial/samsung_tty.c | 1 +
>>  include/linux/serial_s3c.h       | 3 +++
>>  2 files changed, 4 insertions(+)
> 
> Does this fix a specific older commit?
> 
> And should it be backported to older stable kernels?

It does fix the commit that introduced this device support in general; I
can add a Fixes line for that. I don't think anyone cares about
backporting though, since there are other fairly critical devices that
don't have support outright and there's still work to do before
suspend/resume is generally usable on these machines.
Krzysztof Kozlowski May 2, 2022, 8:22 p.m. UTC | #3
On 02/05/2022 14:39, Hector Martin wrote:
> On 02/05/2022 20.44, Greg Kroah-Hartman wrote:
>> On Mon, May 02, 2022 at 06:25:05PM +0900, Hector Martin wrote:
>>> We were restoring the IRQ masks then clearing them again, because
>>> ucon_mask wasn't set properly. Adding that makes suspend/resume
>>> work as intended.
>>>
>>> Signed-off-by: Hector Martin <marcan@marcan.st>
>>> ---
>>>  drivers/tty/serial/samsung_tty.c | 1 +
>>>  include/linux/serial_s3c.h       | 3 +++
>>>  2 files changed, 4 insertions(+)
>>
>> Does this fix a specific older commit?
>>
>> And should it be backported to older stable kernels?
> 
> It does fix the commit that introduced this device support in general; I
> can add a Fixes line for that. I don't think anyone cares about
> backporting though, since there are other fairly critical devices that
> don't have support outright and there's still work to do before
> suspend/resume is generally usable on these machines.

Then please add only Fixes tag.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c
index 12bf6b18847f..88a0b01ee9ab 100644
--- a/drivers/tty/serial/samsung_tty.c
+++ b/drivers/tty/serial/samsung_tty.c
@@ -2840,6 +2840,7 @@  static const struct s3c24xx_serial_drv_data s5l_serial_drv_data = {
 		.num_clks	= 1,
 		.clksel_mask	= 0,
 		.clksel_shift	= 0,
+		.ucon_mask	= APPLE_S5L_UCON_MASK,
 	},
 	.def_cfg = {
 		.ucon		= APPLE_S5L_UCON_DEFAULT,
diff --git a/include/linux/serial_s3c.h b/include/linux/serial_s3c.h
index f6c3323fc4c5..dec15f5b3dec 100644
--- a/include/linux/serial_s3c.h
+++ b/include/linux/serial_s3c.h
@@ -256,6 +256,9 @@ 
 #define APPLE_S5L_UCON_DEFAULT		(S3C2410_UCON_TXIRQMODE | \
 					 S3C2410_UCON_RXIRQMODE | \
 					 S3C2410_UCON_RXFIFO_TOI)
+#define APPLE_S5L_UCON_MASK		(APPLE_S5L_UCON_RXTO_ENA_MSK | \
+					 APPLE_S5L_UCON_RXTHRESH_ENA_MSK | \
+					 APPLE_S5L_UCON_TXTHRESH_ENA_MSK)
 
 #define APPLE_S5L_UTRSTAT_RXTHRESH	(1<<4)
 #define APPLE_S5L_UTRSTAT_TXTHRESH	(1<<5)