Loading drivers/opp/core.c +29 −23 Original line number Diff line number Diff line Loading @@ -860,6 +860,34 @@ int dev_pm_opp_set_bw(struct device *dev, struct dev_pm_opp *opp) } EXPORT_SYMBOL_GPL(dev_pm_opp_set_bw); static int _opp_set_rate_zero(struct device *dev, struct opp_table *opp_table) { int ret; if (!opp_table->enabled) return 0; /* * Some drivers need to support cases where some platforms may * have OPP table for the device, while others don't and * opp_set_rate() just needs to behave like clk_set_rate(). */ if (!_get_opp_count(opp_table)) return 0; ret = _set_opp_bw(opp_table, NULL, dev, true); if (ret) return ret; if (opp_table->regulators) regulator_disable(opp_table->regulators[0]); ret = _set_required_opps(dev, opp_table, NULL); opp_table->enabled = false; return ret; } /** * dev_pm_opp_set_rate() - Configure new OPP based on frequency * @dev: device for which we do this operation Loading @@ -886,29 +914,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) } if (unlikely(!target_freq)) { ret = 0; if (!opp_table->enabled) goto put_opp_table; /* * Some drivers need to support cases where some platforms may * have OPP table for the device, while others don't and * opp_set_rate() just needs to behave like clk_set_rate(). */ if (!_get_opp_count(opp_table)) goto put_opp_table; ret = _set_opp_bw(opp_table, NULL, dev, true); if (ret) goto put_opp_table; if (opp_table->regulators) regulator_disable(opp_table->regulators[0]); ret = _set_required_opps(dev, opp_table, NULL); opp_table->enabled = false; ret = _opp_set_rate_zero(dev, opp_table); goto put_opp_table; } Loading Loading
drivers/opp/core.c +29 −23 Original line number Diff line number Diff line Loading @@ -860,6 +860,34 @@ int dev_pm_opp_set_bw(struct device *dev, struct dev_pm_opp *opp) } EXPORT_SYMBOL_GPL(dev_pm_opp_set_bw); static int _opp_set_rate_zero(struct device *dev, struct opp_table *opp_table) { int ret; if (!opp_table->enabled) return 0; /* * Some drivers need to support cases where some platforms may * have OPP table for the device, while others don't and * opp_set_rate() just needs to behave like clk_set_rate(). */ if (!_get_opp_count(opp_table)) return 0; ret = _set_opp_bw(opp_table, NULL, dev, true); if (ret) return ret; if (opp_table->regulators) regulator_disable(opp_table->regulators[0]); ret = _set_required_opps(dev, opp_table, NULL); opp_table->enabled = false; return ret; } /** * dev_pm_opp_set_rate() - Configure new OPP based on frequency * @dev: device for which we do this operation Loading @@ -886,29 +914,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) } if (unlikely(!target_freq)) { ret = 0; if (!opp_table->enabled) goto put_opp_table; /* * Some drivers need to support cases where some platforms may * have OPP table for the device, while others don't and * opp_set_rate() just needs to behave like clk_set_rate(). */ if (!_get_opp_count(opp_table)) goto put_opp_table; ret = _set_opp_bw(opp_table, NULL, dev, true); if (ret) goto put_opp_table; if (opp_table->regulators) regulator_disable(opp_table->regulators[0]); ret = _set_required_opps(dev, opp_table, NULL); opp_table->enabled = false; ret = _opp_set_rate_zero(dev, opp_table); goto put_opp_table; } Loading