[PATCH v3 5/6] ARM: davinci: Add support for PRUSS on DA850
From: Sekhar Nori <hidden>
Date: 2012-10-05 10:30:41
Also in:
lkml
On 10/4/2012 10:05 PM, Matt Porter wrote:
On Thu, Oct 04, 2012 at 05:52:45PM +0530, Sekhar Nori wrote:quoted
On 10/3/2012 8:25 PM, Matt Porter wrote:quoted
+static struct clk pruss_clk = { + .name = "pruss", + .parent = &pll0_sysclk2, + .lpsc = DA8XX_LPSC0_PRUSS, +}; + static struct clk uart0_clk = { .name = "uart0", .parent = &pll0_sysclk2,@@ -378,6 +384,7 @@ static struct clk_lookup da850_clks[] = { CLK(NULL, "tptc1", &tptc1_clk), CLK(NULL, "tpcc1", &tpcc1_clk), CLK(NULL, "tptc2", &tptc2_clk), + CLK(NULL, "pruss", &pruss_clk),This is actually incorrect since we should use device name rather than con_id for matching the clock. If there is just one clock that the driver needs, connection id should be NULL. Looking at the driver now, the clk_get() call seems to pass a valid device pointer. So, I wonder how you are able to look up the clock even with a NULL device name.I doublechecked the clk_get() find implentation to confirm that I indeed did get lucky here. Since pruss has only one instance and the clk_find() implementation looks for the best found match, it's able to find the clock just by the con_id, though it's not the "best possible" match in the find implementation...it's the "best found" match.. As you noted, this is incorrect though for a clock expected to be used from a driver context so I will address this in the update.
Thanks for debugging and clarifying. Regards, Sekhar