Page MenuHomeFreeBSD

D6957.diff
No OneTemporary

D6957.diff

Index: head/sys/dev/extres/clk/clk.h
===================================================================
--- head/sys/dev/extres/clk/clk.h
+++ head/sys/dev/extres/clk/clk.h
@@ -131,6 +131,8 @@
#ifdef FDT
int clk_get_by_ofw_index(device_t dev, int idx, clk_t *clk);
int clk_get_by_ofw_name(device_t dev, const char *name, clk_t *clk);
+int clk_get_by_ofw_node_index(device_t dev, phandle_t node, int idx,
+ clk_t *clk);
int clk_parse_ofw_out_names(device_t dev, phandle_t node,
const char ***out_names, uint32_t **indices);
int clk_parse_ofw_clk_name(device_t dev, phandle_t node, const char **name);
Index: head/sys/dev/extres/clk/clk.c
===================================================================
--- head/sys/dev/extres/clk/clk.c
+++ head/sys/dev/extres/clk/clk.c
@@ -1198,13 +1198,7 @@
int
clk_get_by_ofw_index(device_t dev, int idx, clk_t *clk)
{
- phandle_t cnode, parent, *cells;
- device_t clockdev;
- int ncells, rv;
- struct clkdom *clkdom;
- struct clknode *clknode;
-
- *clk = NULL;
+ phandle_t cnode;
cnode = ofw_bus_get_node(dev);
if (cnode <= 0) {
@@ -1213,6 +1207,20 @@
return (ENXIO);
}
+ return (clk_get_by_ofw_node_index(dev, cnode, idx, clk));
+}
+
+int
+clk_get_by_ofw_node_index(device_t dev, phandle_t cnode, int idx, clk_t *clk)
+{
+ phandle_t parent, *cells;
+ device_t clockdev;
+ int ncells, rv;
+ struct clkdom *clkdom;
+ struct clknode *clknode;
+
+ *clk = NULL;
+
rv = ofw_bus_parse_xref_list_alloc(cnode, "clocks", "#clock-cells", idx,
&parent, &ncells, &cells);
if (rv != 0) {

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 8, 12:31 PM (18 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29392681
Default Alt Text
D6957.diff (1 KB)

Event Timeline