Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755855AbbHZInL (ORCPT ); Wed, 26 Aug 2015 04:43:11 -0400 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:35469 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751216AbbHZInG (ORCPT ); Wed, 26 Aug 2015 04:43:06 -0400 Message-ID: <55DD7C05.6030207@st.com> Date: Wed, 26 Aug 2015 10:42:45 +0200 From: Maxime Coquelin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Lee Jones , Michael Turquette CC: Maxime Ripard , , , , , Subject: Re: [PATCH RFC RFT 0/3] clk: detect per-user enable imbalances and implement hand-off References: <1438974570-20812-1-git-send-email-mturquette@baylibre.com> <20150818154552.GI2547@lukather> <20150818164356.31346.80341@quantum> <20150820151510.GD30520@lukather> <20150825215051.31346.56261@quantum> <20150826065423.GR19409@x1> In-Reply-To: <20150826065423.GR19409@x1> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.201.21.241] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.14.151,1.0.33,0.0.0000 definitions=2015-08-25_09:2015-08-24,2015-08-25,1970-01-01 signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1526 Lines: 37 Hi Lee, On 08/26/2015 08:54 AM, Lee Jones wrote: > On Tue, 25 Aug 2015, Michael Turquette wrote: > > >> Maybe I am the one missing something? My goal was to allow the consumer >> driver to gate the critical clock. So we need clk_disable_unused to >> actually disable the clock for that to work. >> >> I think you are suggesting that clk_disable_unused should *not* disable >> the clock if it is critical. Can you confirm that? > My take is that a critical clock should only be disabled when a > knowledgeable driver wants to gate it for a specific purpose [probably > using clk_disable()]. Once the aforementioned driver no longer has a > use for the clock [whether that happens with clk_unprepare_disable() > or clk_put() ...] the clock should be ungated and be provided with > critical status once more. > How do you differentiate between a knowledgeable and non-knowledgeable driver? Let's take the example of the clock used by the i2c on STi SoCs. This clock is used by i2c, and is also critical to the system, but only i2c takes it. At first transfer, the i2c will enable the clock and then disables it. What we would expect here is that the clk_disable does not gate the clock, even if only user since the hand-off flag has been set. Else, system will freeze. Maxime -- 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/