From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373626; cv=none; d=zohomail.com; s=zohoarc; b=k1VZz7aw09AppJwmutzStnQx+IChcCDYTCFYI755FU9ftS92x2/nm4pEe4w76LhJzS3QPyVQZCFxKGrLuqm0C8BLujWYrpRBzpD8ajLM/Tmng5Z2i1oz/fnl1sWMR7X4gBj/jwbw6CBesXoWnLxKea+PwiQKslsDOzz5lxDeGNQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373626; 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=SzMbY9DE4/3HwqgfxhwLJUdxgeZIWP3uN9BqoNrhiWM=; b=M58yyBbslqLPQHTf89fqpq20JYgPD/rr+ZDwtMEPKGvRRbm4FXl7aQqE5aNJYWxEebQV3ieyToufVJNY30LcA4of0L+Itgl1CxDWBAg71vzb9D1YFOdJbnGOgDA6W6AVrNGgsa5zRRQWfQUei7Izkp8x8rmggFQ+/Rhp9Z6NNS8= 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 1711373626436297.87416857165124; Mon, 25 Mar 2024 06:33:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSD-0002by-Nr; Mon, 25 Mar 2024 09:33:33 -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 1rokRr-0002Uv-So for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:13 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokRq-0007KB-7y for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:11 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-33ed5b6bf59so3181568f8f.0 for ; Mon, 25 Mar 2024 06:33:09 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id ez19-20020a056000251300b00341c88ab493sm4601353wrb.10.2024.03.25.06.33.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373588; x=1711978388; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SzMbY9DE4/3HwqgfxhwLJUdxgeZIWP3uN9BqoNrhiWM=; b=Anc33GabkocihGnodBXTH1AjtqxD4Kbpvg2JZKbPNzCTWsBJzJvQlvr1a4raEfZDBj vpWYidbEpliZHOQA3XmLZhrQt/Y07nUTJP4EWjIGZa8R6seHOQs8WK9x90rWW4+Rvs5r W2AoJFs+F6ceAV6w/8+nWghKAZBMh2qHPG6hGvfWVDejxccajTtShnWkl91PNS3FnE6J 2cjq/RlXPW6Y+z2yKo2ESdaQCU3OxOTA2PmYNJePNGYSWdudoHMGYOLPcTAkHn0Rp4D6 vH7QvqoJbrbTQQgTIYPMjLr10yFYRMSLRZHMGgRUJkSAx8VXDJjdtzxZmqw7SDjW4MeK 2Fcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373588; x=1711978388; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SzMbY9DE4/3HwqgfxhwLJUdxgeZIWP3uN9BqoNrhiWM=; b=ilteFsCiBYahAZJTK/C1H8VvhmQHVPL5YhbDoE+gBFx4NGp/aP+vZupnVZiyIY02fg 02B+soY/Y1RB84fy2hzVGlXTcJvznNsvC5Hn3Ziz5qWRKMs5w0AR/PHeCW1TLTMjUkC7 lCeXlgUZyxgz5ZX1ScojlVQyema9/ioW0fCXk9ukGq/cKtbOOLbG1OWsxU3uW4f8SgND ccUbNbIYMx+pwzy5XwKS6J/u1CqAgBtV2OtqVcFijcMZASsflSayD8icdi4o9LFze2OP gXNbxUfkn1RWisCrqpXbQrTsUuxbOtythoqo97APtqHW/83dCzO6s7ra3/jO21EgFbaO 7AYw== X-Gm-Message-State: AOJu0YzHbzgy56VAVJJkjqqmJ3ZnCC01NbYjb+HnRkPQb/eUSQGixNNd TbLLHKiHsUwZTOLqH2ZlbMby724aFvnnnBYD4VsK0mm4tqL25EplXflCxJEakGbWfeQG2Wr68KQ Q/hM= X-Google-Smtp-Source: AGHT+IFeY2vJu2FC7PeDSmMscT6Xti4bGL4lGsaDwB0K3J6F1wJ2Adq2Fh+BDm/LUPL+NZGiWFiQTg== X-Received: by 2002:a5d:6507:0:b0:33d:6fd8:90d3 with SMTP id x7-20020a5d6507000000b0033d6fd890d3mr5158151wru.4.1711373587797; Mon, 25 Mar 2024 06:33:07 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-9.0 v2 1/8] hw/clock: Have clock_set_mul_div() return early when nothing to change Date: Mon, 25 Mar 2024 14:32:51 +0100 Message-ID: <20240325133259.57235-2-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::42d; envelope-from=philmd@linaro.org; helo=mail-wr1-x42d.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373627266100005 Return early when clock_set_mul_div() is called with same mul/div values the clock has. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/core/clock.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/core/clock.c b/hw/core/clock.c index d82e44cd1a..c73f0c2f98 100644 --- a/hw/core/clock.c +++ b/hw/core/clock.c @@ -147,6 +147,10 @@ void clock_set_mul_div(Clock *clk, uint32_t multiplier= , uint32_t divider) { assert(divider !=3D 0); =20 + if (clk->multiplier =3D=3D multiplier && clk->divider =3D=3D divider) { + return; + } + trace_clock_set_mul_div(CLOCK_PATH(clk), clk->multiplier, multiplier, clk->divider, divider); clk->multiplier =3D multiplier; --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373655; cv=none; d=zohomail.com; s=zohoarc; b=i+W1IQylWY6VAeS3HIp0cS1pufBt8Dbzpi/t5nT7D2S0/D5+fuBRomprV8avdJN6QxMvWlfuqxFw29IhJXbbRF1mz3OgBilbDMlgkECIgkwT8A3pKTSFRBjLLxZmzp0tbV3kEHSa/AclRaE5A9KH8zhcb2lBO6fX5cQJC++0MhY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373655; 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=LcyveRM01RBdsZUoJvcc1ljUZ85bZnawQAlgxiQ5g44=; b=Yr64k+OjCtc6NKqFTdY61in8XLz1CUeJy3fWE8n+9oQAfG59Bs9piotUl6uKrnAhBJYityKpnuwkXs+Mkl3dYWsW0qupGp4jIOE2YsMb0VRRaUWXEuZAcIWAN23ViNQ5vO2e4x+DjPgnV0EOX4j/scL1C+7jtcVjylyMKicVDyg= 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 1711373655393717.8308136883759; Mon, 25 Mar 2024 06:34:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSB-0002aw-NU; Mon, 25 Mar 2024 09:33:31 -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 1rokRz-0002Vz-NV for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:22 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokRx-0007Km-L9 for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:19 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-41488d7d0f6so6462125e9.1 for ; Mon, 25 Mar 2024 06:33:17 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id cl1-20020a5d5f01000000b00341b9737fc5sm8551423wrb.96.2024.03.25.06.33.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373596; x=1711978396; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LcyveRM01RBdsZUoJvcc1ljUZ85bZnawQAlgxiQ5g44=; b=zkogC/o//J9sp5kP/kJTjQ2jmafcdvhVYR1MNHl62FlTroHQPVQ63gPg84/xcOYbbp ssLl+eqthPU1mPOFkyEOUD6/f3/HqFF67ZjSKpZngROJdrasTAbFYZ4Gdy29f5Psh79p uH0StaOGhedVqdjlaaqAj+8dbDL++fdUJsxvok90ybdxVkfKjBHMUxcJV2+d4iKhy9p/ LaLaduKDlW73l4TznKtmW4waqe+BIc5I2a8ekZYrwC9Y8idyXCjOHL3ArgGkeG1tzjMK YkRxgNfcGdqah3kGe93q+XBS8nGFCc0E5y+33+n1+9hZKKJWJjTvUCWe5MumaVzq4037 JaJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373596; x=1711978396; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LcyveRM01RBdsZUoJvcc1ljUZ85bZnawQAlgxiQ5g44=; b=ebZRhdAm4deIBqWso9f7XR+UkzyxNp3JdbrMoZLNQyT5uPyDq+1d4d1JA4+AiBwTHN 93Hpi860gMfKHgf3oVYto2CUWVpcLYpOPGBrOcUBEOPjOtPBjrNvCvevZ8IA/3Q0OIRg +Vs4zjNd/tZEmIu4oO/eCzuSOPWDGfSP7yc34B54p1rzggdzaaOWeCaYCQV9feUam4ap UvmSs4ppykIUV3WHlPVi0jFiFLSHLTjga0yfdsR9nIUZR9hanZ7LCKNdHWQWFdwDGDSA WnOT43uWwS5zN6SodfcqZBlrn5T8nrjF5fWGTdreTykLRR8eixGDOqOkj77sPF1UAmma HMbA== X-Gm-Message-State: AOJu0Yz8aokOoUcRMBX+WN7hSaPBFJ24qRi0MLSy0avoUbgl5v0GQ2tz qn1sLkDIdcIuXVt3Qd0dkXalYbRntIgpLre8go8X4PqHAnT79p+G1WIy0WhvkWc+YnZdPBaPqKW z8mc= X-Google-Smtp-Source: AGHT+IE6y/+NX5ez0RRhTaA2VoxilKzUHty2NIeFfLScFZglQCH3mXK8q4s4o6XF4+cFJ61/qrDy5w== X-Received: by 2002:a5d:53d1:0:b0:33e:1e2b:3f76 with SMTP id a17-20020a5d53d1000000b0033e1e2b3f76mr4724078wrw.61.1711373595764; Mon, 25 Mar 2024 06:33:15 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Edgar E. Iglesias" Subject: [PATCH-for-9.0? v2 2/8] hw/clock: Pass optional &bool argument to clock_set() Date: Mon, 25 Mar 2024 14:32:52 +0100 Message-ID: <20240325133259.57235-3-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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 @linaro.org) X-ZM-MESSAGEID: 1711373657248100005 Currently clock_set() returns whether the clock has been changed or not. In order to combine this information with other clock calls, pass an optional boolean and do not return anything. The single caller ignores the return value, have it use NULL. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/clock.h | 22 ++++++++++++++++------ hw/core/clock.c | 8 +++++--- hw/misc/bcm2835_cprman.c | 2 +- hw/misc/zynq_slcr.c | 4 ++-- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/include/hw/clock.h b/include/hw/clock.h index bb12117f67..474bbc07fe 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -180,21 +180,28 @@ static inline bool clock_has_source(const Clock *clk) * clock_set: * @clk: the clock to initialize. * @value: the clock's value, 0 means unclocked + * @changed: set to true if the clock is changed, ignored if set to NULL. * * Set the local cached period value of @clk to @value. - * - * @return: true if the clock is changed. */ -bool clock_set(Clock *clk, uint64_t value); +void clock_set(Clock *clk, uint64_t period, bool *changed); =20 static inline bool clock_set_hz(Clock *clk, unsigned hz) { - return clock_set(clk, CLOCK_PERIOD_FROM_HZ(hz)); + bool changed =3D false; + + clock_set(clk, CLOCK_PERIOD_FROM_HZ(hz), &changed); + + return changed; } =20 static inline bool clock_set_ns(Clock *clk, unsigned ns) { - return clock_set(clk, CLOCK_PERIOD_FROM_NS(ns)); + bool changed =3D false; + + clock_set(clk, CLOCK_PERIOD_FROM_NS(ns), &changed); + + return changed; } =20 /** @@ -220,7 +227,10 @@ void clock_propagate(Clock *clk); */ static inline void clock_update(Clock *clk, uint64_t value) { - if (clock_set(clk, value)) { + bool changed =3D false; + + clock_set(clk, value, &changed); + if (changed) { clock_propagate(clk); } } diff --git a/hw/core/clock.c b/hw/core/clock.c index c73f0c2f98..e0f257b141 100644 --- a/hw/core/clock.c +++ b/hw/core/clock.c @@ -52,16 +52,18 @@ void clock_clear_callback(Clock *clk) clock_set_callback(clk, NULL, NULL, 0); } =20 -bool clock_set(Clock *clk, uint64_t period) +void clock_set(Clock *clk, uint64_t period, bool *changed) { if (clk->period =3D=3D period) { - return false; + return; } trace_clock_set(CLOCK_PATH(clk), CLOCK_PERIOD_TO_HZ(clk->period), CLOCK_PERIOD_TO_HZ(period)); clk->period =3D period; =20 - return true; + if (changed) { + *changed =3D true; + } } =20 static uint64_t clock_get_child_period(Clock *clk) diff --git a/hw/misc/bcm2835_cprman.c b/hw/misc/bcm2835_cprman.c index 91c8f7bd17..f16f7978ae 100644 --- a/hw/misc/bcm2835_cprman.c +++ b/hw/misc/bcm2835_cprman.c @@ -680,7 +680,7 @@ static void cprman_init(Object *obj) s->xosc =3D clock_new(obj, "xosc"); s->gnd =3D clock_new(obj, "gnd"); =20 - clock_set(s->gnd, 0); + clock_set(s->gnd, 0, NULL); =20 memory_region_init_io(&s->iomem, obj, &cprman_ops, s, "bcm2835-cprman", 0x2000); diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index d2ac2e77f2..e637798507 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -279,9 +279,9 @@ static void zynq_slcr_compute_clocks_internal(ZynqSLCRS= tate *s, uint64_t ps_clk) =20 /* compute uartX reference clocks */ clock_set(s->uart0_ref_clk, - ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT0)); + ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT0), NUL= L); clock_set(s->uart1_ref_clk, - ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT1)); + ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT1), NUL= L); } =20 /** --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373737; cv=none; d=zohomail.com; s=zohoarc; b=bbx1ol5+Gw4yO2SIfVMOUDZOaE+0E5y7jPowdV6mhS9clLkNC7gOWuQugmx0h6iPGMiO7HIPTdxj/SIt1RxBFgMMf7tOj6WspMC0kQeQ137lDMA7sHB/DyiHiTiD6dLcdKvZvqQmrOaOYGhymBZHvEXOuD2FjnvscDZtnmVSwww= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373737; 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=vr/+Morh4LGFnprtkK6/DvsiuzOF19rNj0hIhqL5OAo=; b=g3o/lyHZaYCeauRRezOIWbkdkAdxmnu4F85gEl5GpGajYiyWZ5vHdUWk6aJ+Dxj7Xpgb/GJAnfUz66EZ1katFlkKDqt8cV2w8d+1EoAdaAi+0KiJDM6AirtLnk3IZWfclPb9P8cLEcF641xG2xODaN6/fDvIRsYlFTPqC1ap0gc= 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 1711373736904536.4373721004954; Mon, 25 Mar 2024 06:35:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSE-0002dm-P3; Mon, 25 Mar 2024 09:33:35 -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 1rokS8-0002Z6-Ql for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:29 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokS6-0007MV-1p for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:28 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4148c607f31so627475e9.0 for ; Mon, 25 Mar 2024 06:33:22 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id g14-20020a05600c310e00b004147ec48845sm8405542wmo.26.2024.03.25.06.33.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373601; x=1711978401; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vr/+Morh4LGFnprtkK6/DvsiuzOF19rNj0hIhqL5OAo=; b=xm5WvVT86UmmiSruPKgvLpQVLZ5a3Tjk95kVLYdHenbXU7tQQo2fDmzpIarGQ3TcCE xK//4Aw3cLSQXwx9omv2xCZffOlomtXeC6Aq+Oft8Qsmfi1Q68KEgV38x27NTxHKD/uw au/E3rwOUC82tbBdcho+97rPb+LUJJy721rFqowZ3xRjgrUi1Xz+gEkH6FREOj1hYvHe MnzKTzodMpp/66bGxM1ifhNaVp3IOSQMrpg4SebTBYlh4OOhIeu3CDk8o2e8sCpTm868 fIEEHv/G1mB5m6fAqal5S9aRIxiPAfVRDD8gvg7MegdV+qzkdr6uWzQUJ2eaZ5KVJlEi 4CfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373601; x=1711978401; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vr/+Morh4LGFnprtkK6/DvsiuzOF19rNj0hIhqL5OAo=; b=FiDTi1l+fpLjKxlV/+0WKdHso/vBmEJm05blI4FMgwaUJi1MCKEy7FEKerdINUYe04 PR+mdDjvrkTrh+kcr4TwqjQ+NtKo9ak1TtPqyqkd33u/dFdIKDohzvpP5C/2OGDYfO3v fmKIn+Ytv8RGLk3TvUDVhiMlMQNsXS1q1c9ezZyUs7V6ha45D+cbjlZP14RhxbiNOWLJ X/GDPCwo+hhdlq5K2S4nN6xxReYtXwvzp0Q/Ul3TqtqpiFJblmsJgn1MhFUiicTqt75W uvcEgOqIOmkYvsYbQZ7ZnAw75FMC3Yri9T/p3dWFNX3ZBIKZOnmfRhbtBHZefPoFiTLJ tvdQ== X-Gm-Message-State: AOJu0YxC+Aw627jrtGZpD8kRKdf/sScBIWXE0nmL0f4O3d+zpanoah/L J5UkZMaoBSMM6xVwbPhiDlAzmSw19MQyjP5793JJ8eJdDGg9RPe8QXxXleZvH9RDrgK0/RzhP09 6zdU= X-Google-Smtp-Source: AGHT+IHLrDX/f70I7ieYuVUXsWtRYe4M2VbmiiIjJv2RHwqlDdHuNwVpWqwk8W0KZ1mkCbKSgT+8cg== X-Received: by 2002:a05:600c:56ca:b0:412:f572:5318 with SMTP id ju10-20020a05600c56ca00b00412f5725318mr5388419wmb.11.1711373601371; Mon, 25 Mar 2024 06:33:21 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-9.0? v2 3/8] hw/clock: Pass optional &bool argument to clock_set_ns() Date: Mon, 25 Mar 2024 14:32:53 +0100 Message-ID: <20240325133259.57235-4-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373737705100001 Pass optional &bool argument to clock_set_ns(). Since all callers ignore the return value, have them use NULL. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- docs/devel/clocks.rst | 2 +- include/hw/clock.h | 8 ++------ hw/arm/stellaris.c | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/devel/clocks.rst b/docs/devel/clocks.rst index c4d14bde04..3360e5616d 100644 --- a/docs/devel/clocks.rst +++ b/docs/devel/clocks.rst @@ -298,7 +298,7 @@ object during device instance init. For example: clk =3D qdev_init_clock_in(DEVICE(dev), "clk-in", clk_in_callback, dev, ClockUpdate); /* set initial value to 10ns / 100MHz */ - clock_set_ns(clk, 10); + clock_set_ns(clk, 10, NULL); =20 To enforce that the clock is wired up by the board code, you can call ``clock_has_source()`` in your device's realize method: diff --git a/include/hw/clock.h b/include/hw/clock.h index 474bbc07fe..94ed5ba6e6 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -195,13 +195,9 @@ static inline bool clock_set_hz(Clock *clk, unsigned h= z) return changed; } =20 -static inline bool clock_set_ns(Clock *clk, unsigned ns) +static inline void clock_set_ns(Clock *clk, unsigned ns, bool *changed) { - bool changed =3D false; - - clock_set(clk, CLOCK_PERIOD_FROM_NS(ns), &changed); - - return changed; + clock_set(clk, CLOCK_PERIOD_FROM_NS(ns), changed); } =20 /** diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index a2f998bf9e..d4381beeb7 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -279,7 +279,7 @@ static void ssys_calculate_system_clock(ssys_state *s, = bool propagate_clock) } else { period_ns =3D 5 * (((s->rcc >> 23) & 0xf) + 1); } - clock_set_ns(s->sysclk, period_ns); + clock_set_ns(s->sysclk, period_ns, NULL); if (propagate_clock) { clock_propagate(s->sysclk); } --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373654; cv=none; d=zohomail.com; s=zohoarc; b=LCKEUIkr27v6beEsItylYAe3rMgzVYXht3dIXjBm7R4DcSuh1LQftGk8eIy6AKZznTO4QyqDzEHmcnxzbU88eUJNm9oTSkoktzIOa1AvdKynr1NEa6FmFxYGMJL93nvCJlhZi4/t2b+wa6ldzMrZU+zxvgLk0sBy2hlK2aqGp3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373654; 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=+iChHJV7sNlvRqqjFzQcgZJQ2tuinOgYhEDNJOHyzoE=; b=HCsI5a6bOD5o4N/r+jFBWO6INEneBfSjMeq0PAkKciWKpXNXk8njwa1pK24+rfEGhL7Vk6j9OYCTXP6g3Bj3195M8t9RoIuF0jCcjtkWfBHd5fLwtbU3EJdV4de3d6ucu9D/8R5eJI2ziJupU4UmWksjql8dR206FZ+jBmynMBo= 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 171137365408092.31482547175244; Mon, 25 Mar 2024 06:34:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSF-0002ds-Na; Mon, 25 Mar 2024 09:33:35 -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 1rokSB-0002bD-PD for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:31 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokS9-0007N8-Nf for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:31 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4148bc73069so3322555e9.1 for ; Mon, 25 Mar 2024 06:33:29 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id l40-20020a05600c1d2800b0041480a1b8f7sm7972127wms.4.2024.03.25.06.33.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373608; x=1711978408; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+iChHJV7sNlvRqqjFzQcgZJQ2tuinOgYhEDNJOHyzoE=; b=yzSINfOc5KigA7rYWbldxZDNz7WrJpMf5CZewBVIHHxRHaalkbXomJ9mfGCqgKg1vx neZhXNlqD2GXVKP/VAgq0LF6/Ol5FjTxYyDVggoKdUW3Fy0p8W75V/jwheF//PgfatV3 LPI+B460xUzVhU+aT+9wuPoYl9xpSeYTn4N5oza9WtdOFTqmkmhfHfksAfb+DSq0lyYb 95Z091PmLAISGzXkNLi21mypvVSqJu6SxOv5dJDfBcBRI5feW59zYOlNmXhO0U/pb2Bp veINHTiuuYgqNXdbhy4tBopMsjY7nBMT7Ce8kMQc0Q03GuvUJRfWHFRj5powlyZMSgd0 vHHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373608; x=1711978408; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+iChHJV7sNlvRqqjFzQcgZJQ2tuinOgYhEDNJOHyzoE=; b=APbbw7uObe/cWLvWvjS6jxmrLYov1rSUJXVjJO6fEHzybJEHAg+EiBobskkOOpw2VR 9qJp61SEF674s35sg9KepNWVofcCScnwxWSCoHsGMIGzUyVQKklgmbPILuYr3/YvXPfV zGBK06vxqZ1tNQTY+iB+v0ApR7A5HKHOSHP/jWQNzYjr+0aKwtrJHJv4VDqvo3bDHcpC nCsTie1ixk2T7WMfBv6k5gWNoEnVfqYErsnKhgPixHJ0vJi65Xy+DZN/CXEIhssaPZS8 tkfPUs3upB1DfQGD9IrVz/opY4Q2uQAmlgsHqboF/2G4/csuRAQwIqQtFftXcAAaqZH2 WuAA== X-Gm-Message-State: AOJu0YxWLAWQfs/AQ4Ws8mHj9Qa2+GHTFGIcnhLyJRwExgvYJ949KZ2B W4M3bZIpB73C5NS+xVEfYibCgNWHHB3Yb/Zv8nCMMB9JZawWSD+V58DpfNJmzand6x2GnUc8ZlB HjWk= X-Google-Smtp-Source: AGHT+IEV/yh479xjpGEm/dixwALkBj+9rU8pOrz0EphvfaixtwC++Jn2XXpqh2asCeljeudbYuo71w== X-Received: by 2002:a05:600c:5128:b0:414:8a28:6c8e with SMTP id o40-20020a05600c512800b004148a286c8emr1941571wms.26.1711373607847; Mon, 25 Mar 2024 06:33:27 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Andrew Jeffery , Joel Stanley , Subbaraya Sundeep , Felipe Balbi , Alexandre Iooss , "Edgar E. Iglesias" , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Subject: [PATCH-for-9.0? v2 4/8] hw/clock: Pass optional &bool argument to clock_set_hz() Date: Mon, 25 Mar 2024 14:32:54 +0100 Message-ID: <20240325133259.57235-5-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373655368100001 Pass optional &bool argument to clock_set_ns(). Since all callers ignore the return value, have them use NULL. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/clock.h | 8 ++------ hw/arm/aspeed.c | 2 +- hw/arm/fby35.c | 2 +- hw/arm/mps2-tz.c | 4 ++-- hw/arm/mps2.c | 4 ++-- hw/arm/mps3r.c | 2 +- hw/arm/msf2-som.c | 2 +- hw/arm/musca.c | 4 ++-- hw/arm/netduino2.c | 2 +- hw/arm/netduinoplus2.c | 2 +- hw/arm/nrf51_soc.c | 2 +- hw/arm/olimex-stm32-h405.c | 2 +- hw/arm/stm32vldiscovery.c | 2 +- hw/arm/xilinx_zynq.c | 2 +- hw/char/cadence_uart.c | 4 ++-- 15 files changed, 20 insertions(+), 24 deletions(-) diff --git a/include/hw/clock.h b/include/hw/clock.h index 94ed5ba6e6..f0ac410fc8 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -186,13 +186,9 @@ static inline bool clock_has_source(const Clock *clk) */ void clock_set(Clock *clk, uint64_t period, bool *changed); =20 -static inline bool clock_set_hz(Clock *clk, unsigned hz) +static inline void clock_set_hz(Clock *clk, unsigned hz, bool *changed) { - bool changed =3D false; - - clock_set(clk, CLOCK_PERIOD_FROM_HZ(hz), &changed); - - return changed; + clock_set(clk, CLOCK_PERIOD_FROM_HZ(hz), changed); } =20 static inline void clock_set_ns(Clock *clk, unsigned ns, bool *changed) diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 8854581ca8..7e4ed71e9f 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -1521,7 +1521,7 @@ static void aspeed_minibmc_machine_init(MachineState = *machine) Clock *sysclk; =20 sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(sysclk, SYSCLK_FRQ); + clock_set_hz(sysclk, SYSCLK_FRQ, NULL); =20 bmc->soc =3D ASPEED_SOC(object_new(amc->soc_name)); object_property_add_child(OBJECT(machine), "soc", OBJECT(bmc->soc)); diff --git a/hw/arm/fby35.c b/hw/arm/fby35.c index c9964bd283..dd4abdd768 100644 --- a/hw/arm/fby35.c +++ b/hw/arm/fby35.c @@ -119,7 +119,7 @@ static void fby35_bic_init(Fby35State *s) AspeedSoCState *soc; =20 s->bic_sysclk =3D clock_new(OBJECT(s), "SYSCLK"); - clock_set_hz(s->bic_sysclk, 200000000ULL); + clock_set_hz(s->bic_sysclk, 200000000ULL, NULL); =20 object_initialize_child(OBJECT(s), "bic", &s->bic, "ast1030-a1"); soc =3D ASPEED_SOC(&s->bic); diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c index a2d18afd79..015db74ab8 100644 --- a/hw/arm/mps2-tz.c +++ b/hw/arm/mps2-tz.c @@ -818,9 +818,9 @@ static void mps2tz_common_init(MachineState *machine) =20 /* These clocks don't need migration because they are fixed-frequency = */ mms->sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(mms->sysclk, mmc->sysclk_frq); + clock_set_hz(mms->sysclk, mmc->sysclk_frq, NULL); mms->s32kclk =3D clock_new(OBJECT(machine), "S32KCLK"); - clock_set_hz(mms->s32kclk, S32KCLK_FRQ); + clock_set_hz(mms->s32kclk, S32KCLK_FRQ, NULL); =20 object_initialize_child(OBJECT(machine), TYPE_IOTKIT, &mms->iotkit, mmc->armsse_type); diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index 50919ee46d..7176305239 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -151,10 +151,10 @@ static void mps2_common_init(MachineState *machine) =20 /* This clock doesn't need migration because it is fixed-frequency */ mms->sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(mms->sysclk, SYSCLK_FRQ); + clock_set_hz(mms->sysclk, SYSCLK_FRQ, NULL); =20 mms->refclk =3D clock_new(OBJECT(machine), "REFCLK"); - clock_set_hz(mms->refclk, REFCLK_FRQ); + clock_set_hz(mms->refclk, REFCLK_FRQ, NULL); =20 /* The FPGA images have an odd combination of different RAMs, * because in hardware they are different implementations and diff --git a/hw/arm/mps3r.c b/hw/arm/mps3r.c index 4d55a6564c..84f1f9d3a2 100644 --- a/hw/arm/mps3r.c +++ b/hw/arm/mps3r.c @@ -360,7 +360,7 @@ static void mps3r_common_init(MachineState *machine) QList *oscclk; =20 mms->clk =3D clock_new(OBJECT(machine), "CLK"); - clock_set_hz(mms->clk, CLK_FRQ); + clock_set_hz(mms->clk, CLK_FRQ, NULL); =20 for (const RAMInfo *ri =3D mmc->raminfo; ri->name; ri++) { MemoryRegion *mr =3D mr_for_raminfo(mms, ri); diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c index 5c415abe85..420c0ae332 100644 --- a/hw/arm/msf2-som.c +++ b/hw/arm/msf2-som.c @@ -71,7 +71,7 @@ static void emcraft_sf2_s2s010_init(MachineState *machine) */ /* This clock doesn't need migration because it is fixed-frequency */ m3clk =3D clock_new(OBJECT(machine), "m3clk"); - clock_set_hz(m3clk, 142 * 1000000); + clock_set_hz(m3clk, 142 * 1000000, NULL); qdev_connect_clock_in(dev, "m3clk", m3clk); qdev_prop_set_uint32(dev, "apb0div", 2); qdev_prop_set_uint32(dev, "apb1div", 2); diff --git a/hw/arm/musca.c b/hw/arm/musca.c index e2c9d49af5..6fdcb76dfa 100644 --- a/hw/arm/musca.c +++ b/hw/arm/musca.c @@ -366,9 +366,9 @@ static void musca_init(MachineState *machine) assert(mmc->num_mpcs <=3D MUSCA_MPC_MAX); =20 mms->sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(mms->sysclk, SYSCLK_FRQ); + clock_set_hz(mms->sysclk, SYSCLK_FRQ, NULL); mms->s32kclk =3D clock_new(OBJECT(machine), "S32KCLK"); - clock_set_hz(mms->s32kclk, S32KCLK_FRQ); + clock_set_hz(mms->s32kclk, S32KCLK_FRQ, NULL); =20 object_initialize_child(OBJECT(machine), "sse-200", &mms->sse, TYPE_SSE200); diff --git a/hw/arm/netduino2.c b/hw/arm/netduino2.c index 8b1a9a2437..49a3ee2c47 100644 --- a/hw/arm/netduino2.c +++ b/hw/arm/netduino2.c @@ -41,7 +41,7 @@ static void netduino2_init(MachineState *machine) =20 /* This clock doesn't need migration because it is fixed-frequency */ sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(sysclk, SYSCLK_FRQ); + clock_set_hz(sysclk, SYSCLK_FRQ, NULL); =20 dev =3D qdev_new(TYPE_STM32F205_SOC); object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); diff --git a/hw/arm/netduinoplus2.c b/hw/arm/netduinoplus2.c index bccd100354..30d9c0410d 100644 --- a/hw/arm/netduinoplus2.c +++ b/hw/arm/netduinoplus2.c @@ -41,7 +41,7 @@ static void netduinoplus2_init(MachineState *machine) =20 /* This clock doesn't need migration because it is fixed-frequency */ sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(sysclk, SYSCLK_FRQ); + clock_set_hz(sysclk, SYSCLK_FRQ, NULL); =20 dev =3D qdev_new(TYPE_STM32F405_SOC); object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); diff --git a/hw/arm/nrf51_soc.c b/hw/arm/nrf51_soc.c index ac53441630..9aebb98934 100644 --- a/hw/arm/nrf51_soc.c +++ b/hw/arm/nrf51_soc.c @@ -75,7 +75,7 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error= **errp) return; } /* This clock doesn't need migration because it is fixed-frequency */ - clock_set_hz(s->sysclk, HCLK_FRQ); + clock_set_hz(s->sysclk, HCLK_FRQ, NULL); qdev_connect_clock_in(DEVICE(&s->cpu), "cpuclk", s->sysclk); /* * This SoC has no systick device, so don't connect refclk. diff --git a/hw/arm/olimex-stm32-h405.c b/hw/arm/olimex-stm32-h405.c index 4ad7b043be..394875608a 100644 --- a/hw/arm/olimex-stm32-h405.c +++ b/hw/arm/olimex-stm32-h405.c @@ -44,7 +44,7 @@ static void olimex_stm32_h405_init(MachineState *machine) =20 /* This clock doesn't need migration because it is fixed-frequency */ sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(sysclk, SYSCLK_FRQ); + clock_set_hz(sysclk, SYSCLK_FRQ, NULL); =20 dev =3D qdev_new(TYPE_STM32F405_SOC); object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); diff --git a/hw/arm/stm32vldiscovery.c b/hw/arm/stm32vldiscovery.c index cc41935160..4be626e878 100644 --- a/hw/arm/stm32vldiscovery.c +++ b/hw/arm/stm32vldiscovery.c @@ -44,7 +44,7 @@ static void stm32vldiscovery_init(MachineState *machine) =20 /* This clock doesn't need migration because it is fixed-frequency */ sysclk =3D clock_new(OBJECT(machine), "SYSCLK"); - clock_set_hz(sysclk, SYSCLK_FRQ); + clock_set_hz(sysclk, SYSCLK_FRQ, NULL); =20 dev =3D qdev_new(TYPE_STM32F100_SOC); object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index fc3abcbe88..1fd13caa58 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -228,7 +228,7 @@ static void zynq_init(MachineState *machine) object_property_add_child(OBJECT(zynq_machine), "ps_clk", OBJECT(zynq_machine->ps_clk)); object_unref(OBJECT(zynq_machine->ps_clk)); - clock_set_hz(zynq_machine->ps_clk, PS_CLK_FREQUENCY); + clock_set_hz(zynq_machine->ps_clk, PS_CLK_FREQUENCY, NULL); =20 /* Create slcr, keep a pointer to connect clocks */ slcr =3D qdev_new("xilinx-zynq_slcr"); diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index db31d7cc85..4619209af4 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -566,7 +566,7 @@ static void cadence_uart_init(Object *obj) s->refclk =3D qdev_init_clock_in(DEVICE(obj), "refclk", cadence_uart_refclk_update, s, ClockUpd= ate); /* initialize the frequency in case the clock remains unconnected */ - clock_set_hz(s->refclk, UART_DEFAULT_REF_CLK); + clock_set_hz(s->refclk, UART_DEFAULT_REF_CLK, NULL); =20 s->char_tx_time =3D (NANOSECONDS_PER_SECOND / 9600) * 10; } @@ -576,7 +576,7 @@ static int cadence_uart_pre_load(void *opaque) CadenceUARTState *s =3D opaque; =20 /* the frequency will be overridden if the refclk field is present */ - clock_set_hz(s->refclk, UART_DEFAULT_REF_CLK); + clock_set_hz(s->refclk, UART_DEFAULT_REF_CLK, NULL); return 0; } =20 --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373711; cv=none; d=zohomail.com; s=zohoarc; b=mRk05w4x66C0mCNKRiH9cTuAfiZRIjYIM+tD6/G4evs0p8znjC6YCjpb7RSRPKDEZHeeVBOOwd+sqZ/9pblBSKviruzBQR2UMb/pjq0EzgE8MA6lv0h0eAHvR4jYFUWFA4EEiY2Kns+gl3yXP2+tqbs7VsdnDfo236gCSHYmkTM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373711; 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=eAE2yytRBI+AooWG1nnNIGk1ax3StRcF3qR/MNn/B7A=; b=Hh8BVz77AfzEA1cb268ZeqsMzydmzUoOp4FP4NpY6fu+r1DLRAMQwls3lBUV7l3CHHCBmO3KoL34ywhrIKQWOISqAuIzuYrT3dxSfl/L6ioPW9Ma6PwdpMCSmbPSsLOFOghAMtYEZSDzW/EzAKSvalcZujuId4K0QngIiCaLVtg= 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 1711373711461188.5573470402901; Mon, 25 Mar 2024 06:35:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSJ-0002pk-NQ; Mon, 25 Mar 2024 09:33:39 -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 1rokSH-0002kZ-MU for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:37 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokSF-0007Nu-PE for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:37 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-4148c6132b4so569165e9.1 for ; Mon, 25 Mar 2024 06:33:35 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id e6-20020a5d5946000000b0033ecb329f15sm9612390wri.9.2024.03.25.06.33.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373613; x=1711978413; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eAE2yytRBI+AooWG1nnNIGk1ax3StRcF3qR/MNn/B7A=; b=S4fXYeOt1szLbaDkSZ57+UEX+5imdJifPsqxCdQ3qjde4PpYPpIiJbIV8ioJ8DFEnZ NJ59SP09dVgWMvgX0+yJG/nkvox0SJo4AktguJkjW7AvizKNGAqXasl+uWtBD7gh+Cro IumRrtKU7iNvVidk/fY8pue1WtWWHL9R22i/wxGyTUo3P6tGxNQ/Ri0UxUlssM4LDQm7 wrLxmfN4AlL4FfhX9bfpKu9d3Z3z3C2M1DgmU4FfnhxvumQn1a5GCSd74wCFCBz6kU+p F4wwJVDoh1oiJ90YnsClw6tavaC0rvLfUy43ThQomi06fLZD+57fqqMj/cfuCdLL14i2 wEGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373613; x=1711978413; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eAE2yytRBI+AooWG1nnNIGk1ax3StRcF3qR/MNn/B7A=; b=fhXdJzjoXAR2QvNizX23PHevcEFzwCPSGwDG0xXh2mt+0NegFWXsKZHu207bPmB3+c uS69NBpF5Hyw96IXluENnyF0/KXnT1LDW6zRXO0cDHSut0GmulfHFF3R61rVqAQ3J5Zu UMPlbhQC4D+0iW62zYLfo4mVDTZ+nc4D3GatLg3CWnfFGHtnS9BSm6l1APcufwkHS8d0 dXvCVrcC363K2FFe3gRuESDtFYisxkQGCNU6T+oXdVJsF+aqg5WRPL+HgzeawC8TbqRJ 0HXE2K828foLbKOGQWYFYrLwt7FfEfWeucXyvIOroQMnhsTE9VIkhVQDmdKbSAXQaAHI u4+g== X-Gm-Message-State: AOJu0YzjGqpKKi69d0gj6y4aJb/kg3iSN0eaJy2oPEN1ltBK4Mu5/K3d sUYzSWhl4Cyass1hww8HtxeCH22AVeu8nLTjQXTeh+Ikerh1uYRh2nZA+JWDqy8nlbAnWgzePwb /lX8= X-Google-Smtp-Source: AGHT+IGBzL4UkP7UXjWy0pFo/4OspRCYJ3gNscDzKsaFYTMP08eVdUr9p6WMLGzwWpq8vju0ksuM+g== X-Received: by 2002:a05:6000:1362:b0:33e:ca2c:70f5 with SMTP id q2-20020a056000136200b0033eca2c70f5mr6078181wrz.7.1711373613710; Mon, 25 Mar 2024 06:33:33 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Subbaraya Sundeep , Alexandre Iooss Subject: [PATCH-for-9.0? v2 5/8] hw/clock: Pass optional &bool argument to clock_set_mul_div() Date: Mon, 25 Mar 2024 14:32:55 +0100 Message-ID: <20240325133259.57235-6-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373713413100003 Pass optional &bool argument to clock_set_ns(). Since all callers ignore the return value, have them use NULL. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- docs/devel/clocks.rst | 4 ++++ include/hw/clock.h | 3 ++- hw/arm/msf2-soc.c | 2 +- hw/arm/stm32f100_soc.c | 2 +- hw/arm/stm32f205_soc.c | 2 +- hw/arm/stm32f405_soc.c | 2 +- hw/core/clock.c | 7 ++++++- hw/misc/stm32l4x5_rcc.c | 2 +- 8 files changed, 17 insertions(+), 7 deletions(-) diff --git a/docs/devel/clocks.rst b/docs/devel/clocks.rst index 3360e5616d..027a3c5dbc 100644 --- a/docs/devel/clocks.rst +++ b/docs/devel/clocks.rst @@ -279,6 +279,10 @@ You can change the multiplier and divider of a clock a= t runtime, so you can use this to model clock controller devices which have guest-programmable frequency multipliers or dividers. =20 +Similary to ``clock_set()``, ``clock_set_mul_div()`` takes an optional +boolean pointer which is set to ``true`` if the clock state was modified, +that it, if the multiplier or the diviser or both were changed by the call. + Note that ``clock_set_mul_div()`` does not automatically call ``clock_propagate()``. If you make a runtime change to the multiplier or divider you must call clock_propagate() yourself. diff --git a/include/hw/clock.h b/include/hw/clock.h index f0ac410fc8..0e4c5b67a2 100644 --- a/include/hw/clock.h +++ b/include/hw/clock.h @@ -376,6 +376,7 @@ char *clock_display_freq(Clock *clk); * Note that this function does not call clock_propagate(); the * caller should do that if necessary. */ -void clock_set_mul_div(Clock *clk, uint32_t multiplier, uint32_t divider); +void clock_set_mul_div(Clock *clk, uint32_t multiplier, uint32_t divider, + bool *changed); =20 #endif /* QEMU_HW_CLOCK_H */ diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c index a94a10adcc..7257bd5ded 100644 --- a/hw/arm/msf2-soc.c +++ b/hw/arm/msf2-soc.c @@ -111,7 +111,7 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Er= ror **errp) * implement the divisor as a fixed /32, which matches the reset value * of SYSTICK_CR. */ - clock_set_mul_div(s->refclk, 32, 1); + clock_set_mul_div(s->refclk, 32, 1, NULL); clock_set_source(s->refclk, s->m3clk); =20 memory_region_init_rom(&s->nvm, OBJECT(dev_soc), "MSF2.eNVM", s->envm_= size, diff --git a/hw/arm/stm32f100_soc.c b/hw/arm/stm32f100_soc.c index 808b783515..4879bd6188 100644 --- a/hw/arm/stm32f100_soc.c +++ b/hw/arm/stm32f100_soc.c @@ -93,7 +93,7 @@ static void stm32f100_soc_realize(DeviceState *dev_soc, E= rror **errp) */ =20 /* The refclk always runs at frequency HCLK / 8 */ - clock_set_mul_div(s->refclk, 8, 1); + clock_set_mul_div(s->refclk, 8, 1, NULL); clock_set_source(s->refclk, s->sysclk); =20 /* diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c index a451e21f59..aeb0cb0a5a 100644 --- a/hw/arm/stm32f205_soc.c +++ b/hw/arm/stm32f205_soc.c @@ -110,7 +110,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc,= Error **errp) */ =20 /* The refclk always runs at frequency HCLK / 8 */ - clock_set_mul_div(s->refclk, 8, 1); + clock_set_mul_div(s->refclk, 8, 1, NULL); clock_set_source(s->refclk, s->sysclk); =20 memory_region_init_rom(&s->flash, OBJECT(dev_soc), "STM32F205.flash", diff --git a/hw/arm/stm32f405_soc.c b/hw/arm/stm32f405_soc.c index 2ad5b79a06..07cf0e8287 100644 --- a/hw/arm/stm32f405_soc.c +++ b/hw/arm/stm32f405_soc.c @@ -115,7 +115,7 @@ static void stm32f405_soc_realize(DeviceState *dev_soc,= Error **errp) */ =20 /* The refclk always runs at frequency HCLK / 8 */ - clock_set_mul_div(s->refclk, 8, 1); + clock_set_mul_div(s->refclk, 8, 1, NULL); clock_set_source(s->refclk, s->sysclk); =20 memory_region_init_rom(&s->flash, OBJECT(dev_soc), "STM32F405.flash", diff --git a/hw/core/clock.c b/hw/core/clock.c index e0f257b141..6ef60a2423 100644 --- a/hw/core/clock.c +++ b/hw/core/clock.c @@ -145,7 +145,8 @@ char *clock_display_freq(Clock *clk) return freq_to_str(clock_get_hz(clk)); } =20 -void clock_set_mul_div(Clock *clk, uint32_t multiplier, uint32_t divider) +void clock_set_mul_div(Clock *clk, uint32_t multiplier, uint32_t divider, + bool *changed) { assert(divider !=3D 0); =20 @@ -157,6 +158,10 @@ void clock_set_mul_div(Clock *clk, uint32_t multiplier= , uint32_t divider) clk->divider, divider); clk->multiplier =3D multiplier; clk->divider =3D divider; + + if (changed) { + *changed =3D true; + } } =20 static void clock_initfn(Object *obj) diff --git a/hw/misc/stm32l4x5_rcc.c b/hw/misc/stm32l4x5_rcc.c index bc2d63528b..f01113308a 100644 --- a/hw/misc/stm32l4x5_rcc.c +++ b/hw/misc/stm32l4x5_rcc.c @@ -59,7 +59,7 @@ 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); + clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier, NULL); clock_update(mux->out, clock_get(current_source)); =20 src_freq =3D clock_get_hz(current_source); --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373690; cv=none; d=zohomail.com; s=zohoarc; b=Tz7SuxaL0Jaquzm7cEYe0FTdG2GUw7LV3sYhp9Sp98UuvJvdPUTH6qMVkv3Li7rg4y14z493G5YwIj89lodQhcqFa5XcyD8AcYH6PMRRFrLM+PDB/LO2s+i3nP0Qln/D5pZ3WswBhQOeaVZKuyg1CtS/PR30v6RwP4hZCthdjbM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373690; 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=ECmMULAo7ez5jaBxa5Wjvt8SfPbxgHkevNpFi8ZZgIM=; b=M6/4qcbDDLrM7Zc/v4WRxJw8CCKyPOIAnvA+7z67AaqrbWLQfZTOALKox3b5SXRomWaon8JEDjGO8OAnAjKWpB+Wc+GcIjUeqnuQ4VS8kut25+XRjZJsQSbnnyVMircft6R0P9m5dMRn6RUyBYeewsqMNSJJS8pkAU9ET72vz5g= 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 1711373690832538.2419731202309; Mon, 25 Mar 2024 06:34:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSP-0003EG-FE; Mon, 25 Mar 2024 09:33:45 -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 1rokSN-00037Y-J5 for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:43 -0400 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokSL-0007QQ-QT for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:43 -0400 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-513da1c1f26so5469475e87.3 for ; Mon, 25 Mar 2024 06:33:41 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id en7-20020a056000420700b0034174875850sm8133536wrb.70.2024.03.25.06.33.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373619; x=1711978419; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ECmMULAo7ez5jaBxa5Wjvt8SfPbxgHkevNpFi8ZZgIM=; b=LWZt6tpq8WlS3qrd9yC0vjOon2RtjlV/kpiGcYDPto/i2m2brHGJYw4bnoswlYEVTh i+nPU8Arb5RumI6cvT9qkkZSnjfgLPALq+b6mWQmC7LSTSkn95EkhBRNngOLNeG+xSBh VmGi1o7tj9Ncx1rfac3AdHc7yaNSjTD+mGPTk4eC2telqYrf/XITDa44N/5ksWn6/1g4 tpQ1kUTGaunJyxoc5l+oBTXORBr27DqD/DFWIwTFZ76WLBhO1X6hGXG1H7qamxmJRo6x Uh4vhysIPFnv+UBsuJcZJp55Aioas82JoP1Def3hnMlnNjmB1vBlmYxAGwG//6HL/LLw v7Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373619; x=1711978419; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ECmMULAo7ez5jaBxa5Wjvt8SfPbxgHkevNpFi8ZZgIM=; b=vif7BbbHss7hu6uCPp2ZMK7mseSWCul8xs9oWaNMlJP2xF6aME8hm8K3yoE7bAYTh1 54sgtavMvfP26dnjpEfCFaoZKc6gV9CqEjcwV5ku4iAtFWcY9fDeQVGbYAmeSLaWBaos P1V3he4+SYUYZj05Op9IvFgVfkFdbPD1n+77+anbswywXkiWg98p6pEs0+P8yPf/eQxi g3q47UxRfPOujug1CIRfx/efgvsqx7xzuueD8yS5y4B0AeMOAl//rBNMj0opLaTKj6yY N/VdDeYLgJtDQPzGQerM3SdRM1alTwG3nitdv7F1OcGrgQ451DBBBvysnEi6laslh90+ d+NQ== X-Gm-Message-State: AOJu0YxzN6U/qqGkH1/3TzZgdtYpIpeLjcVHkUVP4My6ugSN6fVneAsz FxoyhEHcMBjID1W6B4gKWuxEfjyo5yu9f21nCakWSS4RPjefgNfR4A+uH0BKeTKfDGR9i4w2LIE UeIE= X-Google-Smtp-Source: AGHT+IH6CHH2Ug5XOiOcGGqC8V40tsHZUYTmdpaG/s0RshLAk2eF6vsXi826Go/fuPXbyA/5ziDcoQ== X-Received: by 2002:a05:6512:55c:b0:513:184a:ff5f with SMTP id h28-20020a056512055c00b00513184aff5fmr5010410lfl.50.1711373619372; Mon, 25 Mar 2024 06:33:39 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-9.0 v2 6/8] hw/misc/stm32l4x5_rcc: Inline clock_update() in clock_mux_update() Date: Mon, 25 Mar 2024 14:32:56 +0100 Message-ID: <20240325133259.57235-7-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::12d; envelope-from=philmd@linaro.org; helo=mail-lf1-x12d.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373691517100001 Trivial inlining in preliminary patch to make the next one easier to review. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- 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 f01113308a..8852b434db 100644 --- a/hw/misc/stm32l4x5_rcc.c +++ b/hw/misc/stm32l4x5_rcc.c @@ -48,6 +48,8 @@ static void clock_mux_update(RccClockMuxState *mux, bool = bypass_source) uint64_t src_freq; Clock *current_source =3D mux->srcs[mux->src]; uint32_t freq_multiplier =3D 0; + bool clk_changed =3D false; + /* * To avoid rounding errors, we use the clock period instead of the * frequency. @@ -60,7 +62,10 @@ static void clock_mux_update(RccClockMuxState *mux, bool= bypass_source) } =20 clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier, NULL); - clock_update(mux->out, clock_get(current_source)); + clock_set(mux->out, clock_get(current_source), &clk_changed); + if (clk_changed) { + clock_propagate(mux->out); + } =20 src_freq =3D clock_get_hz(current_source); /* TODO: can we simply detect if the config changed so that we reduce = log spam ? */ --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373671; cv=none; d=zohomail.com; s=zohoarc; b=CrUJuqEli2Ba1T3djmihuAoZndLFlf3E/DZPKgY+gmZmX+dO6zXBqS3zFv7QTU53nE/T1w14eD6F5SbInDyutwp7fMXAhlPs22PhgnJImvXqXtO4IG50v5V873q/WnKe2b94aRpXp9Nt1K1/QZu2Ewse6ZAGR8WUdl/GAbj+0xQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373671; 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=dmBZnvObELGs1VJCtsjfXQQHR8FYa+eCE52ifx9aDFo=; b=jRmO4yogq/hiGAu4S1DbnXxeFsHhDlKLTvx1Tk8Xq7r5PgBfLn5Yr4rWvJaLdostYVJY2CLQrMUjfzM4Uk0ywmT7s/h4d6JZf96Bd0wHc2Lue0vzFKpSAGcf08o5Ca6S3q3IPHLaKpvzOSX+JuUmuWp3iSD+aDPP78Uo8jVJwoc= 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 1711373671176918.4711646260915; Mon, 25 Mar 2024 06:34:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSU-0003Vc-EU; Mon, 25 Mar 2024 09:33:50 -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 1rokST-0003S8-01 for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:49 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokSR-0007SW-Ax for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:48 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4148c5de23fso609415e9.1 for ; Mon, 25 Mar 2024 06:33:46 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id ay41-20020a05600c1e2900b004148c10db66sm809802wmb.26.2024.03.25.06.33.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373625; x=1711978425; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dmBZnvObELGs1VJCtsjfXQQHR8FYa+eCE52ifx9aDFo=; b=TkcmmaY3P9KBxuj/1kMLyKMhfW3tUhND1f2WJ6LAotpmiQgbtWLd2ciexxuvhqhULl FqPneXiDxHaTwSwpvq9M26qypu7UeX8SWaOcSQy6VwvAlHD+cqin2OplF/tFgh9tiCsW 6raBV+s2rXeV/dP6BwR5C+aFrqg3Xfi5e/IFgKlMBIjvdX+lCgHkOUxrNG+24dcTDXFc d28to8WWhBfKcmKEBXnVxBz+kqTMNws6kms7t2dCBp2XTKc7iKCe2d91PPri8dJ2XCC7 NCcSvwmnu9+W6SuLw3PlC8stErZxf92Bd6OaT0ALippppRYDM3GHj46DbSrklmVzrzyw jmjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373625; x=1711978425; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dmBZnvObELGs1VJCtsjfXQQHR8FYa+eCE52ifx9aDFo=; b=Er39HNtlC8eDc3af5B/e2FBGU3I9pxc/pWZqWxFdhcpDXPCcgl6KMRH7GsRE73SuVP QcyZiIL7Jst0CzAtQucczFQrLRcUP5oXNgonLzUjsLN11YTiRd8js1VegWGxP3T57HwB yYe/RwgbuCWZ31439sxi3fKOmoOHHMKfCS1dndGZd+/qlnqdsdYMrNOEvBULdoy9MqZS cEbxPd2Mtrq/dvVHDCZ+w+7vKILgPAZDUBz4at96F9OfKth2L+zNJAwWg0OOaP/h/PpV IVdGakK1jgPpfyoTy86x4loKgOO4VAjzHMldNzbEy6VPZ0liT7qpA0llsGwA9GbZR7P9 h2+g== X-Gm-Message-State: AOJu0Yy5wQSJZkD960vxcsY5m80cRW9VrMHhzXnII+2YvWi1ivfjlmKU qevu55lFjn3o0e5fVYuqNDR5mrDnzj8m4guVGCoX6LA7Cxe3RZcOKKOjTpS3nCXcjIPqMauMCrO KJ3M= X-Google-Smtp-Source: AGHT+IFWZ/58Xj/nwYwUTAXrwNX6H0wJoPJCar7qmULOe4KV+pP42L8yH1ezkdLTV9P/Fd7XkQhr/w== X-Received: by 2002:a05:600c:5121:b0:414:7bd1:4060 with SMTP id o33-20020a05600c512100b004147bd14060mr5425135wms.2.1711373625053; Mon, 25 Mar 2024 06:33:45 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-9.0? v2 7/8] hw/misc/stm32l4x5_rcc: Propagate period when enabling a clock Date: Mon, 25 Mar 2024 14:32:57 +0100 Message-ID: <20240325133259.57235-8-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373673274100003 From: Arnaud Minier 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. Fixes: ec7d83acbd ("hw/misc/stm32l4x5_rcc: Add an internal clock multiplexe= r object") Signed-off-by: Arnaud Minier Signed-off-by: In=C3=A8s Varhol Message-ID: <20240317103918.44375-2-arnaud.minier@telecom-paris.fr> [PMD: Pass argument to clock_set_mul_div()] Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/misc/stm32l4x5_rcc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/stm32l4x5_rcc.c b/hw/misc/stm32l4x5_rcc.c index 8852b434db..166c727e52 100644 --- a/hw/misc/stm32l4x5_rcc.c +++ b/hw/misc/stm32l4x5_rcc.c @@ -61,7 +61,7 @@ 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, NULL); + clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier, &clk_cha= nged); clock_set(mux->out, clock_get(current_source), &clk_changed); if (clk_changed) { clock_propagate(mux->out); --=20 2.41.0 From nobody Fri May 17 11:59:09 2024 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1711373738; cv=none; d=zohomail.com; s=zohoarc; b=R8G6SOtDFXOxIvXdUsRtX0k7FDBvCI+IBzSIAq5T+SWn9MTjDVuQD//edBT2GVF72zNpL68tY8paDLvxFdIIcB/uqanZvO+ZrmEXXEExpQw6vJji24hFwaLesFqxz9C8LdaxI7OqJdRQk9y8PRfshW1NC2lABX/bbBbLnWl95Uw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1711373738; 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=cC2Yz91nzGrohL4G/Awv0+dd4I3kt82iWAFcfxuwSZM=; b=ZfVu7BrpGKFSOMFl3WdE+Pza+UzK77jBqXhRhOw3vekG8bYkMmMIckVJLbPEF/YE/lGQBFR/NM6HMYc/BsvsWN61JaTTxNsPzmp/2WVLlH9rOthRBAIOK0+6CygjjjtWUUbvuGMLJLXHO3XY/lYe0/Tj1BiSdAYFwRQLctsg33o= 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 1711373738679960.1697471933596; Mon, 25 Mar 2024 06:35:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rokSb-0003ZB-Dm; Mon, 25 Mar 2024 09:33:57 -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 1rokSY-0003Y3-Sm for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:54 -0400 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rokSX-0007TR-82 for qemu-devel@nongnu.org; Mon, 25 Mar 2024 09:33:54 -0400 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-56c0613307cso1616439a12.0 for ; Mon, 25 Mar 2024 06:33:52 -0700 (PDT) Received: from m1x-phil.lan ([176.187.208.214]) by smtp.gmail.com with ESMTPSA id qy34-20020a17090768a200b00a4623030893sm3046795ejc.126.2024.03.25.06.33.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 25 Mar 2024 06:33:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711373631; x=1711978431; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cC2Yz91nzGrohL4G/Awv0+dd4I3kt82iWAFcfxuwSZM=; b=c4m9fmaTqK/XPlEjig0UaahEDKAgnSNSNyONhgN2JpiiC+wfIcfy7dBlhYqNmpYUfC aCKRiUq70AOpnD71r4N54Woy78+uYREu5w6Rivg3xvEdeUeEP7eEBA9SXC5FUZ9maV0u OZhNWV5wOedNB9N6Xer7K1Wme8cPLzA6JjfNh8LSflmQ8vAYeKoaKITVEdiXZpezQjnN VKubYafax35ySvIIHThW+3884YE//pMREyfmwCXlBz5F8VvL9v3gv7QGdujosmr8Ol7g PcZeeAIWE9sie2oMFo/7pZgqB+p+KKYeUZuzUxBNSaF5Tsus606LtNvgyi53N8fDKqE/ 6y/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711373631; x=1711978431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cC2Yz91nzGrohL4G/Awv0+dd4I3kt82iWAFcfxuwSZM=; b=kvFZbZwilgfFbe5+C1TSt9mEypqjcLFclLFsMQLvS8vBB0XsBCe2a+EHzaO/qJ9wd6 t2FdF8Aa7Qzd8oO4g7czeqaeu8fg1hrKUBE9ROAUAsnlf8fFbBMegz2NSicBfzlGWOaK 3bYYNvkNMIzRYIFdOH4RGF3RAvOSpPPL6BcT2+nLwPFOFURolhKnKWLGkzBDyOp/v9Hn RKIxDAItkJQH2NC6ID1nLDPkXHs0L73X6G8NDkNgy8BJcaoMRJw7eyztCUdVCU12Am0R QHVD1wn6BaWa6aSxXsi9C0ttVCWiFN+zCpaTvbqBLJGMS0NjgpjzSqnRacxjj1mGqgk0 /sMA== X-Gm-Message-State: AOJu0Yzzy1SPeLzUB+c+gyxtqKvXw4BpqRsHtMhDLwwKz1wkJffmUjEm 3QZGziwo5boyDlxrdB2eqQXm0m59z48ysx5QG+QVIsTf7JCgJ/TXX/E5kORQ16tG3s9y5XXZw2s 7MDk= X-Google-Smtp-Source: AGHT+IHtZ6daHfU5H7gPIyf5QNciNqdEDsxbY4ibtEBvK90ybXzAWKeFq8GhXwKQb2YchN2ju7FPTg== X-Received: by 2002:a17:906:4e8d:b0:a46:cea6:a7f1 with SMTP id v13-20020a1709064e8d00b00a46cea6a7f1mr4793519eju.51.1711373630981; Mon, 25 Mar 2024 06:33:50 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?In=C3=A8s=20Varhol?= , Arnaud Minier , Damien Hedde , qemu-arm@nongnu.org, Peter Maydell , Alistair Francis , Luc Michel , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , "Edgar E. Iglesias" Subject: [PATCH-for-9.1 v2 8/8] hw/misc/zynq_slcr: Only propagate clock changes when necessary Date: Mon, 25 Mar 2024 14:32:58 +0100 Message-ID: <20240325133259.57235-9-philmd@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20240325133259.57235-1-philmd@linaro.org> References: <20240325133259.57235-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2a00:1450:4864:20::535; envelope-from=philmd@linaro.org; helo=mail-ed1-x535.google.com 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @linaro.org) X-ZM-MESSAGEID: 1711373739758100005 Pass &bool to zynq_slcr_compute_clocks[_internal](), so we can pass it to the clock_set() calls which might update it. Then check it and only call zynq_slcr_propagate_clocks() and clock_propagate() when necessary. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/misc/zynq_slcr.c | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index e637798507..ad9c575137 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -269,7 +269,8 @@ static uint64_t zynq_slcr_compute_clock(const uint64_t = periods[], zynq_slcr_compute_clock((plls), (state)->regs[reg], \ reg ## _ ## enable_field ## _SHIFT) =20 -static void zynq_slcr_compute_clocks_internal(ZynqSLCRState *s, uint64_t p= s_clk) +static void zynq_slcr_compute_clocks_internal(ZynqSLCRState *s, uint64_t p= s_clk, + bool *changed) { uint64_t io_pll =3D zynq_slcr_compute_pll(ps_clk, s->regs[R_IO_PLL_CTR= L]); uint64_t arm_pll =3D zynq_slcr_compute_pll(ps_clk, s->regs[R_ARM_PLL_C= TRL]); @@ -279,9 +280,9 @@ static void zynq_slcr_compute_clocks_internal(ZynqSLCRS= tate *s, uint64_t ps_clk) =20 /* compute uartX reference clocks */ clock_set(s->uart0_ref_clk, - ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT0), NUL= L); + ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT0), cha= nged); clock_set(s->uart1_ref_clk, - ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT1), NUL= L); + ZYNQ_COMPUTE_CLK(s, uart_mux, R_UART_CLK_CTRL, CLKACT1), cha= nged); } =20 /** @@ -289,7 +290,7 @@ static void zynq_slcr_compute_clocks_internal(ZynqSLCRS= tate *s, uint64_t ps_clk) * But do not propagate them further. Connected clocks * will not receive any updates (See zynq_slcr_compute_clocks()) */ -static void zynq_slcr_compute_clocks(ZynqSLCRState *s) +static void zynq_slcr_compute_clocks(ZynqSLCRState *s, bool *changed) { uint64_t ps_clk =3D clock_get(s->ps_clk); =20 @@ -298,7 +299,7 @@ static void zynq_slcr_compute_clocks(ZynqSLCRState *s) ps_clk =3D 0; } =20 - zynq_slcr_compute_clocks_internal(s, ps_clk); + zynq_slcr_compute_clocks_internal(s, ps_clk, changed); } =20 /** @@ -315,9 +316,12 @@ static void zynq_slcr_propagate_clocks(ZynqSLCRState *= s) static void zynq_slcr_ps_clk_callback(void *opaque, ClockEvent event) { ZynqSLCRState *s =3D (ZynqSLCRState *) opaque; + bool propagate =3D false; =20 - zynq_slcr_compute_clocks(s); - zynq_slcr_propagate_clocks(s); + zynq_slcr_compute_clocks(s, &propagate); + if (propagate) { + zynq_slcr_propagate_clocks(s); + } } =20 static void zynq_slcr_reset_init(Object *obj, ResetType type) @@ -419,19 +423,25 @@ static void zynq_slcr_reset_init(Object *obj, ResetTy= pe type) static void zynq_slcr_reset_hold(Object *obj) { ZynqSLCRState *s =3D ZYNQ_SLCR(obj); + bool propagate =3D false; =20 /* will disable all output clocks */ - zynq_slcr_compute_clocks_internal(s, 0); - zynq_slcr_propagate_clocks(s); + zynq_slcr_compute_clocks_internal(s, 0, &propagate); + if (propagate) { + zynq_slcr_propagate_clocks(s); + } } =20 static void zynq_slcr_reset_exit(Object *obj) { ZynqSLCRState *s =3D ZYNQ_SLCR(obj); + bool propagate =3D false; =20 /* will compute output clocks according to ps_clk and registers */ - zynq_slcr_compute_clocks_internal(s, clock_get(s->ps_clk)); - zynq_slcr_propagate_clocks(s); + zynq_slcr_compute_clocks_internal(s, clock_get(s->ps_clk), &propagate); + if (propagate) { + zynq_slcr_propagate_clocks(s); + } } =20 static bool zynq_slcr_check_offset(hwaddr offset, bool rnw) @@ -516,6 +526,7 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) { ZynqSLCRState *s =3D (ZynqSLCRState *)opaque; + bool propagate =3D false; offset /=3D 4; =20 DB_PRINT("addr: %08" HWADDR_PRIx " data: %08" PRIx64 "\n", offset * 4,= val); @@ -569,8 +580,10 @@ static void zynq_slcr_write(void *opaque, hwaddr offse= t, case R_ARM_PLL_CTRL: case R_DDR_PLL_CTRL: case R_UART_CLK_CTRL: - zynq_slcr_compute_clocks(s); - zynq_slcr_propagate_clocks(s); + zynq_slcr_compute_clocks(s, &propagate); + if (propagate) { + zynq_slcr_propagate_clocks(s); + } break; } } --=20 2.41.0