Commit 841f913e authored by Yu Tu's avatar Yu Tu Committed by Greg Kroah-Hartman

tty: serial: meson: Move request the register region to probe

This simplifies resetting the UART controller during probe
and will make it easier to integrate the common clock code
which will require the registers at probe time as well.
Reviewed-by: default avatarJiri Slaby <jirislaby@kernel.org>
Signed-off-by: default avatarYu Tu <yu.tu@amlogic.com>
Link: https://lore.kernel.org/r/20220225073922.3947-2-yu.tu@amlogic.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f166d19f
......@@ -395,24 +395,11 @@ static int meson_uart_verify_port(struct uart_port *port,
static void meson_uart_release_port(struct uart_port *port)
{
devm_iounmap(port->dev, port->membase);
port->membase = NULL;
devm_release_mem_region(port->dev, port->mapbase, port->mapsize);
/* nothing to do */
}
static int meson_uart_request_port(struct uart_port *port)
{
if (!devm_request_mem_region(port->dev, port->mapbase, port->mapsize,
dev_name(port->dev))) {
dev_err(port->dev, "Memory region busy\n");
return -EBUSY;
}
port->membase = devm_ioremap(port->dev, port->mapbase,
port->mapsize);
if (!port->membase)
return -ENOMEM;
return 0;
}
......@@ -733,6 +720,18 @@ static int meson_uart_probe(struct platform_device *pdev)
if (!port)
return -ENOMEM;
if (!devm_request_mem_region(&pdev->dev, res_mem->start,
resource_size(res_mem),
dev_name(&pdev->dev))) {
dev_err(&pdev->dev, "Memory region busy\n");
return -EBUSY;
}
port->membase = devm_ioremap(&pdev->dev, res_mem->start,
resource_size(res_mem));
if (IS_ERR(port->membase))
return PTR_ERR(port->membase);
ret = meson_uart_probe_clocks(pdev, port);
if (ret)
return ret;
......@@ -754,10 +753,7 @@ static int meson_uart_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, port);
/* reset port before registering (and possibly registering console) */
if (meson_uart_request_port(port) >= 0) {
meson_uart_reset(port);
meson_uart_release_port(port);
}
ret = uart_add_one_port(&meson_uart_driver, port);
if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment