public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Dmitry <dbaryshkov@gmail.com>
Cc: "Paul Walmsley" <paul@pwsan.com>,
	linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
	"Haavard Skinnemoen" <haavard.skinnemoen@atmel.com>,
	"Russell King" <rmk+lkml@arm.linux.org.uk>,
	"Paul Mundt" <lethal@linux-sh.org>,
	"pHilipp Zabel" <philipp.zabel@gmail.com>,
	"Pavel Machek" <pavel@ucw.cz>,
	tony@atomide.com, hiroshi.DOYU@nokia.com
Subject: Re: [PATCH 0/5] Clocklib: generic clocks framework
Date: Fri, 25 Apr 2008 15:46:51 -0700	[thread overview]
Message-ID: <200804251546.52495.david-b@pacbell.net> (raw)
In-Reply-To: <bc64b4640804210148p2d1c2fe0qe469152fa1a9697e@mail.gmail.com>

On Monday 21 April 2008, Dmitry wrote:
> >  - I don't think that I understand the clk_functions part of your code.
> >   Is this a shorthand to construct aliases to other struct clks?
>
> Yes, that's one of usages for it. E.g. current AT91 code has same
> functionality named at91_clock_associate.

As in:

	at91_clock_associate("usart0_clk", &pdev0->dev, "usart");
	at91_clock_associate("usart1_clk", &pdev1->dev, "usart");
	at91_clock_associate("usart2_clk", &pdev2->dev, "usart");

That essentially maps a device and logical clock name to a specific
clock (those "usartX_clk" identifiers are global), so that drivers
can clk_get(dev, "usart") and get the right clock.  It decouples
clock and device declarations, which should help when integrating
external clocks too.

The assumption that clk_get(NULL, "usartX_clk") works is mostly
just a convenience, although it's probably a fair assumption for
many other SOC platforms.  Conceptually that first parameter is
a clock, not a name.


> > +struct clk_function {
> > +       const char *parent;
> > +       void *priv;
> > +       struct clk clk;
> > +};

That doesn't really seem attuned to the task of associating
logical clock names to devices.  Wouldn't it be better to
have something directly addressing that core mechanism?


> Also once we get to multiple chips providers/users, we'll see,
> that the clock simply can't have just one record in the clocks tree.

I don't follow.  Why not?  If a clock has multiple records, I'd
expect its refcounts would easily get borked.  I think I don't
like your notion of a "wrapper clock".


> It's provided by some
> pin (provider_name) and then consumed by several devices (several
> consumer_name + consumer_device pairs). That is it.

There would still be just one clock though.  It shouldn't matter
how clk_get(this_dev, "c1") and clk_get(that_dev, "c2") find it.
Hashtable, linked list, divination, ... so long as it works.

Those other records should just hold {dev, name} ==> clock mappings;
they wouldn't be records for the clock itself.  But those "functions"
do not seem to record just mappings.

- Dave


  parent reply	other threads:[~2008-04-25 23:07 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-20  8:29 [PATCH 0/5] Clocklib: generic clocks framework Dmitry Baryshkov
2008-04-20  8:30 ` [PATCH 1/5] Clocklib: add generic framework for managing clocks Dmitry Baryshkov
2008-04-20  8:30 ` [PATCH 2/5] Clocklib: debugfs support Dmitry Baryshkov
2008-04-20  8:31 ` [PATCH 3/5] Clocklib: support sa1100 sub-arch Dmitry Baryshkov
2008-04-20  8:31 ` [PATCH 4/5] Clocklib: support ARM pxa sub-arch Dmitry Baryshkov
2008-04-20  8:31 ` [PATCH 5/5] Clocklib: Use correct clock for IrDA on pxa Dmitry Baryshkov
2008-04-21  7:44 ` [PATCH 0/5] Clocklib: generic clocks framework Paul Walmsley
2008-04-21  8:48   ` Dmitry
2008-04-21  9:15     ` Hiroshi DOYU
2008-04-25  9:36     ` Paul Walmsley
2008-04-25 10:39       ` Pavel Machek
2008-04-25 20:20         ` Russell King
2008-04-25 20:34           ` Dmitry
2008-04-25 20:44             ` Russell King
2008-04-25 20:51           ` Pavel Machek
2008-04-25 21:13             ` Russell King
2008-04-25 21:36               ` Dmitry
2008-04-26  8:47       ` Dmitry
2008-04-26 18:02         ` David Brownell
2008-05-02  5:23         ` Paul Walmsley
2008-05-02  9:40           ` Dmitry
2008-05-05  7:59           ` Pavel Machek
2008-04-25 22:46     ` David Brownell [this message]
2008-04-26  8:38       ` Dmitry
2008-04-26 16:29         ` David Brownell
  -- strict thread matches above, loose matches on Subject: below --
2008-04-20  8:28 Dmitry Baryshkov
2008-04-13 14:41 Dmitry Baryshkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200804251546.52495.david-b@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=akpm@linux-foundation.org \
    --cc=dbaryshkov@gmail.com \
    --cc=haavard.skinnemoen@atmel.com \
    --cc=hiroshi.DOYU@nokia.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=pavel@ucw.cz \
    --cc=philipp.zabel@gmail.com \
    --cc=rmk+lkml@arm.linux.org.uk \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox