From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53F82C433DB for ; Wed, 10 Mar 2021 14:20:43 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E5D9F64FF2 for ; Wed, 10 Mar 2021 14:20:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E5D9F64FF2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+8tHey3bPk4MMKDUFEFkYHG7wnegM5bQt+j3gu0tW84=; b=lDR844op+bGsmnuOjaY89JOqT 3JcnIryo5MQ1FxttAEqXMN/heEZT150Bt/B4Egv50DPLK25eVV4EBp94Mof7WcZZTmc7hcvWlQ/0o DtAiiFVBApY0XWELxDisZrOY0l4A+0P3zaQbLD4uBxRcVWdxBKt9oxYbpPWSO7F5oiw9GrU+T6dgx FwKYryzpXk10PcGb9vcjRL/jZZbGpsPo3Rm8wb8jaROCe6r4goCv0DNuOemNkok/oiMDxEKo+n8Fm gkQR0LqU4mJB2xMumbRg0z/OXY3/VeVMAmiAQwquuSLPD8Beb+92GLXZT9px965rPqt4fdeStgHW3 i44/FeVLA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJzgO-0071Jy-5D; Wed, 10 Mar 2021 14:19:28 +0000 Received: from foss.arm.com ([217.140.110.172]) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJzgI-0071JE-86 for linux-arm-kernel@lists.infradead.org; Wed, 10 Mar 2021 14:19:25 +0000 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 E7DAC31B; Wed, 10 Mar 2021 06:19:18 -0800 (PST) Received: from e120937-lin (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C6F863F73C; Wed, 10 Mar 2021 06:19:16 -0800 (PST) Date: Wed, 10 Mar 2021 14:19:14 +0000 From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Stephen Boyd Cc: sudeep.holla@arm.com, lukasz.luba@arm.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, thara.gopinath@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com, Michael Turquette Subject: Re: [PATCH v6 19/37] clk: scmi: port driver to the new scmi_clk_proto_ops interface Message-ID: <20210310141914.GI8355@e120937-lin> References: <20210202221555.41167-1-cristian.marussi@arm.com> <20210202221555.41167-20-cristian.marussi@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210202221555.41167-20-cristian.marussi@arm.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210310_141922_665493_3E53854F X-CRM114-Status: GOOD ( 23.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Stephen, any chance you could have a look at this and, possibly, ack ? The rationale for the change in the SCMI layer interface is in the series cover-letter here: https://lore.kernel.org/lkml/20210202221555.41167-1-cristian.marussi@arm.com/ Thanks Cristian On Tue, Feb 02, 2021 at 10:15:37PM +0000, Cristian Marussi wrote: > Port driver to the new SCMI Clock interface based on protocol handles > and common devm_get_ops(). > > Cc: Michael Turquette > Cc: Stephen Boyd > Signed-off-by: Cristian Marussi > --- > v4 --> v5 > - using renamed devm_get/put_protocol > --- > drivers/clk/clk-scmi.c | 27 +++++++++++++++++---------- > 1 file changed, 17 insertions(+), 10 deletions(-) > > diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c > index c754dfbb73fd..f3da3042d09c 100644 > --- a/drivers/clk/clk-scmi.c > +++ b/drivers/clk/clk-scmi.c > @@ -2,7 +2,7 @@ > /* > * System Control and Power Interface (SCMI) Protocol based clock driver > * > - * Copyright (C) 2018 ARM Ltd. > + * Copyright (C) 2018-2020 ARM Ltd. > */ > > #include > @@ -13,11 +13,13 @@ > #include > #include > > +static const struct scmi_clk_proto_ops *clk_ops; > + > struct scmi_clk { > u32 id; > struct clk_hw hw; > const struct scmi_clock_info *info; > - const struct scmi_handle *handle; > + const struct scmi_protocol_handle *ph; > }; > > #define to_scmi_clk(clk) container_of(clk, struct scmi_clk, hw) > @@ -29,7 +31,7 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw, > u64 rate; > struct scmi_clk *clk = to_scmi_clk(hw); > > - ret = clk->handle->clk_ops->rate_get(clk->handle, clk->id, &rate); > + ret = clk_ops->rate_get(clk->ph, clk->id, &rate); > if (ret) > return 0; > return rate; > @@ -69,21 +71,21 @@ 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, rate); > + return clk_ops->rate_set(clk->ph, clk->id, rate); > } > > static int scmi_clk_enable(struct clk_hw *hw) > { > struct scmi_clk *clk = to_scmi_clk(hw); > > - return clk->handle->clk_ops->enable(clk->handle, clk->id); > + return clk_ops->enable(clk->ph, clk->id); > } > > static void scmi_clk_disable(struct clk_hw *hw) > { > struct scmi_clk *clk = to_scmi_clk(hw); > > - clk->handle->clk_ops->disable(clk->handle, clk->id); > + clk_ops->disable(clk->ph, clk->id); > } > > static const struct clk_ops scmi_clk_ops = { > @@ -142,11 +144,16 @@ static int scmi_clocks_probe(struct scmi_device *sdev) > struct device *dev = &sdev->dev; > struct device_node *np = dev->of_node; > const struct scmi_handle *handle = sdev->handle; > + struct scmi_protocol_handle *ph; > > - if (!handle || !handle->clk_ops) > + if (!handle) > return -ENODEV; > > - count = handle->clk_ops->count_get(handle); > + clk_ops = handle->devm_get_protocol(sdev, SCMI_PROTOCOL_CLOCK, &ph); > + if (IS_ERR(clk_ops)) > + return PTR_ERR(clk_ops); > + > + count = clk_ops->count_get(ph); > if (count < 0) { > dev_err(dev, "%pOFn: invalid clock output count\n", np); > return -EINVAL; > @@ -167,14 +174,14 @@ static int scmi_clocks_probe(struct scmi_device *sdev) > if (!sclk) > return -ENOMEM; > > - sclk->info = handle->clk_ops->info_get(handle, idx); > + sclk->info = clk_ops->info_get(ph, idx); > if (!sclk->info) { > dev_dbg(dev, "invalid clock info for idx %d\n", idx); > continue; > } > > sclk->id = idx; > - sclk->handle = handle; > + sclk->ph = ph; > > err = scmi_clk_ops_init(dev, sclk); > if (err) { > -- > 2.17.1 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel