From patchwork Fri Jul 26 13:51:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 169838 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp89691ilk; Fri, 26 Jul 2019 06:52:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqxd6bFNQ5ApmrpgLLG7EB1Qrs8NkA5m2kYJ78MXCi2aBY9qD+ifaopT71SzYMNNVWq2u0OI X-Received: by 2002:a17:902:403:: with SMTP id 3mr94662718ple.66.1564149134585; Fri, 26 Jul 2019 06:52:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564149134; cv=none; d=google.com; s=arc-20160816; b=hDOZa+JQ1qZvlG/Y/9plwLjbQVLaPKuDZynkmk688rZXaY9y1FhRyZ4PjHNLjZp02J SxcuodV678YsUMB9EyQ5GkrUYs18NOQ24xkxQEaUMRQe6ULkHjx1AI0AAXadIIODAaqk uMZ5CD4FK0vF59AWFmflpxpOtsR9G2XJ6YDVSufctad0cENf20M7Or/UipmRinoafpbI QGDVk+IT3d3MWzdIP6beZS0CygUj22hm5pMxnomd9oOFbGjNHIOWT4Lw4Zdc50gheugR W+MFYKeV7uCg4hVmNHyxPpGI7N9oEBHm8Z2e/qxWFfPZzi0tc0csGYOUQdPMpv9+bdfG el6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=qoO6vCeb4G63pRQfFxrsj3PhoPCSH3+I55goQ+UAzi4=; b=KOcr4fQPHfQJ9h4bdr3y0bM5UNhzIBSnNI5IN8Abw5kno2kdZ3UMAMdn621B+38T1q p+DOw758aTaL0Dje301H9qU6uwv3yatz2th5E9cNpODjhS9itTvhntRptf5NVroLXFce qWuzaDV6YHB79Ye+RM3r/5Dj1V01ZJbPw/euF7DVJMHwEXJ8xapm5f6440w8Rm8DFuTi qCyvjmudDEuoAE2V0rrcMx0OKnlxdnCuXqL/XGax4cJaRGb3ZfSO53u6+MZGJ3a6h2vE BE+U4lf9TTNQUj8rRCA2fE19Yxgz0+4RspaTLXtr8rYNstzr6HY1yZbelg8rzT2fdOoh Uhbw== ARC-Authentication-Results: i=1; mx.google.com; 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 j187si20848394pge.591.2019.07.26.06.52.14; Fri, 26 Jul 2019 06:52:14 -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; 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 S2388680AbfGZNwM (ORCPT + 29 others); Fri, 26 Jul 2019 09:52:12 -0400 Received: from foss.arm.com ([217.140.110.172]:44534 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388498AbfGZNwA (ORCPT ); Fri, 26 Jul 2019 09:52:00 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5718B337; Fri, 26 Jul 2019 06:52:00 -0700 (PDT) Received: from usa.arm.com (e107155-lin.cambridge.arm.com [10.1.196.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DC5123F694; Fri, 26 Jul 2019 06:51:58 -0700 (PDT) From: Sudeep Holla To: linux-arm-kernel@lists.infradead.org Cc: Sudeep Holla , Peng Fan , linux-kernel@vger.kernel.org, Bo Zhang , Jim Quinlan , Volodymyr Babchuk , Gaku Inami , Etienne Carriere , Stephen Boyd , linux-clk@vger.kernel.org Subject: [PATCH v2 09/10] firmware: arm_scmi: Drop config flag in clk_ops->rate_set Date: Fri, 26 Jul 2019 14:51:37 +0100 Message-Id: <20190726135138.9858-10-sudeep.holla@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190726135138.9858-1-sudeep.holla@arm.com> References: <20190726135138.9858-1-sudeep.holla@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CLOCK_PROTOCOL_ATTRIBUTES provides attributes to indicate the maximum number of pending asynchronous clock rate changes supported by the platform. If it's non-zero, then we should be able to use asynchronous clock rate set for any clocks until the maximum limit is reached. In order to add that support, let's drop the config flag passed to clk_ops->rate_set and handle the asynchronous requests dynamically. Cc: Stephen Boyd Cc: linux-clk@vger.kernel.org Acked-by: Stephen Boyd Signed-off-by: Sudeep Holla --- drivers/clk/clk-scmi.c | 2 +- drivers/firmware/arm_scmi/clock.c | 4 ++-- include/linux/scmi_protocol.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) -- 2.17.1 diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c index a2287c770d5c..886f7c5df51a 100644 --- a/drivers/clk/clk-scmi.c +++ b/drivers/clk/clk-scmi.c @@ -69,7 +69,7 @@ static int scmi_clk_set_rate(struct clk_hw *hw, unsigned long rate, { struct scmi_clk *clk = to_scmi_clk(hw); - return clk->handle->clk_ops->rate_set(clk->handle, clk->id, 0, rate); + return clk->handle->clk_ops->rate_set(clk->handle, clk->id, rate); } static int scmi_clk_enable(struct clk_hw *hw) diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm_scmi/clock.c index 0a194af92438..dd215bd11a58 100644 --- a/drivers/firmware/arm_scmi/clock.c +++ b/drivers/firmware/arm_scmi/clock.c @@ -218,7 +218,7 @@ scmi_clock_rate_get(const struct scmi_handle *handle, u32 clk_id, u64 *value) } static int scmi_clock_rate_set(const struct scmi_handle *handle, u32 clk_id, - u32 config, u64 rate) + u64 rate) { int ret; struct scmi_xfer *t; @@ -230,7 +230,7 @@ static int scmi_clock_rate_set(const struct scmi_handle *handle, u32 clk_id, return ret; cfg = t->tx.buf; - cfg->flags = cpu_to_le32(config); + cfg->flags = cpu_to_le32(0); cfg->id = cpu_to_le32(clk_id); cfg->value_low = cpu_to_le32(rate & 0xffffffff); cfg->value_high = cpu_to_le32(rate >> 32); diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index ae7381413f1f..f0f2b53a1dac 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -71,7 +71,7 @@ struct scmi_clk_ops { int (*rate_get)(const struct scmi_handle *handle, u32 clk_id, u64 *rate); int (*rate_set)(const struct scmi_handle *handle, u32 clk_id, - u32 config, u64 rate); + u64 rate); int (*enable)(const struct scmi_handle *handle, u32 clk_id); int (*disable)(const struct scmi_handle *handle, u32 clk_id); };