Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f042054 authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Greg Kroah-Hartman
Browse files

serial: 8250_dw: only setup the port from one place



This adds a flag "skip_autocfg" that the platforms that do
not have the ADDITIONAL_FEATURES implemented can use to skip
the port setup. It's then enough to call dw8250_setup_port
just from dw8250_probe based on that flag.

Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2559318c
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@ struct dw8250_data {
	struct clk		*pclk;
	struct reset_control	*rst;
	struct uart_8250_dma	dma;

	unsigned int		skip_autocfg:1;
};

#define BYT_PRV_CLK			0x800
@@ -285,8 +287,6 @@ static int dw8250_probe_of(struct uart_port *p,
			   struct dw8250_data *data)
{
	struct device_node	*np = p->dev->of_node;
	struct uart_8250_port *up = up_to_u8250p(p);
	bool has_ucv = true;
	int id;

#ifdef CONFIG_64BIT
@@ -296,12 +296,9 @@ static int dw8250_probe_of(struct uart_port *p,
		p->flags = UPF_SKIP_TEST | UPF_SHARE_IRQ | UPF_FIXED_TYPE;
		p->type = PORT_OCTEON;
		data->usr_reg = 0x27;
		has_ucv = false;
		data->skip_autocfg = true;
	}
#endif
	if (has_ucv)
		dw8250_setup_port(up);

	/* get index of serial line, if found in DT aliases */
	id = of_alias_get_id(np, "serial");
	if (id >= 0)
@@ -325,8 +322,6 @@ static int dw8250_probe_acpi(struct uart_8250_port *up,
{
	struct uart_port *p = &up->port;

	dw8250_setup_port(up);

	p->iotype = UPIO_MEM32;
	p->serial_in = dw8250_serial_in32;
	p->serial_out = dw8250_serial_out32;
@@ -486,6 +481,9 @@ static int dw8250_probe(struct platform_device *pdev)
		goto err_reset;
	}

	if (!data->skip_autocfg)
		dw8250_setup_port(&uart);

	/* If we have a valid fifosize, try hooking up DMA */
	if (p->fifosize) {
		data->dma.rxconf.src_maxburst = p->fifosize / 4;