Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

Use resource-managed OPP API to simplify code.

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

authored by

Yangtao Li and committed by
Viresh Kumar
cfb12911 300894a6

+6 -12
+6 -10
drivers/spi/spi-geni-qcom.c
··· 691 691 mas->se.wrapper = dev_get_drvdata(dev->parent); 692 692 mas->se.base = base; 693 693 mas->se.clk = clk; 694 - mas->se.opp_table = dev_pm_opp_set_clkname(&pdev->dev, "se"); 695 - if (IS_ERR(mas->se.opp_table)) 696 - return PTR_ERR(mas->se.opp_table); 694 + 695 + ret = devm_pm_opp_set_clkname(&pdev->dev, "se"); 696 + if (ret) 697 + return ret; 697 698 /* OPP table is optional */ 698 - ret = dev_pm_opp_of_add_table(&pdev->dev); 699 + ret = devm_pm_opp_of_add_table(&pdev->dev); 699 700 if (ret && ret != -ENODEV) { 700 701 dev_err(&pdev->dev, "invalid OPP table in device tree\n"); 701 - goto put_clkname; 702 + return ret; 702 703 } 703 704 704 705 spi->bus_num = -1; ··· 751 750 free_irq(mas->irq, spi); 752 751 spi_geni_probe_runtime_disable: 753 752 pm_runtime_disable(dev); 754 - dev_pm_opp_of_remove_table(&pdev->dev); 755 - put_clkname: 756 - dev_pm_opp_put_clkname(mas->se.opp_table); 757 753 return ret; 758 754 } 759 755 ··· 764 766 765 767 free_irq(mas->irq, spi); 766 768 pm_runtime_disable(&pdev->dev); 767 - dev_pm_opp_of_remove_table(&pdev->dev); 768 - dev_pm_opp_put_clkname(mas->se.opp_table); 769 769 return 0; 770 770 } 771 771
-2
include/linux/qcom-geni-se.h
··· 47 47 * @num_clk_levels: Number of valid clock levels in clk_perf_tbl 48 48 * @clk_perf_tbl: Table of clock frequency input to serial engine clock 49 49 * @icc_paths: Array of ICC paths for SE 50 - * @opp_table: Pointer to the OPP table 51 50 */ 52 51 struct geni_se { 53 52 void __iomem *base; ··· 56 57 unsigned int num_clk_levels; 57 58 unsigned long *clk_perf_tbl; 58 59 struct geni_icc_path icc_paths[3]; 59 - struct opp_table *opp_table; 60 60 }; 61 61 62 62 /* Common SE registers */