Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932902AbbDVUxd (ORCPT ); Wed, 22 Apr 2015 16:53:33 -0400 Received: from gloria.sntech.de ([95.129.55.99]:51585 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757832AbbDVUxX (ORCPT ); Wed, 22 Apr 2015 16:53:23 -0400 From: Heiko Stuebner To: mturquette@linaro.org, sboyd@codeaurora.org Cc: dianders@chromium.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Heiko Stuebner , Boris Brezillon , Alex Elder , Alexandre Belloni , Stephen Warren , Max Filippov , kernel@pengutronix.de, Zhangfei Gao , Santosh Shilimkar , Chao Xie , Jason Cooper , Stefan Wahren , Andrew Bresticker , Robert Jarzmik , Georgi Djakov , Sylwester Nawrocki , Geert Uytterhoeven , Barry Song , Dinh Nguyen , Viresh Kumar , Gabriel FERNANDEZ , emilio@elopez.com.ar, Peter De Schrijver , Tero Kristo , Ulf Hansson , Pawel Moll , Michal Simek Subject: [PATCH v3 0/2] clk: improve handling of orphan clocks Date: Wed, 22 Apr 2015 22:53:04 +0200 Message-Id: <1429735986-18592-1-git-send-email-heiko@sntech.de> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3048 Lines: 80 Using orphan clocks can introduce strange behaviour as they don't have rate information at all and also of course don't track This v2/v3 takes into account suggestions from Stephen Boyd to not try to walk the clock tree at runtime but instead keep track of orphan states on clock tree changes and making it mandatory for everybody from the start as orphaned clocks should not be used at all. This fixes an issue on most rk3288 platforms, where some soc-clocks are supplied by a 32khz clock from an external i2c-chip which often is only probed later in the boot process and maybe even after the drivers using these soc-clocks like the tsadc temperature sensor. In this case the driver using the clock should of course defer probing until the clock is actually usable. As this changes the behaviour for orphan clocks, it would of course benefit from more testing than on my Rockchip boards. To keep the recipent-list reasonable and not spam to much I selected one (the topmost) from the get_maintainer output of each drivers/clk entry. Hopefully some will provide Tested-by-tags :-) Thanks Heiko changes since v2: adapt to comments from Stephen Boyd - rename to clk_core_update_orphan_status - use bools instead of 0/1 for the status - remove redundant check in clk_is_orphan changes since v1: - track orphan status on clock tree changes instead of walking the tree on clk_get operations - make get-deferals mandatory for everybody Cc: Boris Brezillon Cc: Alex Elder Cc: Alexandre Belloni Cc: Stephen Warren Cc: Max Filippov Cc: kernel@pengutronix.de Cc: Zhangfei Gao Cc: Santosh Shilimkar Cc: Chao Xie Cc: Jason Cooper Cc: Stefan Wahren Cc: Andrew Bresticker Cc: Robert Jarzmik Cc: Georgi Djakov Cc: Sylwester Nawrocki Cc: Geert Uytterhoeven Cc: Barry Song Cc: Dinh Nguyen Cc: Viresh Kumar Cc: Gabriel FERNANDEZ Cc: emilio@elopez.com.ar Cc: Peter De Schrijver Cc: Tero Kristo Cc: Ulf Hansson Cc: Pawel Moll Cc: Michal Simek Heiko Stuebner (2): clk: track the orphan status of clocks and their children clk: prevent orphan clocks from being used drivers/clk/clk.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) -- 2.1.4 -- 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/