Commit 7eada8a1 authored by Biju Das's avatar Biju Das Committed by Greg Kroah-Hartman
Browse files

serial: 8250_em: Use devm_clk_get_enabled()



Simplify clk handling in probe() by replacing devm_clk_get()->devm_
clk_get_enabled(). This replaces the usage of clk_prepare_enable/clk_
disable_unprepare() in probe()/remove(). After that sclk is no
longer required in struct serial8250_em_priv and is replaced by a
local variable sclk in probe().

Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20230227114152.22265-6-biju.das.jz@bp.renesas.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 54769d86
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@
#define UART_DLM_EM 10

struct serial8250_em_priv {
	struct clk *sclk;
	int line;
};

@@ -82,6 +81,7 @@ static int serial8250_em_probe(struct platform_device *pdev)
	struct device *dev = &pdev->dev;
	struct uart_8250_port up;
	struct resource *regs;
	struct clk *sclk;
	int irq, ret;

	irq = platform_get_irq(pdev, 0);
@@ -96,9 +96,9 @@ static int serial8250_em_probe(struct platform_device *pdev)
	if (!priv)
		return -ENOMEM;

	priv->sclk = devm_clk_get(dev, "sclk");
	if (IS_ERR(priv->sclk))
		return dev_err_probe(dev, PTR_ERR(priv->sclk), "unable to get clock\n");
	sclk = devm_clk_get_enabled(dev, "sclk");
	if (IS_ERR(sclk))
		return dev_err_probe(dev, PTR_ERR(sclk), "unable to get clock\n");

	memset(&up, 0, sizeof(up));
	up.port.mapbase = regs->start;
@@ -108,8 +108,7 @@ static int serial8250_em_probe(struct platform_device *pdev)
	up.port.dev = dev;
	up.port.private_data = priv;

	clk_prepare_enable(priv->sclk);
	up.port.uartclk = clk_get_rate(priv->sclk);
	up.port.uartclk = clk_get_rate(sclk);

	up.port.iotype = UPIO_MEM32;
	up.port.serial_in = serial8250_em_serial_in;
@@ -118,10 +117,8 @@ static int serial8250_em_probe(struct platform_device *pdev)
	up.dl_write = serial8250_em_serial_dl_write;

	ret = serial8250_register_8250_port(&up);
	if (ret < 0) {
		clk_disable_unprepare(priv->sclk);
	if (ret < 0)
		return dev_err_probe(dev, ret, "unable to register 8250 port\n");
	}

	priv->line = ret;
	platform_set_drvdata(pdev, priv);
@@ -133,7 +130,6 @@ static int serial8250_em_remove(struct platform_device *pdev)
	struct serial8250_em_priv *priv = platform_get_drvdata(pdev);

	serial8250_unregister_port(priv->line);
	clk_disable_unprepare(priv->sclk);
	return 0;
}