From nobody Tue Feb 10 09:02:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=telecom-paris.fr ARC-Seal: i=1; a=rsa-sha256; t=1710672076; cv=none; d=zohomail.com; s=zohoarc; b=VIWqLmXgX1+S7LUcrsx4ZlfpxA8B7wSVv4p1Xu/iGhh4xHSWSOMYmonNCnAGHm6Rfkqg5RXx34osZWxeupDPUep3j4rcJoNnK9VpXk69wgpSQmqyNQ44FY2bE3J6/UfYl6dwWNi4RaUazoGL20JIe78hRQN1R4C/e7YxtXntSFI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1710672076; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=z8vP61lOqCHtPIe/NMBtNrdjHVIxDoNiy4/4Xzg3S5o=; b=C2TR6dh7HkeoDZFmW8C866mlmKYpIeEDFSOOwsXN6z/vNlRezxwntnPS2nCSxaa2CeH0RSOXtQayOW2cBjTtvgwXZpDtqraR/39m3kSMiDqbqaauyOrz26+QOmBghhkGVFMn2IDfeRj+ZTtVhSjQBWebmGKdDI6j41473H9cYwg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1710672076510619.9527373035252; Sun, 17 Mar 2024 03:41:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rlnw0-0001i6-7n; Sun, 17 Mar 2024 06:40:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlnvx-0001hJ-Jm; Sun, 17 Mar 2024 06:40:05 -0400 Received: from zproxy3.enst.fr ([137.194.2.222]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rlnvu-00010v-R6; Sun, 17 Mar 2024 06:40:05 -0400 Received: from localhost (localhost [IPv6:::1]) by zproxy3.enst.fr (Postfix) with ESMTP id 149E3A06DC; Sun, 17 Mar 2024 11:39:59 +0100 (CET) Received: from zproxy3.enst.fr ([IPv6:::1]) by localhost (zproxy3.enst.fr [IPv6:::1]) (amavis, port 10032) with ESMTP id LF9tRo2h-9DW; Sun, 17 Mar 2024 11:39:58 +0100 (CET) Received: from localhost (localhost [IPv6:::1]) by zproxy3.enst.fr (Postfix) with ESMTP id 9F25EA084B; Sun, 17 Mar 2024 11:39:58 +0100 (CET) Received: from zproxy3.enst.fr ([IPv6:::1]) by localhost (zproxy3.enst.fr [IPv6:::1]) (amavis, port 10026) with ESMTP id hO9EbYk_ZZsy; Sun, 17 Mar 2024 11:39:58 +0100 (CET) Received: from AM-Inspiron-3585.. (cust-west-par-46-193-4-103.cust.wifirst.net [46.193.4.103]) by zproxy3.enst.fr (Postfix) with ESMTPSA id 3778DA06DC; Sun, 17 Mar 2024 11:39:58 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy3.enst.fr 9F25EA084B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telecom-paris.fr; s=A35C7578-1106-11E5-A17F-C303FDDA8F2E; t=1710671998; bh=z8vP61lOqCHtPIe/NMBtNrdjHVIxDoNiy4/4Xzg3S5o=; h=From:To:Date:Message-Id:MIME-Version; b=QXXWQoJnJAWu1igVq/rk9IRMaWIH8tHuQTj1+R1vCNVwEwPM09UdjGMePFiMw/teJ pOr0ExBUf4IoHnGMib9vIFbCTtfmj9ct3u3Tfbdk6elIsOjp8OhQ/IXXmA5s93aSSS /hKwhCITgN6LHJlsMwKWL5tJV9eauJNQgmKCXIuw= X-Virus-Scanned: amavis at enst.fr From: Arnaud Minier To: qemu-devel@nongnu.org Cc: Samuel Tardieu , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Alistair Francis , Paolo Bonzini , =?UTF-8?q?In=C3=A8s=20Varhol?= , Peter Maydell , qemu-arm@nongnu.org, Laurent Vivier , Thomas Huth , Arnaud Minier Subject: [PATCH 1/7] hw/misc/stm32l4x5_rcc: Propagate period when enabling a clock Date: Sun, 17 Mar 2024 11:39:12 +0100 Message-Id: <20240317103918.44375-2-arnaud.minier@telecom-paris.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240317103918.44375-1-arnaud.minier@telecom-paris.fr> References: <20240317103918.44375-1-arnaud.minier@telecom-paris.fr> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=137.194.2.222; envelope-from=arnaud.minier@telecom-paris.fr; helo=zproxy3.enst.fr X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @telecom-paris.fr) X-ZM-MESSAGEID: 1710672078959100001 Content-Type: text/plain; charset="utf-8" The "clock_set_mul_div" function doesn't propagate the clock period to the children if it is changed (e.g. by enabling/disabling a clock multiplexer). This was overlooked during the implementation due to late changes. This commit propagates the change if the multiplier or divider changes. The usart tests will ensure that this behavior will not regress. Signed-off-by: Arnaud Minier Signed-off-by: In=C3=A8s Varhol --- hw/misc/stm32l4x5_rcc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/misc/stm32l4x5_rcc.c b/hw/misc/stm32l4x5_rcc.c index bc2d63528b..4725ba4f1c 100644 --- a/hw/misc/stm32l4x5_rcc.c +++ b/hw/misc/stm32l4x5_rcc.c @@ -59,7 +59,12 @@ static void clock_mux_update(RccClockMuxState *mux, bool= bypass_source) freq_multiplier =3D mux->divider; } =20 - clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier); + if ((mux->out->multiplier !=3D freq_multiplier) || + mux->out->divider !=3D mux->multiplier) { + clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier); + clock_propagate(mux->out); + } + clock_update(mux->out, clock_get(current_source)); =20 src_freq =3D clock_get_hz(current_source); --=20 2.34.1