Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755627Ab1BUCvQ (ORCPT ); Sun, 20 Feb 2011 21:51:16 -0500 Received: from ozlabs.org ([203.10.76.45]:54108 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754658Ab1BUCvM (ORCPT ); Sun, 20 Feb 2011 21:51:12 -0500 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" Subject: [PATCH 0/2] Common struct clk implementation, v13 In-Reply-To: <201102011711.31258.jeremy.kerr@canonical.com> Message-Id: <1298256658.861611.43913489619.0.gpush@pororo> To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Nicolas Pitre , Dima Zavin , Lorenzo Pieralisi , Vincent Guittot , , Ben Herrenchmidt , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Sascha Hauer , Paul Mundt , Saravana Kannan , Ben Dooks , Jeremy Kerr , Russell King From: Jeremy Kerr Date: Mon, 21 Feb 2011 10:50:58 +0800 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2809 Lines: 98 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. Many thanks to the following for their input: * Benjamin Herrenschmidt * Ben Dooks * Baruch Siach * Russell King * Uwe Kleine-König * Lorenzo Pieralisi * Vincent Guittot * Sascha Hauer * Ryan Mallon * Colin Cross * Jassi Brar * Saravana Kannan Cheers, Jeremy -- v13: * Don't expose __clk_get and clk_put - prototypes in clkdev.c instead * Add might_sleep to clk_set_rate * Comment clarifications & fixups * Remove zero initialisers * Fold warnings into main clk.c change 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 (2): Add a common struct clk clk: Generic support for fixed-rate clocks -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/