ret = dev_pm_opp_add(dev, entry->freq, dfll_mv * 1000); if (ret) return ret;
}
return 0;
}
/** * tegra_cvb_add_opp_table - build OPP table from Tegra CVB tables * @dev: the struct device * for which the OPP table is built * @tables: array of CVB tables * @count: size of the previously mentioned array * @align: parameters of the regulator step and offset * @process_id: process id of the HW module * @speedo_id: speedo id of the HW module * @speedo_value: speedo value of the HW module * @max_freq: highest safe clock rate * * On Tegra, a CVB table encodes the relationship between operating voltage * and safe maximal frequency for a given module (e.g. GPU or CPU). This * function calculates the optimal voltage-frequency operating points * for the given arguments and exports them via the OPP library for the * given @dev. Returns a pointer to the struct cvb_table that matched * or an ERR_PTR on failure.
*/ conststruct cvb_table *
tegra_cvb_add_opp_table(struct device *dev, conststruct cvb_table *tables,
size_t count, struct rail_alignment *align, int process_id, int speedo_id, int speedo_value, unsignedlong max_freq)
{
size_t i; int ret;
for (i = 0; i < count; i++) { conststruct cvb_table *table = &tables[i];
if (table->speedo_id != -1 && table->speedo_id != speedo_id) continue;
if (table->process_id != -1 && table->process_id != process_id) continue;
ret = build_opp_table(dev, table, align, speedo_value,
max_freq); return ret ? ERR_PTR(ret) : table;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.