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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8AC84C52D6F for ; Wed, 21 Aug 2024 13:19:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Type:MIME-Version:References:Message-ID:Subject:To:From:Date:Reply-To :Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=H+p2/MzXQ2jNO4UuOPovrNo2l5RvK4lg8DB+NoiIc4k=; b=A1g+Yc5z3TbmCMB7S9ap7BJ2rO 4gz+hXdqjdULhXZEK6icMPAT1T4o1+EgAwERgjWbpHDjgfimwM4JTZBIFJR4JO8T/GyAkcrAw32G3 +SJztkOlE2Lcb+HEXA6bDmyobBlkEy+COfbghMe68e5InGk0Q7lH66P0Z/Lg7rAwoMoAzhfyZw8Mt rcPtLFrmEA6Co0U4EUzDmpC9LpPePVSeMjJWVyn3wpnH2xGgx39lpMlXDO6llAAOM2RtXMrMLvO7t Hlp+ZxnDwRZFmrXoEWg22x+Ptj9XPghkPHAAyIm4Ct5y8Sa1rSxqyFL2N7ayLJUpVm2UNmmx3N7dr tTIJbmlQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sglEp-000000096gb-2l7b; Wed, 21 Aug 2024 13:18:59 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sglE1-000000096PB-23Rz; Wed, 21 Aug 2024 13:18:11 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 0BB4FCE0B96; Wed, 21 Aug 2024 13:18:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D13AC32782; Wed, 21 Aug 2024 13:17:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724246286; bh=4J5Z1SoLstMKvuEFmueN5cD92XhXbF48rhCyXiWqfc8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gt5sU611t1gy+i8JnErfPLmmKuJIbmOK6bDfgnJfFMunesDxEgSJWKQHJH7HorUt2 KWMOlcQ2O1Y2uFn29Q9JrGDY84kKO6op6X2DWdH0So1eEgpqTG1GhN4NgBAPFFYjR3 6iQ8eTcht9a9xvQEVwWrUygQ9Gc7PxiX1Zd3Cm8WKs8qT7kAKv90AZ4QRmEnyxazHL Mo5+8Rox6+uBq9xMTj6WH7xnRuesauC+3GrfvSULC9u/Vm/wW431RGkU17h/qsRTI0 GoXlW0w4qVTdOb4tgA679+OVfJJO9DHJuJiU8Cx2HwVAKabf9gbL6BvtxF+vMe/BTP CrKWiO7SWrtqw== Date: Wed, 21 Aug 2024 14:17:57 +0100 From: Simon Horman To: Andrea della Porta Subject: Re: [PATCH 06/11] clk: rp1: Add support for clocks provided by RP1 Message-ID: <20240821131757.GB6387@kernel.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240821_061809_903131_36B00666 X-CRM114-Status: GOOD ( 21.84 ) 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: , Cc: Andrew Lunn , Catalin Marinas , Michael Turquette , Claudiu Beznea , Eric Dumazet , Dragan Cvetic , Will Deacon , linux-clk@vger.kernel.org, linux-arch@vger.kernel.org, Rob Herring , Florian Fainelli , Lee Jones , Saravana Kannan , Broadcom internal kernel review list , linux-pci@vger.kernel.org, Jakub Kicinski , Paolo Abeni , Linus Walleij , devicetree@vger.kernel.org, Conor Dooley , Arnd Bergmann , linux-gpio@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, Derek Kiernan , Stephen Boyd , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Stefan Wahren , netdev@vger.kernel.org, Krzysztof Kozlowski , "David S. Miller" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Aug 20, 2024 at 04:36:08PM +0200, Andrea della Porta wrote: > RaspberryPi RP1 is an MFD providing, among other peripherals, several > clock generators and PLLs that drives the sub-peripherals. > Add the driver to support the clock providers. > > Signed-off-by: Andrea della Porta ... > diff --git a/drivers/clk/clk-rp1.c b/drivers/clk/clk-rp1.c > new file mode 100644 > index 000000000000..d18e711c0623 > --- /dev/null > +++ b/drivers/clk/clk-rp1.c > @@ -0,0 +1,1655 @@ > +// SPDX-License-Identifier: GPL checkpatch says: WARNING: 'SPDX-License-Identifier: GPL' is not supported in LICENSES/... ... > +static int rp1_clock_set_parent(struct clk_hw *hw, u8 index) > +{ > + struct rp1_clock *clock = container_of(hw, struct rp1_clock, hw); > + struct rp1_clockman *clockman = clock->clockman; > + const struct rp1_clock_data *data = clock->data; > + u32 ctrl, sel; > + > + spin_lock(&clockman->regs_lock); > + ctrl = clockman_read(clockman, data->ctrl_reg); > + > + if (index >= data->num_std_parents) { > + /* This is an aux source request */ > + if (index >= data->num_std_parents + data->num_aux_parents) It looks like &clockman->regs_lock needs to be unlocked here. Flagged by Smatch, Sparse. and Coccinelle. > + return -EINVAL; > + > + /* Select parent from aux list */ > + ctrl = set_register_field(ctrl, index - data->num_std_parents, > + CLK_CTRL_AUXSRC_MASK, > + CLK_CTRL_AUXSRC_SHIFT); > + /* Set src to aux list */ > + ctrl = set_register_field(ctrl, AUX_SEL, data->clk_src_mask, > + CLK_CTRL_SRC_SHIFT); > + } else { > + ctrl = set_register_field(ctrl, index, data->clk_src_mask, > + CLK_CTRL_SRC_SHIFT); > + } > + > + clockman_write(clockman, data->ctrl_reg, ctrl); > + spin_unlock(&clockman->regs_lock); > + > + sel = rp1_clock_get_parent(hw); > + WARN(sel != index, "(%s): Parent index req %u returned back %u\n", > + data->name, index, sel); > + > + return 0; > +} ...