From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 110623D6695 for ; Mon, 9 Mar 2026 15:06:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773068764; cv=none; b=g8B9bjgYpGpoiCbowbI6zdn3kR6hQ87KrIy62ZUZ5IBuCJKW/usrep9OMPPN/HrmgmWiexwEeQj/w+LsX9lINTWtjKMV0Z9uTpMkc9xkyI5X9DRVXexnXxOTJr03h/cifzdc+WROP81ILrFvxP2s0hXBw93R+Z18ywCfqtTwN1Q= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773068764; c=relaxed/simple; bh=23VxakV/UYmp4z3dIVXbl0SreyuAJQTZFAEqej4LTh0=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=LVhzSB5lg2/ro45hh3unkNdrj2o23kbNzt0mzhDJDNrWC4lFVHkzEHG3jiICcCD9rQMLSdDbe4u4ucmvxtVXYWJz+T054InWh8B+oTsix+kQpYduqcBl0Skizc6/vHt//+l7hlu3CuJB/1/o7Qe8HvyDEM9u2z3Ee1LURW0EJ0s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=jWsaDd0x; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=nRvg82OP; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="jWsaDd0x"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="nRvg82OP" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1773068761; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=phOctTNEVWSPGlfX8YVkAI1SC7tMCmOFyrrNOPwSW4I=; b=jWsaDd0xiVBtSZ0MSnAmeCsugTudx5hUY2C2Bkh09lAEnZukIuN165l8Vtezn8tm3neMyo UWqFsF2d0lhbf2gBZ8+BpcB5Hw5770BCa1ZsIDoTCpUoeBHSDhET4sL+LjhjzvOFC5QiTG 7k/wagPSmublJOne91+KZUOUh0bdnw8= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-257-yjHcEKfZM--y7JqWrE-DUA-1; Mon, 09 Mar 2026 11:05:59 -0400 X-MC-Unique: yjHcEKfZM--y7JqWrE-DUA-1 X-Mimecast-MFC-AGG-ID: yjHcEKfZM--y7JqWrE-DUA_1773068758 Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cd781c0d90so1069968885a.1 for ; Mon, 09 Mar 2026 08:05:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1773068758; x=1773673558; darn=vger.kernel.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=phOctTNEVWSPGlfX8YVkAI1SC7tMCmOFyrrNOPwSW4I=; b=nRvg82OPS6FK4o5I9EqzPauS8q5GAEnUpvq2uxVe0Ddh8Co5BO2RwkbZJyUd1XGQ7Q yulDdYXErn7BYnTDX8UmHUdghcKy35i8d+lwOnbPI8Dj1v6OnnTc8GGqOxwRFZsR+FjU J2r1LEa3/Pg7aWlt/Hida3f0mr1jmnyCc5TkckO2mE3aayYIrQi7crtmweNiO5mDKbUv iUU9ibDv2lu4tgaY8xnQ5AMB8SnJ0d47+tpcOD597L3YVRsFZ04ObMB9WZjge2NIgeGJ wDjhZUCUmcmoHtfpGdUc+5H5Oi8TGN7cuDOppwXfgbN6da71h2UvGPpKDczaMjzV2bi4 PD1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773068758; x=1773673558; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=phOctTNEVWSPGlfX8YVkAI1SC7tMCmOFyrrNOPwSW4I=; b=u48kcF5bEAQmo72zhMpcy2StofGGa0IGlHUy+yQ5b4IKa+l/cuB4nkU12Jp9ArNwG7 NW639hG54XerrTGIkfJ3dxKpu1zWcyDkJnQmz6fPBhgxytEm3nMcinlv0XYQcQujrnJP wM0/EdlrRuIQ8EFEySIZ1hqkTbY4VHYsG+6k8TmodmpGa01DUQ2VdmY12hppjquvmJu1 UeIoIWDZlI9bkFM832jgUfN8fMaOL+sK62btuoMrpOa1h+y/AtujMQp6lmkqbqGBXowd WJ1+M//cCGPKeSAE4WV5zBYp0CRbdUokai4rd89rpkZj+Ms/5FzybHn7cv2o6Why/yn2 oL+A== X-Forwarded-Encrypted: i=1; AJvYcCULHUTyCAWCuNCqqNPw2WRORRFxGZf30fCB2x2/Zxe7aOnudA8Nj3HxHQaCO7wzJkGFUICMZIzqQWyknFM=@vger.kernel.org X-Gm-Message-State: AOJu0YxNrF3ScLwZ8Zopj7gnB7P4Ieg36Wi7hk4wgglPXsqt9Iwh61G2 oWaTrlPr2Frw8DgB2A3djbBcgWyfAxEYbm+9u8Qhe0CfpIgTggGsToEk1hP6qkGQU6onVYJRMEN sEBzDjfk4ALgxmbKqyANm14MsSWtDHA8wajHyBn4hpXAP2GQkFcHrL/e2MPpmJ2sTKw== X-Gm-Gg: ATEYQzzcG7ImbCBKEq7RAJfLcEG0mLjsUF7LXwmUG0JsTBReBYUb2BuQr5JM695WyrW 3SY8OJZ25OAAWNrOVADagq1y4t09UWw+wt8tt5GkJ5a21FsTvFAA4+AShRAWBR+ErADYPYid6k8 KIW3KAOZidLEVt/A2iARye048fYLte0nNu/sRZ5S77C7vVfcNCD76SuxoTAATkoK+/dNgDSgO3F NW3eNCydpcNt+zmixIbMObjkjQptgEwzXFHbNIe/SSj45vtHpTW4l/4Qohh38g/N7HULAD9X4kS itQnbIGFGS54OroOcMpAxselY1zOO9N0qjSxObRCmWGStSBmI75mv61JYA+sp7h5uz7kVlcx+Ne IG4bx6Pfks2ghNrpofqBIti20TIXwWOattcq9FFhoIcPyOBocJ9wE1FEc X-Received: by 2002:a05:620a:171e:b0:8c5:2de4:d6ee with SMTP id af79cd13be357-8cd6dc5f80bmr1304761485a.33.1773068758450; Mon, 09 Mar 2026 08:05:58 -0700 (PDT) X-Received: by 2002:a05:620a:171e:b0:8c5:2de4:d6ee with SMTP id af79cd13be357-8cd6dc5f80bmr1304750085a.33.1773068757477; Mon, 09 Mar 2026 08:05:57 -0700 (PDT) Received: from redhat.com (c-73-183-52-120.hsd1.pa.comcast.net. [73.183.52.120]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cd772f9f9bsm536468385a.24.2026.03.09.08.05.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 08:05:56 -0700 (PDT) Date: Mon, 9 Mar 2026 11:05:51 -0400 From: Brian Masney To: =?iso-8859-1?Q?Beno=EEt?= Monin Cc: Vladimir Kondratiev , Gregory CLEMENT , =?iso-8859-1?Q?Th=E9o?= Lebrun , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Michael Turquette , Stephen Boyd , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Thomas Petazzoni , Tawfik Bayouk , linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-mips@vger.kernel.org Subject: Re: [PATCH v4 04/10] clk: fixed-factor: Export __clk_hw_register_fixed_factor() Message-ID: References: <20260304-clk-eyeq7-v4-0-9d6bd9d24bec@bootlin.com> <20260304-clk-eyeq7-v4-4-9d6bd9d24bec@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260304-clk-eyeq7-v4-4-9d6bd9d24bec@bootlin.com> User-Agent: Mutt/2.2.14 (2025-02-20) On Wed, Mar 04, 2026 at 04:25:18PM +0100, Benoît Monin wrote: > Make the base registration function for fixed-factor clocks public and > re-implement the various registration functions that are a direct call > to __clk_hw_register_fixed_factor() as macros. > > This is similar to how the registration functions of divider, mux and > other clocks are implemented. > > Add a new macro clk_hw_register_fixed_factor_pdata() to register > a fixed-factor clock with its parent clock passed as a struct > clk_parent_data. > > Signed-off-by: Benoît Monin > --- > drivers/clk/clk-fixed-factor.c | 52 ++------------------------------------- > include/linux/clk-provider.h | 56 +++++++++++++++++++++++++++++++++--------- > 2 files changed, 46 insertions(+), 62 deletions(-) > > diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c > index 359e91441c74..6116f878fc8f 100644 > --- a/drivers/clk/clk-fixed-factor.c > +++ b/drivers/clk/clk-fixed-factor.c > @@ -90,7 +90,7 @@ static void devm_clk_hw_register_fixed_factor_release(struct device *dev, void * > clk_hw_unregister(&fix->hw); > } > > -static struct clk_hw * > +struct clk_hw * > __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np, > const char *name, const char *parent_name, > const struct clk_hw *parent_hw, const struct clk_parent_data *pdata, > @@ -148,6 +148,7 @@ __clk_hw_register_fixed_factor(struct device *dev, struct device_node *np, > > return hw; > } > +EXPORT_SYMBOL_GPL(__clk_hw_register_fixed_factor); > > /** > * devm_clk_hw_register_fixed_factor_index - Register a fixed factor clock with > @@ -173,46 +174,6 @@ struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev, > } > EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor_index); > > -/** > - * devm_clk_hw_register_fixed_factor_parent_hw - Register a fixed factor clock with > - * pointer to parent clock > - * @dev: device that is registering this clock > - * @name: name of this clock > - * @parent_hw: pointer to parent clk > - * @flags: fixed factor flags > - * @mult: multiplier > - * @div: divider > - * > - * Return: Pointer to fixed factor clk_hw structure that was registered or > - * an error pointer. > - */ > -struct clk_hw *devm_clk_hw_register_fixed_factor_parent_hw(struct device *dev, > - const char *name, const struct clk_hw *parent_hw, > - unsigned long flags, unsigned int mult, unsigned int div) > -{ > - return __clk_hw_register_fixed_factor(dev, NULL, name, NULL, parent_hw, > - NULL, flags, mult, div, 0, 0, true); > -} > -EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor_parent_hw); > - > -struct clk_hw *clk_hw_register_fixed_factor_parent_hw(struct device *dev, > - const char *name, const struct clk_hw *parent_hw, > - unsigned long flags, unsigned int mult, unsigned int div) > -{ > - return __clk_hw_register_fixed_factor(dev, NULL, name, NULL, parent_hw, > - NULL, flags, mult, div, 0, 0, false); > -} > -EXPORT_SYMBOL_GPL(clk_hw_register_fixed_factor_parent_hw); > - > -struct clk_hw *clk_hw_register_fixed_factor(struct device *dev, > - const char *name, const char *parent_name, unsigned long flags, > - unsigned int mult, unsigned int div) > -{ > - return __clk_hw_register_fixed_factor(dev, NULL, name, parent_name, NULL, > - NULL, flags, mult, div, 0, 0, false); > -} > -EXPORT_SYMBOL_GPL(clk_hw_register_fixed_factor); > - > struct clk_hw *clk_hw_register_fixed_factor_fwname(struct device *dev, > struct device_node *np, const char *name, const char *fw_name, > unsigned long flags, unsigned int mult, unsigned int div) > @@ -286,15 +247,6 @@ void clk_hw_unregister_fixed_factor(struct clk_hw *hw) > } > EXPORT_SYMBOL_GPL(clk_hw_unregister_fixed_factor); > > -struct clk_hw *devm_clk_hw_register_fixed_factor(struct device *dev, > - const char *name, const char *parent_name, unsigned long flags, > - unsigned int mult, unsigned int div) > -{ > - return __clk_hw_register_fixed_factor(dev, NULL, name, parent_name, NULL, > - NULL, flags, mult, div, 0, 0, true); > -} > -EXPORT_SYMBOL_GPL(devm_clk_hw_register_fixed_factor); > - > struct clk_hw *devm_clk_hw_register_fixed_factor_fwname(struct device *dev, > struct device_node *np, const char *name, const char *fw_name, > unsigned long flags, unsigned int mult, unsigned int div) > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h > index 630705a47129..614abb396a6e 100644 > --- a/include/linux/clk-provider.h > +++ b/include/linux/clk-provider.h > @@ -1146,13 +1146,16 @@ struct clk_fixed_factor { > #define to_clk_fixed_factor(_hw) container_of(_hw, struct clk_fixed_factor, hw) > > extern const struct clk_ops clk_fixed_factor_ops; > +struct clk_hw * > +__clk_hw_register_fixed_factor(struct device *dev, struct device_node *np, > + const char *name, const char *parent_name, > + const struct clk_hw *parent_hw, const struct clk_parent_data *pdata, > + unsigned long flags, unsigned int mult, unsigned int div, > + unsigned long acc, unsigned int fixflags, bool devm); > struct clk *clk_register_fixed_factor(struct device *dev, const char *name, > const char *parent_name, unsigned long flags, > unsigned int mult, unsigned int div); > void clk_unregister_fixed_factor(struct clk *clk); > -struct clk_hw *clk_hw_register_fixed_factor(struct device *dev, > - const char *name, const char *parent_name, unsigned long flags, > - unsigned int mult, unsigned int div); > struct clk_hw *clk_hw_register_fixed_factor_fwname(struct device *dev, > struct device_node *np, const char *name, const char *fw_name, > unsigned long flags, unsigned int mult, unsigned int div); > @@ -1164,9 +1167,6 @@ struct clk_hw *clk_hw_register_fixed_factor_index(struct device *dev, > const char *name, unsigned int index, unsigned long flags, > unsigned int mult, unsigned int div); > void clk_hw_unregister_fixed_factor(struct clk_hw *hw); > -struct clk_hw *devm_clk_hw_register_fixed_factor(struct device *dev, > - const char *name, const char *parent_name, unsigned long flags, > - unsigned int mult, unsigned int div); > struct clk_hw *devm_clk_hw_register_fixed_factor_fwname(struct device *dev, > struct device_node *np, const char *name, const char *fw_name, > unsigned long flags, unsigned int mult, unsigned int div); > @@ -1178,13 +1178,45 @@ struct clk_hw *devm_clk_hw_register_fixed_factor_index(struct device *dev, > const char *name, unsigned int index, unsigned long flags, > unsigned int mult, unsigned int div); > > -struct clk_hw *devm_clk_hw_register_fixed_factor_parent_hw(struct device *dev, > - const char *name, const struct clk_hw *parent_hw, > - unsigned long flags, unsigned int mult, unsigned int div); > +# define clk_hw_register_fixed_factor(dev, name, parent_name, \ > + flags, mult, div) \ > + __clk_hw_register_fixed_factor((dev), NULL, (name), (parent_name), \ > + NULL, NULL, (flags), (mult), (div), \ > + 0, 0, false) Why the extra space between # and define? It's not used below. With that fixed: Reviewed-by: Brian Masney > +#define clk_hw_register_fixed_factor_pdata(dev, np, name, pdata, \ > + flags, mult, div, acc, fixflags) \ > + __clk_hw_register_fixed_factor((dev), (np), (name), NULL, NULL, \ > + (pdata), (flags), (mult), (div), \ > + (acc), (fixflags), false) > +#define devm_clk_hw_register_fixed_factor(dev, name, parent_name, flags, \ > + mult, div) \ > + __clk_hw_register_fixed_factor((dev), NULL, (name), (parent_name), \ > + NULL, NULL, (flags), (mult), (div), 0, \ > + 0, true)