Thread (155 messages) 155 messages, 19 authors, 2011-05-10
STALE5514d

[PATCH 01/10] Add a common struct clk

From: Rob Herring <hidden>
Date: 2011-05-02 16:30:10

On 05/01/2011 10:40 PM, Jeremy Kerr wrote:
Hi Rob,
quoted
I think you will find many examples in the kernel where that is not done
by drivers.
Drivers should be checking the return value of clk_get - if they don't,
it's a bug. This is the logical place to check, rather than before all
clock API calls.
Maybe so, but it's common practice. Why not allow it, but add a warning? 
Or allow NULL, but not an error value.
For cases where there is no clock provided for the device (but is a
valid clock on some machines), the platform code should return a no-op
clock from the clk_get call. This 'noop clock' would be a good contender
for inclusion into the kernel-wide infrastructure, like clk_fixed.
There could be cases where the driver wants to know if there is no 
clock. A cpufreq driver for example would be pointless to register if no 
clock is available. Making the every platform clk_get code have to 
handle the 2 cases would require the platform code to know what the 
driver wants. Also, it would require at least some platform clock code 
to enable a new platform if you have existing drivers with both cases.

You could do something like this:

clk = clk_get(mydev, NULL);
if (IS_ERR(clk))
	clk = noop_clk;

Or add a variation of clk_get like clk_get_or_fail where clk_get returns 
noop clk and clk_get_or_fail returns nothing if the clock is not found.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help