Page MenuHomeFreeBSD

D25175.id72792.diff
No OneTemporary

D25175.id72792.diff

Index: sys/dev/extres/clk/clk.h
===================================================================
--- sys/dev/extres/clk/clk.h
+++ sys/dev/extres/clk/clk.h
@@ -131,6 +131,7 @@
int clk_enable(clk_t clk);
int clk_disable(clk_t clk);
int clk_stop(clk_t clk);
+int clk_mux(clk_t clk, int index);
int clk_get_parent(clk_t clk, clk_t *parent);
int clk_set_parent_by_clk(clk_t clk, clk_t parent);
const char *clk_get_name(clk_t clk);
Index: sys/dev/extres/clk/clk.c
===================================================================
--- sys/dev/extres/clk/clk.c
+++ sys/dev/extres/clk/clk.c
@@ -376,6 +376,8 @@
*clk = clknode_find_by_id(clkdom, 1);
else if (ncells == 1)
*clk = clknode_find_by_id(clkdom, cells[0]);
+ else if (ncells == 2)
+ *clk = clknode_find_by_id(clkdom, cells[0]);
else
return (ERANGE);
@@ -1265,6 +1267,22 @@
CLK_TOPO_SLOCK();
rv = clknode_stop(clknode, 0);
CLK_TOPO_UNLOCK();
+ return (rv);
+}
+
+int
+clk_mux(clk_t clk, int index)
+{
+ int rv;
+ struct clknode *clknode;
+
+ clknode = clk->clknode;
+ KASSERT(clknode->ref_cnt > 0,
+ ("Attempt to access unreferenced clock: %s\n", clknode->name));
+ CLK_TOPO_SLOCK();
+ rv = CLKNODE_SET_MUX(clknode, index);
+ CLK_TOPO_UNLOCK();
+
return (rv);
}

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 22, 10:10 PM (7 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28944689
Default Alt Text
D25175.id72792.diff (1 KB)

Event Timeline