On Mon, Feb 06, 2017 at 02:52:24PM -0800, Stephen Boyd wrote: > On 02/06, Thierry Reding wrote: > > On Fri, Feb 03, 2017 at 12:43:02PM -0800, Stephen Boyd wrote: > > > On 01/25, Thierry Reding wrote: > > > > On Thu, Nov 17, 2016 at 04:47:31PM +0100, Thierry Reding wrote: > > > > > From: Thierry Reding <treding@xxxxxxxxxx> > > > > > > > > > > This driver uses the services provided by the BPMP firmware driver to > > > > > implement a clock driver based on the MRQ_CLK request. This part of the > > > > > BPMP ABI provides a means to enumerate and control clocks and should > > > > > allow the driver to work on any chip that supports this ABI. > > > > > > > > > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > > > > > --- > > > > > Changes in v2: > > > > > - rename ->prepare() and ->unprepare() implementations for consistency > > > > > - implement ->is_prepared() instead of ->is_enabled() to avoid the need > > > > > for atomic operations > > > > > - rename tegra_bpmp_clk_message.clk member to id > > > > > - remove a double semi-colon and a stray ampersand > > > > > - drop extra check for validity of parent index, the core does it > > > > > already > > > > > - make struct tegra_bpmp carry an array of struct tegra_bpmp_clk instead > > > > > of struct clk_hw to simplify some driver code > > > > > - zero out struct clk_init_data to avoid potentially uninitialized data > > > > > - use devm_clk_hw_register() instead of clk_register() because we never > > > > > need the opaque struct clk cookie > > > > > - rearrange functions so that they appear in the order specified by > > > > > struct clk_ops > > > > > > > > > > drivers/clk/tegra/Kconfig | 4 + > > > > > drivers/clk/tegra/Makefile | 1 + > > > > > drivers/clk/tegra/clk-bpmp.c | 620 +++++++++++++++++++++++++++++++++++++++++++ > > > > > 3 files changed, 625 insertions(+) > > > > > create mode 100644 drivers/clk/tegra/clk-bpmp.c > > > > > > > > Stephen, Mike, > > > > > > > > we missed the last merge window with this, but it would be nice to get > > > > it in this time. Any more comments? > > > > > > > > > > Don't think so. Shall I merge it into clk-next? > > > > Yeah, let me know if you do, then I can drop it from the Tegra tree. > > Ok. I've applied it to clk-next now. > > > > > > Sadly it's not easy to test compile this single driver on the > > > commandline. Grumble. > > > > Any way I could help with that? I did put this into the Tegra tree a > > while ago after not getting any further responses to at least get it > > some broader build coverage. > > > > I personally use a set of scripts to make sure the proper drivers are > > compiled. If you can provide information about what you use, perhaps I > > can work with you to make this easier for you. > > Ideally I'd like to compile the driver with > > make drivers/clk/tegra/clk-bmpm.o > > and have that just work. To do so, I have to make sure my config > has the right settings, which is the annoying part. If it wasn't > one-off APIs with #ifdefs to make things compile out when configs > aren't set it would work better. > > Similar problems happen for I2C drivers. I should probably just > put the work into making a script figure out the right config to > compile a file or something. If you have a good solution here it > would be great if I could incorporate it into my flow. A while back I had written about the setup that I use for the PWM and DRM subsystems. It doesn't have anything magic to figure out how to build a certain file, so some manual effort will be required to come up with a good configuration, but I think there's a nice balance between flexibility and automation: https://sietch-tagr.blogspot.de/2016/03/compile-testing-for-linux-kernel.html There's a couple of links to earlier blog posts and a github repository with the scripts and configurations. I suspect it would be fairly easy to do the same thing for the clock tree. Thierry
Attachment:
signature.asc
Description: PGP signature