Commit 19d48787 authored by Hector Martin's avatar Hector Martin Committed by Greg Kroah-Hartman
Browse files

tty: serial: samsung_tty: Add ucon_mask parameter



This simplifies the code by removing the only distinction between the
S3C2410 and S3C2440 codepaths.

Signed-off-by: default avatarHector Martin <marcan@marcan.st>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Tested-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Link: https://lore.kernel.org/r/20210304213902.83903-20-marcan@marcan.st


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 196ebe5c
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ struct s3c24xx_uart_info {
	unsigned long		num_clks;
	unsigned long		clksel_mask;
	unsigned long		clksel_shift;
	unsigned long		ucon_mask;

	/* uart port features */

@@ -1706,13 +1707,8 @@ static void s3c24xx_serial_resetport(struct uart_port *port,
{
	struct s3c24xx_uart_info *info = s3c24xx_port_to_info(port);
	unsigned long ucon = rd_regl(port, S3C2410_UCON);
	unsigned int ucon_mask;

	ucon_mask = info->clksel_mask;
	if (info->type == PORT_S3C2440)
		ucon_mask |= S3C2440_UCON0_DIVMASK;

	ucon &= ucon_mask;
	ucon &= (info->clksel_mask | info->ucon_mask);
	wr_regl(port, S3C2410_UCON, ucon | cfg->ucon);

	/* reset both fifos */
@@ -2449,6 +2445,7 @@ static struct s3c24xx_serial_drv_data s3c2440_serial_drv_data = {
		.num_clks	= 4,
		.clksel_mask	= S3C2412_UCON_CLKMASK,
		.clksel_shift	= S3C2412_UCON_CLKSHIFT,
		.ucon_mask	= S3C2440_UCON0_DIVMASK,
	},
	.def_cfg = &(struct s3c2410_uartcfg) {
		.ucon		= S3C2410_UCON_DEFAULT,