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=-5.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_PASS autolearn=ham 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 399EAC282C0 for ; Fri, 25 Jan 2019 21:28:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 081C9218B0 for ; Fri, 25 Jan 2019 21:28:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1548451712; bh=ZbAOvZ7TcGXFrQiocOFb2gplYV9RMuWPk15cBWYoOB0=; h=Subject:References:Cc:From:In-Reply-To:To:Date:List-ID:From; b=opO3f47SXEkENy13NjUpTz37Fztb1IDVlKKyc4wwHhkfxl5JUj7SwiBInWKeQ8292 1tgPb087/v5VdfiCesbmyKh+rfHcqMpEAmP/5MmrA7W+AE9IKCIRVkMCv78vtfolLk d4F451v56SRfc1fEBXoPUTQFdmQFfuGMzdUT+zjg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726257AbfAYV2b (ORCPT ); Fri, 25 Jan 2019 16:28:31 -0500 Received: from mail.kernel.org ([198.145.29.99]:35566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726179AbfAYV2b (ORCPT ); Fri, 25 Jan 2019 16:28:31 -0500 Received: from localhost (unknown [104.132.0.74]) (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 EF665217D4; Fri, 25 Jan 2019 21:28:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1548451710; bh=ZbAOvZ7TcGXFrQiocOFb2gplYV9RMuWPk15cBWYoOB0=; h=Subject:References:Cc:From:In-Reply-To:To:Date:From; b=azlP41og08i5ER5VHcOjNTBAxv+CL1O+TAWyGAECtyyQYakre7GL0bAeMTfgQojyl 5vspxPqRcMzhtNIugDuIpOzrxXVxq5MYYxTTM98S8jPrfN3zt/xZZ10iP7oCG+BTve mOTLGKyfKbxYJpBa8aXz5GKhtmpYKSms+8+gj/l8= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: Re: [PATCH v3 2/4] clk: core: link consumer with clock driver References: <20181204192440.12125-1-miquel.raynal@bootlin.com> <20181204192440.12125-3-miquel.raynal@bootlin.com> <154454837597.17204.11648795524314926025@swboyd.mtv.corp.google.com> <20190104165406.3b52399a@xps13> User-Agent: alot/0.8 Cc: Michael Turquette , Russell King , linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Thomas Petazzoni , Antoine Tenart , Maxime Chevallier , Gregory Clement , Nadav Haklai From: Stephen Boyd In-Reply-To: <20190104165406.3b52399a@xps13> Message-ID: <154845170894.136743.2408260720819956377@swboyd.mtv.corp.google.com> To: Miquel Raynal Date: Fri, 25 Jan 2019 13:28:28 -0800 Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org Quoting Miquel Raynal (2019-01-04 07:54:06) > Hi Stephen, >=20 > Stephen Boyd wrote on Tue, 11 Dec 2018 09:12:55 > -0800: >=20 > > Sorry, I'm not reviewing the whole patch right now, just this one little > > bit because I'm also working in the same area. > >=20 > > Quoting Miquel Raynal (2018-12-04 11:24:38) > > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provide= r.h > > > index 60c51871b04b..721d6b55b2fa 100644 > > > --- a/include/linux/clk-provider.h > > > +++ b/include/linux/clk-provider.h > > > @@ -781,6 +781,8 @@ void devm_clk_hw_unregister(struct device *dev, s= truct clk_hw *hw); > > > const char *__clk_get_name(const struct clk *clk); > > > const char *clk_hw_get_name(const struct clk_hw *hw); > > > struct clk_hw *__clk_get_hw(struct clk *clk); > > > +void clk_link_consumer(struct device *consumer, struct clk *clk); > > > +void clk_unlink_consumer(struct clk *clk); =20 > >=20 > > We shouldn't need to add these functions as far as I can tell. That's > > because __clk_get() has become an internal API between clkdev.c and > > clk.c that does nothing now on implementations that aren't the CCF. We > > can even change this API to take a clk_hw pointer instead of a clk > > pointer. > >=20 > > I'd rather see us plumb a struct device and clk_hw structure down into > > __clk_get() and fold it all into __clk_create_clk, possibly even > > renaming __clk_create_clk to clk_hw_create_clk(). That way we can get > > the calling device and clk_hw pointer in one call in the clk framework, > > along with the device name and connection name, and then generate the > > struct clk right there. This can simplify some code and make it easier > > to extend this to associate calling devices with the clk consumer > > somehow. > >=20 > > Here's the diff. With this, you should be able to add and remove device > > links in clk_hw_create_clk() when dev !=3D NULL. >=20 > Thanks for the help; I updated my work on top of yours, it looks ok but > I need to run some more tests. >=20 > However I had to tweak a parameter in one of your recent changes, you > used '-1' as index in __of_clock_get() while it is not a valid value > (returning an error). As in the __of_clk_get_by_name() function you > removed index was just set to 0 at the top of the function, I think the > below fix is valid. Thanks. Makes sense so I folded it in.