Commit c7ac46da authored by Viresh Kumar's avatar Viresh Kumar Committed by Greg Kroah-Hartman
Browse files

tty: serial: qcom_geni_serial: Unconditionally call dev_pm_opp_of_remove_table()



dev_pm_opp_of_remove_table() doesn't report any errors when it fails to
find the OPP table with error -ENODEV (i.e. OPP table not present for
the device). And we can call dev_pm_opp_of_remove_table()
unconditionally here.

While at it, create a new label to put clkname on errors.

Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>

Link: https://lore.kernel.org/r/583003f385a103b4c089ce8144a215c58cfb117a.1598594714.git.viresh.kumar@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9cfbf7a6
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -1433,11 +1433,9 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
		return PTR_ERR(port->se.opp_table);
	/* OPP table is optional */
	ret = dev_pm_opp_of_add_table(&pdev->dev);
	if (!ret) {
		port->se.has_opp_table = true;
	} else if (ret != -ENODEV) {
	if (ret && ret != -ENODEV) {
		dev_err(&pdev->dev, "invalid OPP table in device tree\n");
		return ret;
		goto put_clkname;
	}

	port->private_data.drv = drv;
@@ -1478,8 +1476,8 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)

	return 0;
err:
	if (port->se.has_opp_table)
	dev_pm_opp_of_remove_table(&pdev->dev);
put_clkname:
	dev_pm_opp_put_clkname(port->se.opp_table);
	return ret;
}
@@ -1489,7 +1487,6 @@ static int qcom_geni_serial_remove(struct platform_device *pdev)
	struct qcom_geni_serial_port *port = platform_get_drvdata(pdev);
	struct uart_driver *drv = port->private_data.drv;

	if (port->se.has_opp_table)
	dev_pm_opp_of_remove_table(&pdev->dev);
	dev_pm_opp_put_clkname(port->se.opp_table);
	dev_pm_clear_wake_irq(&pdev->dev);