scripts/gdb: add $lx_clk_core_lookup function

Finding an individual clk_core requires walking the tree which can be
quite complicated so add a helper for easy access.

(gdb) print *(struct clk_scu*)$lx_clk_core_lookup("uart0_clk")->hw

Link: http://lkml.kernel.org/r/Message-ID:
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Leonard Crestez 2019-05-14 15:46:11 -07:00 committed by Linus Torvalds
parent d1e9710b63
commit 988b268615

View File

@ -44,3 +44,26 @@ class LxClkSummary(gdb.Command):
LxClkSummary()
class LxClkCoreLookup(gdb.Function):
"""Find struct clk_core by name"""
def __init__(self):
super(LxClkCoreLookup, self).__init__("lx_clk_core_lookup")
def lookup_hlist(self, hlist_head, name):
for child in clk_core_for_each_child(hlist_head):
if child['name'].string() == name:
return child
result = self.lookup_hlist(child['children'], name)
if result:
return result
def invoke(self, name):
name = name.string()
return (self.lookup_hlist(gdb.parse_and_eval("clk_root_list"), name) or
self.lookup_hlist(gdb.parse_and_eval("clk_orphan_list"), name))
LxClkCoreLookup()