tty: serial: samsung_tty: Fix suspend/resume on S5L
authorHector Martin <marcan@marcan.st>
Mon, 2 May 2022 09:25:05 +0000 (18:25 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 16:24:47 +0000 (18:24 +0200)
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>
Link: https://lore.kernel.org/r/20220502092505.30934-1-marcan@marcan.st
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/samsung_tty.c
include/linux/serial_s3c.h

index 8af5ace..d5ca904 100644 (file)
@@ -2826,6 +2826,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,
index f6c3323..dec15f5 100644 (file)
 #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)