[PATCH v3 5/5] clk: export tree topology and clk data via sysfs
skannan at codeaurora.org
Wed Nov 23 03:48:52 UTC 2011
On 11/22/2011 11:13 AM, Greg KH wrote:
> On Tue, Nov 22, 2011 at 09:57:41AM -0800, Mike Turquette wrote:
>>> Ah, comments like this warm my heart.
>>> Come on, no abusing the kobject code please, if have problems with how
>>> the kernel core works, and it doesn't do things you want it to, then why
>>> not change it to work properly for you, or at the least, ASK ME!!!
>> Ok, I'm asking you now. There are two ways to solve this problem:
>> 1) have kobject core create the lists linking the objects but defer
>> allocations and any interactions with sysfs until later in the boot
>> sequence, OR
>> 2) my code can create a list of clks (the same way that clkdev does)
>> and defer kobject/sysfs stuff until later, which walks the list made
>> during early-boot
>> #1 is most closely aligned with the code I have here, #2 presents
>> challenges that I haven't really though through. I know that OMAP
>> uses the clk framework VERY early in it's boot sequence, but as long
>> as the per-clk data is properly initialized then it should be OK.
>> What do you think?
> #3 - use debugfs and don't try to create a sysfs interface for the clock
> structures :)
I would prefer debugfs too, but for my own selfish reasons. In our
current implementation, we have debugfs files: turn on/off a clock, to
measure a clock (yeah, we have a "measuring" hw block inside the SoC),
list the supported rates of a clock, etc. We use these files to test the
clock driver. These certainly would not be acceptable candidates for sysfs.
If the common clock framework uses sysfs for the tree, then the mach-msm
will have to have its own implementation of debugfs. That's not so nice
for two reasons:
1. I think these files would be useful for other arch/machs too, but it
would be odd for the common clock code to expose sysfs and debugfs files
for each clock.
2. Since it won't be in the common code, each arch/mach will be
repeating the debugfs code to expose their own enable/disable files.
To me, the ideal choice would be for each clocks to have a directory
under /debug/clk/ without following the clock topology. Then, inside
each clock specific directory, there will be an enable, rate, parent
(symlink to parent clock dir under /debug/clk/) files.
The clock specific drivers will be able to get the handle to the clk
specific debugfs directory and add their own extra files. Or could be
made to pass a list of file/ops/perms as part of the
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
More information about the linaro-dev