Commit cfb12911 authored by Yangtao Li's avatar Yangtao Li Committed by Viresh Kumar
Browse files

spi: spi-geni-qcom: Convert to use resource-managed OPP API



Use resource-managed OPP API to simplify code.

Signed-off-by: default avatarYangtao Li <tiny.windzz@gmail.com>
Acked-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 300894a6
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -691,14 +691,15 @@ static int spi_geni_probe(struct platform_device *pdev)
	mas->se.wrapper = dev_get_drvdata(dev->parent);
	mas->se.base = base;
	mas->se.clk = clk;
	mas->se.opp_table = dev_pm_opp_set_clkname(&pdev->dev, "se");
	if (IS_ERR(mas->se.opp_table))
		return PTR_ERR(mas->se.opp_table);

	ret = devm_pm_opp_set_clkname(&pdev->dev, "se");
	if (ret)
		return ret;
	/* OPP table is optional */
	ret = dev_pm_opp_of_add_table(&pdev->dev);
	ret = devm_pm_opp_of_add_table(&pdev->dev);
	if (ret && ret != -ENODEV) {
		dev_err(&pdev->dev, "invalid OPP table in device tree\n");
		goto put_clkname;
		return ret;
	}

	spi->bus_num = -1;
@@ -750,9 +751,6 @@ static int spi_geni_probe(struct platform_device *pdev)
	free_irq(mas->irq, spi);
spi_geni_probe_runtime_disable:
	pm_runtime_disable(dev);
	dev_pm_opp_of_remove_table(&pdev->dev);
put_clkname:
	dev_pm_opp_put_clkname(mas->se.opp_table);
	return ret;
}

@@ -766,8 +764,6 @@ static int spi_geni_remove(struct platform_device *pdev)

	free_irq(mas->irq, spi);
	pm_runtime_disable(&pdev->dev);
	dev_pm_opp_of_remove_table(&pdev->dev);
	dev_pm_opp_put_clkname(mas->se.opp_table);
	return 0;
}

+0 −2
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ struct geni_icc_path {
 * @num_clk_levels:	Number of valid clock levels in clk_perf_tbl
 * @clk_perf_tbl:	Table of clock frequency input to serial engine clock
 * @icc_paths:		Array of ICC paths for SE
 * @opp_table:		Pointer to the OPP table
 */
struct geni_se {
	void __iomem *base;
@@ -57,7 +56,6 @@ struct geni_se {
	unsigned int num_clk_levels;
	unsigned long *clk_perf_tbl;
	struct geni_icc_path icc_paths[3];
	struct opp_table *opp_table;
};

/* Common SE registers */