Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp466164imm; Tue, 24 Jul 2018 23:53:27 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeEJm6t9kXnvQ4F23K7ikF8BaiOocFEigtkDZ1v7W3oP60b0RMlwGGHjoMpZTrCMS+MB77W X-Received: by 2002:a17:902:42e4:: with SMTP id h91-v6mr19676995pld.27.1532501607030; Tue, 24 Jul 2018 23:53:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532501607; cv=none; d=google.com; s=arc-20160816; b=nptrYaQ5YLsHWZ7VWN5jIJpJdTQexVZT1l4UQx/f8ZX9Qt6NpOvN+b/aOXdK9VgIML cl25YynPfGdaimmIIGgYKC1bPAACEPS96Fu12ZS+hubtOBoSjJnTIP/iur3/kHSKpoEW jcCNhpgzj62U7k+xRcxJsA3sU9aDSSRTL82SkY8gN5V4HyrOqLLBZJeNPxyt5bjBcqKc SkCniFT1PlW+vMhpZ6UnFxHrtqpa6suaC13NxH04bGsMF2iiTTrQjJrBQ/DPRVAA0Amu sSpD1TrVtn02qlWlDshgv6HQYhObf91rmQUAXmdV9VbemAgeJ5AkFP6VEKzv3azCDXX3 1L7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:user-agent:message-id :references:cc:in-reply-to:from:to:content-transfer-encoding :mime-version:dkim-signature:arc-authentication-results; bh=TPobVrYpZ0Fd+3wNgRCoUWlHROgZlVzCdgwEPRvkCvI=; b=Ywo+lIwFySpSwaT67R485nQPWLtoTjTRsk7Cz4TtpekSprXxS+D7rv6Uct4dxHKbR2 a0tIgLa4WC0HSlWy3jrZe5gNDjT677aLdE00YfNjNuZZxetFN63ehmavSJG1abgHIpkz lCyRGUAZKCRG4LyD4tcC2OCpvDbEtF5euKOGYAhp7LWM3TgndQr7VjnDNUnB6lGEDhnp UgDsVhCVCS1YmA4bZXN/6cgjmJ48tbQY7EC795KLYgRG8+bBqpV60gTEPn+NEOQJMZtb YsvZjA0hMWlxWzuI++4uYQjU+PC1XosD/5ajO6MEsZ0DUErkdUHdd7sJuKVYMlmt6u+l Q3NQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=piseT2gJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h7-v6si13317566plt.258.2018.07.24.23.53.11; Tue, 24 Jul 2018 23:53:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=piseT2gJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728490AbeGYICf (ORCPT + 99 others); Wed, 25 Jul 2018 04:02:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:37342 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728218AbeGYICf (ORCPT ); Wed, 25 Jul 2018 04:02:35 -0400 Received: from localhost (unknown [104.132.1.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6CC9420671; Wed, 25 Jul 2018 06:52:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1532501540; bh=TPobVrYpZ0Fd+3wNgRCoUWlHROgZlVzCdgwEPRvkCvI=; h=To:From:In-Reply-To:Cc:References:Subject:Date:From; b=piseT2gJq9RjynCP5yIwCVM9pJuvhnLLyvKr2L9OklhecDdoJeVgy9FuRYPKeMayd sJvaLtlmYQ8cgysx55dOt+dQ5SI4d8vHfW0sVRRhWKLEBZyXQY+zX4Gt5xZsuWbzz4 E864BUqK+5eLdfu7YwZb2ooY45Xv71rR5GUFo4is= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: Amit Nischal From: Stephen Boyd In-Reply-To: <6e53b7934af72e40e99a3d6afe54174f@codeaurora.org> Cc: Michael Turquette , Andy Gross , David Brown , Rajendra Nayak , Odelu Kukatla , Taniya Das , linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk-owner@vger.kernel.org References: <1528285308-25477-1-git-send-email-anischal@codeaurora.org> <1528285308-25477-2-git-send-email-anischal@codeaurora.org> <153111447519.143105.17241493270191899078@swboyd.mtv.corp.google.com> <6e53b7934af72e40e99a3d6afe54174f@codeaurora.org> Message-ID: <153250153971.48062.18053635476867512394@swboyd.mtv.corp.google.com> User-Agent: alot/0.7 Subject: Re: [PATCH 1/4] clk: qcom: gdsc: Add support to enable/disable the clocks with GDSC Date: Tue, 24 Jul 2018 23:52:19 -0700 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Amit Nischal (2018-07-12 05:23:48) > On 2018-07-09 11:04, Stephen Boyd wrote: > > Quoting Amit Nischal (2018-06-06 04:41:45) > >> For some of the GDSCs, there is a requirement to enable/disable the > >> few clocks before turning on/off the gdsc power domain. Add support > > = > > Why is there a requirement? Do the clks need to be in hw control mode = > > or > > they can't be turned off when the GDSC is off? It's hard for me to > > understand with these vague statements. > > = > = > This requirement is primarily to turn on the GPU GX GDSC and these = > clocks > do not need to be in HW control mode and clock disable is not related > with the GDSC. Ok that's good to know. > = > To turn on the GX GDSC, root clock (GFX3D RCG) needs to be enabled first > before writing to SW_COLLAPSE bit of the GDSC. The CLK_ON signal from = > RCG > would power up the GPU GX GDSC. Can you please put this specific information in the commit text instead of making a vague statement about GDSC hardware configurations? Does anything go wrong if the GDSC is enabled from genpd but doesn't actually turn on until the GFX3D RCG root bit is enabled or disabled by the clk enable call? I suppose we won't know if the GDSC is enabled or not until the clk is enabled? Maybe we should make the clk enable of the RCG for GPU go check the GDSC status bit as well to make sure it's toggling on or off? Also, does the RCG turn on when the GX GDSC is off? I think we may be able to rely on the GPU driver to "do the right thing" and enable the GPU CX GDSC first, then the RCG and branch for the GFX3D clk, and then the GPU GX GDSC for the core GPU logic. Then we don't need to do anything special in the GDSC code for this.