Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1209971imm; Wed, 13 Jun 2018 15:29:24 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLlbamENVJQaFjZdlR6oy7aMcpNLMh/HO1bkZmfoFg5EEmSlGn+Y0vxoL3NTw2D21D+vU71 X-Received: by 2002:a62:be0a:: with SMTP id l10-v6mr6636225pff.180.1528928964879; Wed, 13 Jun 2018 15:29:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528928964; cv=none; d=google.com; s=arc-20160816; b=WWEOlkBJG8S3iErdrA2Ww8JLc+u3NunBBlOVwdYZyEwmOoHbVQozFwg3YclYVazArG hs3QAbHljBTLmjnBJMT+q2ja9EcZ2gHRMIBXxdE8Ppnre6WQVCgsUIgXLrlhGjutCmGm nO+1wmd4Ea8b1DO7sRQy3r8Z9s4fKY3eKVgQdU7IxmehlbvP4jTWZxSyrBzUADtY/HNQ GfvID0/k3MaCj9KWzAqncYErRO//ABS3d5novhq8hUO+mlD66ztGRMVE/u3hbuVAQXqP YvupzZaSufztPzFHxNtDHlDp59dRc/cimT2EzF601UP82lYXpk9pZRBQosEpkeaF43hu 7Umg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=jB3jaPVPVMmJLMltLvF8UeCGmA5iQrsz/NViCatp40E=; b=A/8lobiXpj0SmHIZf034najPVU5UiT08K/CIt9FsvtgWOksN4MxvTdfTvLDpfRP8X/ eEtVvQe5aStve6jI6Y0QH36xDWNUj0PgW9kMwB/erz7noJJSwRvslNZ9wtPfididUfcu 8xSkGX0cgyMyKpTnFajdAqX3/5IpOqzOD0fldRPAlLkZ1t7Qvgn/sv2mHV4XBZV3U/0M LUTOmIr7LbegUgPyaoy8vIhVA8Uz7Y7TuobJLh0X4Myzcbj0yHZW+eqJbny8+Dr49A/9 9VhNL5WAqQ4zlRwMUSk6yqOJb9TC9LxqeAujomwgnKSPW7VANK74jezoXDRReN6Bx8H5 fEWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=DzXRgw8v; dkim=pass header.i=@codeaurora.org header.s=default header.b=HT6mRboV; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b67-v6si4047194plb.272.2018.06.13.15.29.10; Wed, 13 Jun 2018 15:29:24 -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=@codeaurora.org header.s=default header.b=DzXRgw8v; dkim=pass header.i=@codeaurora.org header.s=default header.b=HT6mRboV; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935864AbeFMW2M (ORCPT + 99 others); Wed, 13 Jun 2018 18:28:12 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:38026 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935256AbeFMW2L (ORCPT ); Wed, 13 Jun 2018 18:28:11 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 8A2476074D; Wed, 13 Jun 2018 22:28:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1528928890; bh=5frBymXh7v2Dqbz8eNK0T5idHS0QY05opr3Tsc6dkyc=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=DzXRgw8v5WBGhrrf15crk+/rnyk2KrxqZ+WWNN4gu6dqpjAhhCHgZhc2GT8Nu2yDX XSEa3uMsTz7tVbr0tD3vB7Yfig14EArsokP2x/Eq0Xuh3j9DPXemV0LzKM9/fFgH1e leL80dPh3rhkdaC63P9aNZsGeJ3YE25u0yh5zjvA= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from [10.46.160.165] (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: collinsd@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 6F6EA602BC; Wed, 13 Jun 2018 22:28:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1528928889; bh=5frBymXh7v2Dqbz8eNK0T5idHS0QY05opr3Tsc6dkyc=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=HT6mRboVGF51OOPzcWL42iGm0vPtzbSVr0mIM01iadPOxiyVzhJ8/tBfFNYhQOsSq ZlIWmGEBOQ7f4TcRBbYiudeb8VIkjklkBpI18bE3IyBnpvns74ewAHBN2mDV07tD1R iHbYz1m1vMkrkiOdhRTwhlBL0T8YueorXZQSM0M0= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 6F6EA602BC Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=collinsd@codeaurora.org Subject: Re: [PATCH v3 7/7] soc: qcom: rpmpd/rpmhpd: Add a max vote on all corners at init To: Rajendra Nayak , viresh.kumar@linaro.org, sboyd@kernel.org, andy.gross@linaro.org, ulf.hansson@linaro.org Cc: devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org References: <20180612044052.4402-1-rnayak@codeaurora.org> <20180612044052.4402-8-rnayak@codeaurora.org> From: David Collins Message-ID: <414598de-00a1-9ce7-3a7e-4a95fd1bd35d@codeaurora.org> Date: Wed, 13 Jun 2018 15:28:08 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20180612044052.4402-8-rnayak@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Rajendra, On 06/11/2018 09:40 PM, Rajendra Nayak wrote: > As we move from no clients/consumers in kernel voting on corners, > to *some* voting and some not voting, we might end up in a situation > where the clients which remove votes can adversly impact others s/adversly/adversely/ > who still don't have a way to vote. > > To avoid this situation, have a max vote on all corners at init. > This should/can be removed once we have all clients moved to > be able to vote/unvote for themselves. This change seems like a hack. Do you intend for it to be merged and then later reverted in Linus's tree? Could it instead be implemented in a way that does not require reverting and instead is enabled by some DT property? Alternatively, could this feature be added to the power domain core since it is relatively generic? > Signed-off-by: Rajendra Nayak > Acked-by: Viresh Kumar > --- > drivers/soc/qcom/rpmhpd.c | 12 +++++++++++- > drivers/soc/qcom/rpmpd.c | 9 +++++++++ > 2 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c > index 7083ec1590ff..3c753d33aeee 100644 > --- a/drivers/soc/qcom/rpmhpd.c > +++ b/drivers/soc/qcom/rpmhpd.c > @@ -329,7 +329,7 @@ static int rpmhpd_update_level_mapping(struct rpmhpd *rpmhpd) > > static int rpmhpd_probe(struct platform_device *pdev) > { > - int i, ret; > + int i, ret, max_level; > size_t num; > struct genpd_onecell_data *data; > struct rpmhpd **rpmhpds; > @@ -390,6 +390,16 @@ static int rpmhpd_probe(struct platform_device *pdev) > pm_genpd_init(&rpmhpds[i]->pd, NULL, true); > > data->domains[i] = &rpmhpds[i]->pd; > + > + /* > + * Until we have all consumers voting on corners > + * just vote the max corner on all PDs > + * This should ideally be *removed* once we have > + * all (most) consumers being able to vote > + */ > + max_level = rpmhpds[i]->level_count - 1; > + rpmhpd_set_performance(&rpmhpds[i]->pd, rpmhpds[i]->level[max_level]); > + rpmhpd_power_on(&rpmhpds[i]->pd); Clearly these calls will result in max level requests being sent for all power domains at probe time. However, it isn't clear that this will actually help at runtime in these two cases: 1. A consumer enables and then disables a power domain. - It seems like the PD would just be disabled in this case. 2. A consumer sets a non-max performance state of a power domain. - It seems like the PD would just be set to the new lower performance state since the max vote isn't known to the PD core for aggregation purposes. Thanks, David -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project