Re: [PATCH v4 3/3] tty: serial: samsung: Fix serial rx on Apple A7-A9

From: Kwanghoon Son
Date: Mon Sep 09 2024 - 05:43:48 EST


On Mon, 2024-09-09 at 16:37 +0800, Nick Chan wrote:
> Apple's older A7-A9 SoCs seems to use bit 3 in UTRSTAT as RXTO, which is
> enabled by bit 11 in UCON.
>
> Access these bits in addition to the original RXTO and RXTO enable bits,
> to allow serial rx to function on A7-A9 SoCs. This change does not
> appear to affect the A10 SoC and up.
>
> Signed-off-by: Nick Chan <towinchenmi@xxxxxxxxx>
>

[snip]

> diff --git a/include/linux/serial_s3c.h b/include/linux/serial_s3c.h
> index 1e8686695487..964a4fbf2626 100644
> --- a/include/linux/serial_s3c.h
> +++ b/include/linux/serial_s3c.h
> @@ -246,24 +246,28 @@
> S5PV210_UFCON_TXTRIG4 | \
> S5PV210_UFCON_RXTRIG4)
>
> -#define APPLE_S5L_UCON_RXTO_ENA 9
> -#define APPLE_S5L_UCON_RXTHRESH_ENA 12
> -#define APPLE_S5L_UCON_TXTHRESH_ENA 13
> -#define APPLE_S5L_UCON_RXTO_ENA_MSK BIT(APPLE_S5L_UCON_RXTO_ENA)
> -#define APPLE_S5L_UCON_RXTHRESH_ENA_MSK BIT(APPLE_S5L_UCON_RXTHRESH_ENA)
> -#define APPLE_S5L_UCON_TXTHRESH_ENA_MSK BIT(APPLE_S5L_UCON_TXTHRESH_ENA)
> +#define APPLE_S5L_UCON_RXTO_ENA 9
> +#define APPLE_S5L_UCON_RXTO_LEGACY_ENA 11
> +#define APPLE_S5L_UCON_RXTHRESH_ENA 12
> +#define APPLE_S5L_UCON_TXTHRESH_ENA 13
> +#define APPLE_S5L_UCON_RXTO_ENA_MSK BIT(APPLE_S5L_UCON_RXTO_ENA)
> +#define APPLE_S5L_UCON_RXTO_LEGACY_ENA_MSK BIT(APPLE_S5L_UCON_RXTO_LEGACY_ENA)
> +#define APPLE_S5L_UCON_RXTHRESH_ENA_MSK BIT(APPLE_S5L_UCON_RXTHRESH_ENA)
> +#define APPLE_S5L_UCON_TXTHRESH_ENA_MSK BIT(APPLE_S5L_UCON_TXTHRESH_ENA)

Small thing, but other diff is not needed except
APPLE_S5L_UCON_RXTO_LEGACY_ENA.

Kwang.

>
> #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_RXTO_LEGACY_ENA_MSK | \
> APPLE_S5L_UCON_RXTHRESH_ENA_MSK | \
> APPLE_S5L_UCON_TXTHRESH_ENA_MSK)
>
> +#define APPLE_S5L_UTRSTAT_RXTO_LEGACY BIT(3)
> #define APPLE_S5L_UTRSTAT_RXTHRESH BIT(4)
> #define APPLE_S5L_UTRSTAT_TXTHRESH BIT(5)
> #define APPLE_S5L_UTRSTAT_RXTO BIT(9)
> -#define APPLE_S5L_UTRSTAT_ALL_FLAGS (0x3f0)
> +#define APPLE_S5L_UTRSTAT_ALL_FLAGS (0x3f8)
>
> #ifndef __ASSEMBLY__
>