Re: [PATCH v2] clk: tegra: Add BPMP clock driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux