mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-07-08 18:13:59 +02:00
serial: sh-sci: Move runtime PM enable to sci_probe_single()
commit 239f11209e upstream.
Relocate the runtime PM enable operation to sci_probe_single(). This change
prepares the codebase for upcoming fixes.
While at it, replace the existing logic with a direct call to
devm_pm_runtime_enable() and remove sci_cleanup_single(). The
devm_pm_runtime_enable() function automatically handles disabling runtime
PM during driver removal.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://lore.kernel.org/r/20250116182249.3828577-3-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7857505af5
commit
b7f05abd60
@@ -2993,10 +2993,6 @@ static int sci_init_single(struct platform_device *dev,
|
||||
ret = sci_init_clocks(sci_port, &dev->dev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
port->dev = &dev->dev;
|
||||
|
||||
pm_runtime_enable(&dev->dev);
|
||||
}
|
||||
|
||||
port->type = p->type;
|
||||
@@ -3026,11 +3022,6 @@ static int sci_init_single(struct platform_device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void sci_cleanup_single(struct sci_port *port)
|
||||
{
|
||||
pm_runtime_disable(port->port.dev);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_SERIAL_SH_SCI_CONSOLE) || \
|
||||
defined(CONFIG_SERIAL_SH_SCI_EARLYCON)
|
||||
static void serial_console_putchar(struct uart_port *port, int ch)
|
||||
@@ -3188,8 +3179,6 @@ static int sci_remove(struct platform_device *dev)
|
||||
sci_ports_in_use &= ~BIT(port->port.line);
|
||||
uart_remove_one_port(&sci_uart_driver, &port->port);
|
||||
|
||||
sci_cleanup_single(port);
|
||||
|
||||
if (port->port.fifosize > 1)
|
||||
device_remove_file(&dev->dev, &dev_attr_rx_fifo_trigger);
|
||||
if (type == PORT_SCIFA || type == PORT_SCIFB || type == PORT_HSCIF)
|
||||
@@ -3324,6 +3313,11 @@ static int sci_probe_single(struct platform_device *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
sciport->port.dev = &dev->dev;
|
||||
ret = devm_pm_runtime_enable(&dev->dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
sciport->gpios = mctrl_gpio_init(&sciport->port, 0);
|
||||
if (IS_ERR(sciport->gpios))
|
||||
return PTR_ERR(sciport->gpios);
|
||||
@@ -3337,13 +3331,7 @@ static int sci_probe_single(struct platform_device *dev,
|
||||
sciport->port.flags |= UPF_HARD_FLOW;
|
||||
}
|
||||
|
||||
ret = uart_add_one_port(&sci_uart_driver, &sciport->port);
|
||||
if (ret) {
|
||||
sci_cleanup_single(sciport);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return uart_add_one_port(&sci_uart_driver, &sciport->port);
|
||||
}
|
||||
|
||||
static int sci_probe(struct platform_device *dev)
|
||||
|
||||
Reference in New Issue
Block a user