svn commit: r341254 - head/sys/dev/extres/clk
Emmanuel Vadot
manu at FreeBSD.org
Thu Nov 29 19:06:06 UTC 2018
Author: manu
Date: Thu Nov 29 19:06:05 2018
New Revision: 341254
URL: https://svnweb.freebsd.org/changeset/base/341254
Log:
extres: clk: Fix clk_set_assigned
ofw_bus_parse_xref_list_get_length doesn't returns the number of elements, fix this.
While here when setting the clock to the assigned freqeuncy, allow the clock
driver to round down or up the frequency as sometimes the exact frequency cannot
be obtain.
Modified:
head/sys/dev/extres/clk/clk.c
Modified: head/sys/dev/extres/clk/clk.c
==============================================================================
--- head/sys/dev/extres/clk/clk.c Thu Nov 29 18:37:48 2018 (r341253)
+++ head/sys/dev/extres/clk/clk.c Thu Nov 29 19:06:05 2018 (r341254)
@@ -1297,7 +1297,7 @@ clk_set_assigned_rates(device_t dev, clk_t clk, uint32
{
int rv;
- rv = clk_set_freq(clk, freq, 0);
+ rv = clk_set_freq(clk, freq, CLK_SET_ROUND_DOWN | CLK_SET_ROUND_UP);
if (rv != 0) {
device_printf(dev, "Failed to set %s to a frequency of %u\n",
clk_get_name(clk), freq);
@@ -1330,9 +1330,9 @@ clk_set_assigned(device_t dev, phandle_t node)
if (nrates <= 0)
nrates = 0;
- nparents = ofw_bus_parse_xref_list_get_length(node,
- "assigned-clock-parents", "#clock-cells", &nparents);
-
+ if (ofw_bus_parse_xref_list_get_length(node,
+ "assigned-clock-parents", "#clock-cells", &nparents) != 0)
+ nparents = -1;
for (i = 0; i < nclocks; i++) {
/* First get the clock we are supposed to modify */
rv = clk_get_by_ofw_index_prop(dev, 0, "assigned-clocks",
More information about the svn-src-all
mailing list