Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: jeremy.kerr@canonical.com (Jeremy Kerr)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC,PATCH 0/3] Common struct clk implementation, v12
Date: Wed, 09 Feb 2011 14:41:33 +0800	[thread overview]
Message-ID: <1297233693.241680.897691111624.0.gpush@pororo> (raw)
In-Reply-To: <201102011711.31258.jeremy.kerr@canonical.com>

Hi all,

These patches are an attempt to allow platforms to share clock code. At
present, the definitions of 'struct clk' are local to platform code,
which makes allocating and initialising cross-platform clock sources
difficult, and makes it impossible to compile a single image containing
support for two ARM platforms with different struct clks.

The three patches are for the architecture-independent kernel code,
introducing the common clk infrastructure. The changelog for the first
patch includes details about the new clock definitions.

Ben Herrenschmidt is looking at using common struct clk code for powerpc
too, hence the kernel-wide approach.

Many thanks to the following for their input:
 * Ben Dooks <ben-linux@fluff.org>
 * Baruch Siach <baruch@tkos.co.il>
 * Russell King <linux@arm.linux.org.uk>
 * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>
 * Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
 * Vincent Guittot <vincent.guittot@linaro.org>
 * Sascha Hauer <s.hauer@pengutronix.de>
 * Ryan Mallon <ryan@bluewatersys.com>
 * Colin Cross <ccross@google.com>
 * Jassi Brar <jassisinghbrar@gmail.com>

Cheers,


Jeremy

--
v12:
 * Always refcount, even when enable/prepare ops are NULL
 * Unify prepare & enable count checking
 * Update comments for prepare/unprepare
 * Use spin_{lock,unlock}_irqsave
 * Change clk_put to __clk_put, and use the shared clk_put

v11:
 * add prepare/unprepare for non-atomic switching, document atomicity
 * move to drivers/clk/

v10:
 * comment fixups, from Uwe's review
 * added DEFINE_CLK_FIXED

v9:
 * comment improvements
 * kerneldoc fixups
 * add WARN_ON to clk_disable

v8:
 * add atomic clocks, and locking wrappers
 * expand comments on clk and clk_ops

v7:
 * change CLK_INIT to initialise clk->mutex statically

v6:
 * fixed up references to 'clk_operations' in the changelog

v5:
 * uninline main API, and share definitions with !USE_COMMON_STRUCT_CLK
 * add __clk_get
 * delay mutex init
 * kerneldoc for struct clk

v4:
 * use mutex for enable/disable locking
 * DEFINE_CLK -> INIT_CLK, and pass the clk name for mutex init
 * struct clk_operations -> struct clk_ops

v3:
 * do clock usage refcounting in common code
 * provide sample port

v2:
 * no longer ARM-specific
 * use clk_operations

---
Jeremy Kerr (3):
      Add a common struct clk
      clk: Generic support for fixed-rate clocks
      clk: add warnings for incorrect enable/prepare semantics

  parent reply	other threads:[~2011-02-09  6:41 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-01  9:11 Locking in the clk API, part 2: clk_prepare/clk_unprepare Jeremy Kerr
2011-02-01 10:54 ` Uwe Kleine-König
2011-02-01 13:05   ` Jassi Brar
2011-02-01 14:00     ` Uwe Kleine-König
2011-02-01 15:14       ` Russell King - ARM Linux
2011-02-01 15:22         ` Uwe Kleine-König
2011-02-01 15:28           ` Russell King - ARM Linux
2011-02-01 20:57             ` Saravana Kannan
2011-02-02  2:31             ` Jassi Brar
2011-02-01 13:15   ` Russell King - ARM Linux
2011-02-01 14:18     ` Uwe Kleine-König
2011-02-01 14:39       ` Russell King - ARM Linux
2011-02-01 15:18         ` Uwe Kleine-König
2011-02-01 15:24           ` Russell King - ARM Linux
2011-02-01 15:53             ` Uwe Kleine-König
2011-02-01 17:06               ` Russell King - ARM Linux
2011-02-01 19:32                 ` Uwe Kleine-König
2011-02-01 19:56                   ` Russell King - ARM Linux
2011-02-01 20:21                     ` Saravana Kannan
2011-02-01 20:43                       ` Uwe Kleine-König
2011-02-04  9:33                         ` Richard Zhao
2011-02-01 20:06                   ` Nicolas Pitre
2011-02-01 20:33             ` Saravana Kannan
2011-02-01 20:36               ` Russell King - ARM Linux
2011-02-01 20:59             ` Stephen Boyd
2011-02-01 21:24               ` Russell King - ARM Linux
2011-02-04  9:54                 ` Richard Zhao
2011-02-04 10:21                   ` Uwe Kleine-König
2011-02-04 10:57                     ` Russell King - ARM Linux
2011-02-04 10:48                   ` Russell King - ARM Linux
2011-02-04 11:04                     ` Jassi Brar
2011-02-04 11:18                       ` Russell King - ARM Linux
2011-02-04 11:51                         ` Jassi Brar
2011-02-04 12:05                           ` Russell King - ARM Linux
2011-02-01 14:40       ` Jeremy Kerr
2011-02-04 12:45 ` Richard Zhao
2011-02-04 13:20   ` Russell King - ARM Linux
2011-02-07  6:07 ` [RFC,PATCH 0/3] Common struct clk implementation, v11 Jeremy Kerr
2011-02-07  6:07 ` [RFC,PATCH 1/3] Add a common struct clk Jeremy Kerr
2011-02-07  7:05   ` Uwe Kleine-König
2011-02-07  8:08   ` Uwe Kleine-König
2011-02-07  8:21   ` Dima Zavin
2011-02-07  8:22     ` Jeremy Kerr
2011-02-07 19:59   ` Colin Cross
2011-02-08  1:40     ` Jeremy Kerr
2011-02-07 20:20   ` Ryan Mallon
2011-02-08  2:54     ` Jeremy Kerr
2011-02-08  3:30       ` Ryan Mallon
2011-02-08  7:28         ` Jeremy Kerr
2011-02-07  6:07 ` [RFC,PATCH 2/3] clk: Generic support for fixed-rate clocks Jeremy Kerr
2011-02-07  6:07 ` [RFC, PATCH 3/3] clk: add warnings for incorrect enable/prepare semantics Jeremy Kerr
2011-02-07  6:29   ` Jassi Brar
2011-02-07  7:00     ` Jeremy Kerr
2011-02-07  8:05   ` Uwe Kleine-König
2011-02-07  8:08     ` Jeremy Kerr
2011-02-07 14:24       ` Nicolas Pitre
2011-02-10  4:26         ` Saravana Kannan
2011-02-09  6:41 ` Jeremy Kerr [this message]
2011-02-09  6:41   ` Jeremy Kerr
2011-02-10  9:37     ` Richard Zhao
2011-02-15  2:00       ` Jeremy Kerr
2011-02-09  6:41   ` [RFC,PATCH 2/3] clk: Generic support for fixed-rate clocks Jeremy Kerr
2011-02-09  6:58     ` Fabio Giovagnini
2011-02-10 23:23     ` Ryan Mallon
2011-02-15  1:41       ` Jeremy Kerr
2011-02-15  4:51         ` Saravana Kannan
2011-02-15  6:18           ` Jeremy Kerr
2011-02-15  6:31             ` Saravana Kannan
2011-02-09  6:41   ` [RFC,PATCH 1/3] Add a common struct clk Jeremy Kerr
2011-02-09  9:00     ` Uwe Kleine-König
2011-02-09 20:21     ` Ryan Mallon
2011-02-09 20:39       ` Uwe Kleine-König
2011-02-09 20:42         ` Ryan Mallon
2011-02-10 10:03       ` Richard Zhao
2011-02-10 10:10         ` Ryan Mallon
2011-02-10 12:45           ` Richard Zhao
2011-02-10 10:46         ` Uwe Kleine-König
2011-02-10 13:08           ` Richard Zhao
2011-02-10 13:13             ` Russell King - ARM Linux
2011-02-15  1:36       ` Jeremy Kerr
2011-02-15  1:43         ` Ryan Mallon
2011-02-10  5:16     ` Saravana Kannan
2011-02-15  2:41       ` Jeremy Kerr
2011-02-15  5:33         ` Saravana Kannan
2011-02-15  7:26           ` Jeremy Kerr
2011-02-15  8:33             ` Saravana Kannan
2011-02-15  8:37             ` Russell King - ARM Linux
2011-02-15  9:33               ` Jeremy Kerr
2011-02-15 14:13                 ` Richard Zhao
2011-02-20 13:07                 ` Russell King - ARM Linux
2011-02-16  4:53           ` Saravana Kannan
2011-02-20 13:13           ` Russell King - ARM Linux
2011-02-21  2:50 ` [PATCH 0/2] Common struct clk implementation, v13 Jeremy Kerr
2011-02-21  2:50   ` [PATCH 2/2] clk: Generic support for fixed-rate clocks Jeremy Kerr
2011-02-21 19:51     ` Ryan Mallon
2011-02-21 23:29       ` Jeremy Kerr
2011-02-21  2:50   ` [PATCH 1/2] Add a common struct clk Jeremy Kerr
2011-02-22 20:17     ` Uwe Kleine-König
2011-02-23  2:49       ` Jeremy Kerr
2011-02-22 23:33   ` [PATCH] wip: convert imx27 to " Uwe Kleine-König
2011-02-23  4:17     ` Saravana Kannan
2011-02-23  8:15       ` Uwe Kleine-König
2011-03-03  6:40 ` [PATCH 0/2] Common struct clk implementation, v14 Jeremy Kerr
2011-03-03  6:40   ` [PATCH 1/2] Add a common struct clk Jeremy Kerr
2011-04-14 12:49     ` Tony Lindgren
2011-03-03  6:40   ` [PATCH 2/2] clk: Generic support for fixed-rate clocks Jeremy Kerr
2011-03-14 10:16   ` [PATCH 0/2] Common struct clk implementation, v14 Uwe Kleine-König
2011-03-15  4:31   ` Jeremy Kerr
2011-03-21  2:33     ` Jeremy Kerr
2011-04-14  4:20   ` Jeremy Kerr
2011-04-14 10:00     ` Russell King - ARM Linux
2011-04-14 10:23       ` Jeremy Kerr
2011-04-14 10:26         ` Russell King - ARM Linux
2011-04-14 10:25       ` Benjamin Herrenschmidt
2011-04-14 10:32         ` Russell King - ARM Linux
2011-04-14 11:59           ` Nicolas Pitre
2011-04-14 12:09             ` Russell King - ARM Linux
2011-04-14 13:39               ` Nicolas Pitre
2011-04-14 14:00                 ` Mark Brown
2011-04-14 15:38                 ` Russell King - ARM Linux
2011-04-14 16:06                   ` Nicolas Pitre
2011-04-14 17:20                   ` Uwe Kleine-König
2011-04-18 10:54                   ` Paul Mundt
2011-04-20 14:28                     ` Uwe Kleine-König
2011-04-20 16:41                       ` Thomas Gleixner
2011-04-20 21:30                         ` Paul McKenney
2011-04-14 19:29               ` Saravana Kannan
2011-04-14 16:08           ` Uwe Kleine-König

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=1297233693.241680.897691111624.0.gpush@pororo \
    --to=jeremy.kerr@canonical.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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