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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4B2BC7EE2C for ; Fri, 5 May 2023 11:28:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231952AbjEEL2T (ORCPT ); Fri, 5 May 2023 07:28:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38682 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231842AbjEEL2J (ORCPT ); Fri, 5 May 2023 07:28:09 -0400 Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7AA5F124AD for ; Fri, 5 May 2023 04:28:00 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id BA08B3200A87; Fri, 5 May 2023 07:27:41 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 05 May 2023 07:27:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1683286061; x=1683372461; bh=ZIgJ5ijCTY/v1WziGp/hIgqkKCFCnTtWZxF yDL4rb90=; b=GtFaWjxlQk8x7qa9yFlpZ0Hy/I7qW4cPVQZTkwWEu4XNDXBFuf+ I1UFy/W+zOLPyowDr8bog+3SA2HYATSOUpA/Uxml4ItPCxBm4Z43BjYjvwCwq0sJ fWvgsSi4DDpMk9V7v0eGn2zeDm9HOc/zz+4MAjFlMZ3+21XoZWAXhLdJKYtCgM4r 1jMoVj771dInkceD3k8x4YMDdrvuG1qjyNPDInIQUqqoaojstF4u2sGw1js2WlFt lxmQGcvbgwiOrQ1SS1D/Y0gTjMMskVaoOtCM96gA/B860Ci7eR2PGiL3ITsq8G7O MuIDiv0vZut/Gen8TyRqMY4DZ/yBF0ofHcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1683286061; x=1683372461; bh=ZIgJ5ijCTY/v1WziGp/hIgqkKCFCnTtWZxF yDL4rb90=; b=Pk5WQuTCuy7NKd1s+Qq5Y99gn+uLSallJmXEAeCP+5O3Qco8/oO TXFMjRdAAzPjGAgb0gowlnlSXHnBWObOCIDmxYVdRPgQWjZ/M8T3qFDDssCw2dwW hhm/UEkyizYvvPC+/UaUs8jpHwMXW8oMowEJhMtEoc4ym+apRMUCZd14kH2oh8Fn j6SbQeE+9dVl5qZ5ebslQI3giIQiFLLiy0rCXb7VN7RRS5nXirCy5ZfhEg7ID2by scyU+R9GkMkmQUYPqnLfGAAYboYARiryBg75pL5nQI20GP9Rri16UnRd0SKEv9xZ fKoLkLFlIeKb2kPlRVIWiEGJieiqv0lLc7Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeefvddggedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdejnecuhfhrohhmpeforgig ihhmvgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrf grthhtvghrnhepvedvleeijeegvdekffehkeehieelhfeggfffheetkeeuledvtdeuffeh teeltdffnecuvehluhhsthgvrhfuihiivgepieenucfrrghrrghmpehmrghilhhfrhhomh epmhgrgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 5 May 2023 07:27:40 -0400 (EDT) From: Maxime Ripard Date: Fri, 05 May 2023 13:25:41 +0200 Subject: [PATCH v4 39/68] clk: versatile: sp810: Add a determine_rate hook MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20221018-clk-range-checks-fixes-v4-39-971d5077e7d2@cerno.tech> References: <20221018-clk-range-checks-fixes-v4-0-971d5077e7d2@cerno.tech> In-Reply-To: <20221018-clk-range-checks-fixes-v4-0-971d5077e7d2@cerno.tech> To: Michael Turquette , Stephen Boyd Cc: linux-clk@vger.kernel.org, Maxime Ripard , Linus Walleij , Pawel Moll , linux-arm-kernel@lists.infradead.org X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1712; i=maxime@cerno.tech; h=from:subject:message-id; bh=f9fKx6fagdMn/NSMW7Lh8JOOu9FmeFzPoLjoO7VByG8=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDCkhz5e0rN72n/Nt3c/nCW4LC2auu5fTPiNmZ1v+pQ4rubLt MjdjO0pZGMS4GGTFFFlihM2XxJ2a9bqTjW8ezBxWJpAhDFycAjCRZG6Gf2ZvTRh0jGoUY95H7ApdLT jBPXtvxxdz359O21nuHflx3oWR4XLpxn0FnHfve+i2nO7eIanz30dHbvcRRpa5FuuWTlinww4A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org The Versatile sp810 "timerclken" clock implements a mux with a set_parent hook, but doesn't provide a determine_rate implementation. This is a bit odd, since set_parent() is there to, as its name implies, change the parent of a clock. However, the most likely candidates to trigger that parent change are either the assigned-clock-parents device tree property or a call to clk_set_rate(), with determine_rate() figuring out which parent is the best suited for a given rate. This mismatch is probably due to the fact that the driver introduction predates the determine_rate introduction, and it was never revised since then. The default, implicit, behaviour that has been in use so far has thus been to simply keep using the current parent in all cases. This is also the behaviour of the new clk_hw_determine_rate_no_reparent() helper, so we can simply use it to make our expectation explicit. Cc: Linus Walleij Cc: Pawel Moll Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Maxime Ripard --- drivers/clk/versatile/clk-sp810.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/versatile/clk-sp810.c b/drivers/clk/versatile/clk-sp810.c index caf0cd2fb5b6..45adac1b4630 100644 --- a/drivers/clk/versatile/clk-sp810.c +++ b/drivers/clk/versatile/clk-sp810.c @@ -63,6 +63,7 @@ static int clk_sp810_timerclken_set_parent(struct clk_hw *hw, u8 index) } static const struct clk_ops clk_sp810_timerclken_ops = { + .determine_rate = clk_hw_determine_rate_no_reparent, .get_parent = clk_sp810_timerclken_get_parent, .set_parent = clk_sp810_timerclken_set_parent, }; -- 2.40.0 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 938D4C7EE23 for ; Fri, 5 May 2023 11:28:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=SbcbZZGKub8PwnXmC8+Jk6r/AjFoCnto1Br2vi3iEgA=; b=xsaNKqztALYeXV Kj4dbAmahv6X9uksVDJ2YnN1w6B+khNE253niV0hc0/d6MOi4F6glgtfSHs1lg5iYytI+Vg/tcCcA WPwE71t7M7IRUcfeyJA6vl7avQHkUg/CoZnKKRA7agF/cOqz80K2y/suq5ETLUqjhQhnJIcN5033e o0V4ixz60YcFbR+37xstawmI8gwfCE542G05HXkMyT6LWQrZu0vY1wLgYRJR7mqGWUZGrCeIRrzcY KRMgQUT+a5BNWRPpVCDxqErtFC8kTqv5wDJ4BqADILGeyOOC7qdLmKfBPJJE/OC0BsJhgTEWzuFir vU8Jgo1f3Med0OcOOelg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1putbF-00Afpc-1S; Fri, 05 May 2023 11:27:45 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1putbC-00AfnL-2J for linux-arm-kernel@lists.infradead.org; Fri, 05 May 2023 11:27:44 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id BA08B3200A87; Fri, 5 May 2023 07:27:41 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 05 May 2023 07:27:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1683286061; x=1683372461; bh=ZIgJ5ijCTY/v1WziGp/hIgqkKCFCnTtWZxF yDL4rb90=; b=GtFaWjxlQk8x7qa9yFlpZ0Hy/I7qW4cPVQZTkwWEu4XNDXBFuf+ I1UFy/W+zOLPyowDr8bog+3SA2HYATSOUpA/Uxml4ItPCxBm4Z43BjYjvwCwq0sJ fWvgsSi4DDpMk9V7v0eGn2zeDm9HOc/zz+4MAjFlMZ3+21XoZWAXhLdJKYtCgM4r 1jMoVj771dInkceD3k8x4YMDdrvuG1qjyNPDInIQUqqoaojstF4u2sGw1js2WlFt lxmQGcvbgwiOrQ1SS1D/Y0gTjMMskVaoOtCM96gA/B860Ci7eR2PGiL3ITsq8G7O MuIDiv0vZut/Gen8TyRqMY4DZ/yBF0ofHcA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1683286061; x=1683372461; bh=ZIgJ5ijCTY/v1WziGp/hIgqkKCFCnTtWZxF yDL4rb90=; b=Pk5WQuTCuy7NKd1s+Qq5Y99gn+uLSallJmXEAeCP+5O3Qco8/oO TXFMjRdAAzPjGAgb0gowlnlSXHnBWObOCIDmxYVdRPgQWjZ/M8T3qFDDssCw2dwW hhm/UEkyizYvvPC+/UaUs8jpHwMXW8oMowEJhMtEoc4ym+apRMUCZd14kH2oh8Fn j6SbQeE+9dVl5qZ5ebslQI3giIQiFLLiy0rCXb7VN7RRS5nXirCy5ZfhEg7ID2by scyU+R9GkMkmQUYPqnLfGAAYboYARiryBg75pL5nQI20GP9Rri16UnRd0SKEv9xZ fKoLkLFlIeKb2kPlRVIWiEGJieiqv0lLc7Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeefvddggedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdejnecuhfhrohhmpeforgig ihhmvgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuggftrf grthhtvghrnhepvedvleeijeegvdekffehkeehieelhfeggfffheetkeeuledvtdeuffeh teeltdffnecuvehluhhsthgvrhfuihiivgepieenucfrrghrrghmpehmrghilhhfrhhomh epmhgrgihimhgvsegtvghrnhhordhtvggthh X-ME-Proxy: Feedback-ID: i8771445c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 5 May 2023 07:27:40 -0400 (EDT) From: Maxime Ripard Date: Fri, 05 May 2023 13:25:41 +0200 Subject: [PATCH v4 39/68] clk: versatile: sp810: Add a determine_rate hook MIME-Version: 1.0 Message-Id: <20221018-clk-range-checks-fixes-v4-39-971d5077e7d2@cerno.tech> References: <20221018-clk-range-checks-fixes-v4-0-971d5077e7d2@cerno.tech> In-Reply-To: <20221018-clk-range-checks-fixes-v4-0-971d5077e7d2@cerno.tech> To: Michael Turquette , Stephen Boyd Cc: linux-clk@vger.kernel.org, Maxime Ripard , Linus Walleij , Pawel Moll , linux-arm-kernel@lists.infradead.org X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1712; i=maxime@cerno.tech; h=from:subject:message-id; bh=f9fKx6fagdMn/NSMW7Lh8JOOu9FmeFzPoLjoO7VByG8=; b=owGbwMvMwCX2+D1vfrpE4FHG02pJDCkhz5e0rN72n/Nt3c/nCW4LC2auu5fTPiNmZ1v+pQ4rubLt MjdjO0pZGMS4GGTFFFlihM2XxJ2a9bqTjW8ezBxWJpAhDFycAjCRZG6Gf2ZvTRh0jGoUY95H7ApdLT jBPXtvxxdz359O21nuHflx3oWR4XLpxn0FnHfve+i2nO7eIanz30dHbvcRRpa5FuuWTlinww4A X-Developer-Key: i=maxime@cerno.tech; a=openpgp; fpr=BE5675C37E818C8B5764241C254BCFC56BF6CE8D X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230505_042742_800511_41E02ED8 X-CRM114-Status: GOOD ( 15.98 ) 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 The Versatile sp810 "timerclken" clock implements a mux with a set_parent hook, but doesn't provide a determine_rate implementation. This is a bit odd, since set_parent() is there to, as its name implies, change the parent of a clock. However, the most likely candidates to trigger that parent change are either the assigned-clock-parents device tree property or a call to clk_set_rate(), with determine_rate() figuring out which parent is the best suited for a given rate. This mismatch is probably due to the fact that the driver introduction predates the determine_rate introduction, and it was never revised since then. The default, implicit, behaviour that has been in use so far has thus been to simply keep using the current parent in all cases. This is also the behaviour of the new clk_hw_determine_rate_no_reparent() helper, so we can simply use it to make our expectation explicit. Cc: Linus Walleij Cc: Pawel Moll Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Maxime Ripard --- drivers/clk/versatile/clk-sp810.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/clk/versatile/clk-sp810.c b/drivers/clk/versatile/clk-sp810.c index caf0cd2fb5b6..45adac1b4630 100644 --- a/drivers/clk/versatile/clk-sp810.c +++ b/drivers/clk/versatile/clk-sp810.c @@ -63,6 +63,7 @@ static int clk_sp810_timerclken_set_parent(struct clk_hw *hw, u8 index) } static const struct clk_ops clk_sp810_timerclken_ops = { + .determine_rate = clk_hw_determine_rate_no_reparent, .get_parent = clk_sp810_timerclken_get_parent, .set_parent = clk_sp810_timerclken_set_parent, }; -- 2.40.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel