From patchwork Wed Nov 9 16:14:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701831 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=GiLR7Nvi; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qtb1pHcz23ll for ; Thu, 10 Nov 2022 03:19:51 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnj8-00017P-B0; Wed, 09 Nov 2022 11:14:58 -0500 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 1osnj7-00016q-6b for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:57 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osniz-0007h7-WC for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:56 -0500 Received: by mail-wr1-x429.google.com with SMTP id cl5so26477681wrb.9 for ; Wed, 09 Nov 2022 08:14:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=mWA6AJys5VSw6j1hmZeVD4K0mUdWBpZpgITkZq/H/I4=; b=GiLR7Nvivm2qPa8n9N+rUAOCoyDCy/ZO/YWwUVbbSfvpWHF6zLluNOEGBtKI8femE2 al9bD62WZN/Ce7zaZxwuSUX0nrcscgFUtMszswPaNuFaau516qmlZiGt+Yu/gOiBdwZp hlcvT8dz5Ue0qkQw9FVYzAQRyNSSOjNGxOFrP82mDCXTAyxZDAyKN0rkAgSiWflFnlOv l2fO/NKEFlqhQtLlGt2JycP+WteqxJGK/KoxfX3Lbvx6JZX1OJRWS1DpjdzAavbwByHv 9hLAjy0tNwS6nSsBgZ/SP0s0i/hVOw1s6KslPwOet7We0rPck6uEJ8qe5JajvotGvAe7 XTzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mWA6AJys5VSw6j1hmZeVD4K0mUdWBpZpgITkZq/H/I4=; b=rq+OMHTKPnnYJKGX2IbWa6DJx+9cI5liG9RiAdLQ1CoCdyL9WNZ8ikgK9KjWQfLkmC VFGllMe1a0Q1Fboy16huXLaHrrPRrndyLOiq/LyhnUvWv/lMeH+P4Kb9o7hYashHGzlM 9PRUrrBehga/dT14dwdUo+WEYvm1DjKAmS2Cpg/Ts9hqbELAYgmiokCGxhctgzZVzIRo we+YxJjBvCrdVc1oU26WNaDVRtftayhGRTS1V6qrQHAFkhnGjAhGV+pbMJLleUEFUIp0 8LowiRG7GaFENjWt2yiE+ZpF0+kuRNOlaRCWkbpjF5xpkVxPCtvR39buxZR6qg8XMFq3 nZvg== X-Gm-Message-State: ACrzQf3rKwIe2qz/7ofGfoG8R1NWGML3EbepJSZoBS1QMuwlmS3HHchA eq109yVrsftdeLD21FbxP/FDlzBWjdBmig== X-Google-Smtp-Source: AMsMyM7cc+2mf4MPtlTaXofAGxylI41td5ZXRnYhkWQ+hV6RHexKgWxLL9/lzSmnUdIFs5AM/7QMkw== X-Received: by 2002:adf:fd0f:0:b0:236:e8bd:fd0e with SMTP id e15-20020adffd0f000000b00236e8bdfd0emr28433384wrr.288.1668010487605; Wed, 09 Nov 2022 08:14:47 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:47 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 1/9] hw/arm: Convert TYPE_ARM_SMMU to 3-phase reset Date: Wed, 9 Nov 2022 16:14:36 +0000 Message-Id: <20221109161444.3397405-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x429.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, T_SPF_TEMPERROR=0.01 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_SMMU device to 3-phase reset. The legacy method doesn't do anything that's invalid in the hold phase, so the conversion is simple and not a behaviour change. Note that we must convert this base class before we can convert the TYPE_ARM_SMMUV3 subclass -- transitional support in Resettable handles "chain to parent class reset" when the base class is 3-phase and the subclass is still using legacy reset, but not the other way around. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Reviewed-by: Eric Auger --- hw/arm/smmu-common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/arm/smmu-common.c b/hw/arm/smmu-common.c index e09b9c13b74..220838525d4 100644 --- a/hw/arm/smmu-common.c +++ b/hw/arm/smmu-common.c @@ -526,9 +526,9 @@ static void smmu_base_realize(DeviceState *dev, Error **errp) } } -static void smmu_base_reset(DeviceState *dev) +static void smmu_base_reset_hold(Object *obj) { - SMMUState *s = ARM_SMMU(dev); + SMMUState *s = ARM_SMMU(obj); g_hash_table_remove_all(s->configs); g_hash_table_remove_all(s->iotlb); @@ -543,12 +543,13 @@ static Property smmu_dev_properties[] = { static void smmu_base_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); SMMUBaseClass *sbc = ARM_SMMU_CLASS(klass); device_class_set_props(dc, smmu_dev_properties); device_class_set_parent_realize(dc, smmu_base_realize, &sbc->parent_realize); - dc->reset = smmu_base_reset; + rc->phases.hold = smmu_base_reset_hold; } static const TypeInfo smmu_base_info = { From patchwork Wed Nov 9 16:14:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701828 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=Ww8G8SPu; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qql3ybrz23ll for ; Thu, 10 Nov 2022 03:17:23 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjE-0001CX-Bk; Wed, 09 Nov 2022 11:15:04 -0500 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 1osnjC-00019m-6c for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:02 -0500 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj1-00078T-CA for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:01 -0500 Received: by mail-wr1-x430.google.com with SMTP id y16so26433643wrt.12 for ; Wed, 09 Nov 2022 08:14:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=TkW7T5S7zm7opSYfPV3c9ibz6QYvnDa1N5Ybi4vqCbI=; b=Ww8G8SPu2ZcSeu389lYats1nfHf8H/jiGw+Y1AUKWgcF5FSFoATUL/+fnIKupfWtZ8 poG4POP/tgE5CTKFZxV49FNeL0kynclNzFBqtFkNI3Oz2NQAMdYbAp/JOztn8nic3d+1 fFqfXLGz5bZ3JBPWH9r+L1hhg+64TE4GC9rqVBa/oMruboGpipc8mIuj0tWtsww85Asg q9r6QsZUmYjCPBTwT7lEHxvqu418AfS9rIpRroIPp1ktviIOICmhpTfhw7wVvYgliWDu HFigr2yn4lYRqap0bEaFQNtNqQdkCM8Zsco+X6eTc/s/Zip/wkLkKKOYifdM6HE44FWc +dBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TkW7T5S7zm7opSYfPV3c9ibz6QYvnDa1N5Ybi4vqCbI=; b=syTd8DB0w3kQgnJT3slcCqyruoPdmmi89rFw3QPXHngbmdYO3+5yyrik4BpE4EQSkU XLqKAPJl1uK6cdHyFFVAwQS0dkmUOqSQLXzwxlly9hPTJvmgVdH3/IJ7gw6Dbcq4mxC1 CafU9hZqAeDTKQhWBvY91l38dcLAbcOcnj84Y199DVnpEkcRY+d/OUR6+PlQDoIdHl+W 11u5d0F0ojic/L6dtQBm53HD/wZNT9qzbZ91K/mIz+b8SVuQq49FpHh4EFmFo3qpAwQB +mLNbcrxiEPkHKOQzNl2qGjARO118j2AE1Lcmtrh+DzNIV8zRs6/56NQDs/CHeYk3trT n00g== X-Gm-Message-State: ACrzQf1fCEJOgGH9WPnSU13bl0AM5eEEJLzVGqHYn+BzBoV2DTsX8fJC J27pQsquLXAWRiiXa1BDMaX08FtEWXNUZw== X-Google-Smtp-Source: AMsMyM7H8cjdkDB9YdixUgziz3U2ogNOYwDbLo7sJwhoPr6+65Vq8tpw7y6jLKtXXTQE+SRE9chvCg== X-Received: by 2002:adf:f687:0:b0:236:481f:83a6 with SMTP id v7-20020adff687000000b00236481f83a6mr39697164wrp.342.1668010488625; Wed, 09 Nov 2022 08:14:48 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:48 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 2/9] hw/arm: Convert TYPE_ARM_SMMUV3 to 3-phase reset Date: Wed, 9 Nov 2022 16:14:37 +0000 Message-Id: <20221109161444.3397405-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x430.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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_SMMUV3 device to 3-phase reset. The legacy reset method doesn't do anything that's invalid in the hold phase, so the conversion only requires changing it to a hold phase method, and using the 3-phase versions of the "save the parent reset method and chain to it" code. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Eric Auger Reviewed-by: Philippe Mathieu-Daudé --- include/hw/arm/smmuv3.h | 2 +- hw/arm/smmuv3.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/hw/arm/smmuv3.h b/include/hw/arm/smmuv3.h index c641e60735e..f1921fdf9e7 100644 --- a/include/hw/arm/smmuv3.h +++ b/include/hw/arm/smmuv3.h @@ -77,7 +77,7 @@ struct SMMUv3Class { /*< public >*/ DeviceRealize parent_realize; - DeviceReset parent_reset; + ResettablePhases parent_phases; }; #define TYPE_ARM_SMMUV3 "arm-smmuv3" diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index daa80e9c7b6..955b89c8d59 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -1431,12 +1431,14 @@ static void smmu_init_irq(SMMUv3State *s, SysBusDevice *dev) } } -static void smmu_reset(DeviceState *dev) +static void smmu_reset_hold(Object *obj) { - SMMUv3State *s = ARM_SMMUV3(dev); + SMMUv3State *s = ARM_SMMUV3(obj); SMMUv3Class *c = ARM_SMMUV3_GET_CLASS(s); - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } smmuv3_init_regs(s); } @@ -1520,10 +1522,12 @@ static void smmuv3_instance_init(Object *obj) static void smmuv3_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); SMMUv3Class *c = ARM_SMMUV3_CLASS(klass); dc->vmsd = &vmstate_smmuv3; - device_class_set_parent_reset(dc, smmu_reset, &c->parent_reset); + resettable_class_set_parent_phases(rc, NULL, smmu_reset_hold, NULL, + &c->parent_phases); c->parent_realize = dc->realize; dc->realize = smmu_realize; } From patchwork Wed Nov 9 16:14:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701824 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=M37MRuhi; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qnc4nsjz23ll for ; Thu, 10 Nov 2022 03:15:32 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnj9-000187-9Q; Wed, 09 Nov 2022 11:14:59 -0500 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 1osnj8-00017c-Dh for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:58 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj2-0007jX-I5 for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:58 -0500 Received: by mail-wr1-x432.google.com with SMTP id a14so26511522wru.5 for ; Wed, 09 Nov 2022 08:14:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Ly4OSovRHvN+53CgiCfPFZpycGRSTR1uUEH/wJ6P+uc=; b=M37MRuhiMlfCctx8TrSl4afDY1ELXk5CVeruVonARwJGVV3+2mqKGfZP9WQGHOAiW3 uyVoRDYu/eUM4RcNOO0wNggK1KciTmYcB5fltAlQkRhbol1/edPi7M4JM1EftcpvfRsF iiMR7qKfEZEJ+DPzrz2nAhpT0dTj3pSfp4aE8U0KFV3ZXabGZpcSBUAbCFfHhoUMqqyN 8XQpK2vdWD6E/dvW2zLF6dKJ8NpsQBZVqLacmECeoORzzZZaUc4VuLkSK0Jr6CX2Jc3/ oDMW3EKiRqqOMSnjAPrqKVijq1GPSuo+SyIe5abRNgONMEXYIgJDUsJl0o5nT0xWYEsT GMZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ly4OSovRHvN+53CgiCfPFZpycGRSTR1uUEH/wJ6P+uc=; b=dayUDlVlgCfGLreKOiX7+CXGHpBvSszplhZvzM01bsdnp92tohF8sitlLJYu/mpiM0 XLPxdufLN3uJmIWI6fyMlkrt7MJEOrUwjLxfXwhAz67gKhMg2+WDhVTsHJX6t4ld7qg+ z5RgLiHoJqbLDVflM0RC/7CVy3l7BQV5QA4owha8pP7UrIUu0eHteAalMclzi6WGArcb QYokiOZtYjewKwG7OQ7fuT3DkdN6a1QWW0wnii7tf2xKHXZox8piJ9PJpRgP5REQA6lF X8tutjp6d5LygpHG9og3KQ7lBVW94OralQS0ypxMzmR2kdc/zYlTFui/6K+dGBtupxAa ovRw== X-Gm-Message-State: ACrzQf3qZOqCugJN90QCg4igVf6NUHOTbLmgMIxyvOTDI8ugWMeUvZPL Q/nXOYDsSyUJ/bN8vpP9oa5YNxYmsZufdA== X-Google-Smtp-Source: AMsMyM6wfBqyUfuVqGaadHNkWvD+RCCttd9tAMFUXQCelCm/Llm/IMkS5sl/2jG6ZJgHjoM35vYszg== X-Received: by 2002:adf:d213:0:b0:236:9cb4:20a9 with SMTP id j19-20020adfd213000000b002369cb420a9mr39317373wrh.581.1668010489563; Wed, 09 Nov 2022 08:14:49 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:49 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 3/9] hw/intc: Convert TYPE_ARM_GIC_COMMON to 3-phase reset Date: Wed, 9 Nov 2022 16:14:38 +0000 Message-Id: <20221109161444.3397405-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x432.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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_GIC_COMMON device to 3-phase reset. This is a simple no-behaviour-change conversion. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- hw/intc/arm_gic_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c index 7b44d5625b6..a379cea3959 100644 --- a/hw/intc/arm_gic_common.c +++ b/hw/intc/arm_gic_common.c @@ -261,9 +261,9 @@ static inline void arm_gic_common_reset_irq_state(GICState *s, int first_cpu, } } -static void arm_gic_common_reset(DeviceState *dev) +static void arm_gic_common_reset_hold(Object *obj) { - GICState *s = ARM_GIC_COMMON(dev); + GICState *s = ARM_GIC_COMMON(obj); int i, j; int resetprio; @@ -364,9 +364,10 @@ static Property arm_gic_common_properties[] = { static void arm_gic_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); ARMLinuxBootIfClass *albifc = ARM_LINUX_BOOT_IF_CLASS(klass); - dc->reset = arm_gic_common_reset; + rc->phases.hold = arm_gic_common_reset_hold; dc->realize = arm_gic_common_realize; device_class_set_props(dc, arm_gic_common_properties); dc->vmsd = &vmstate_gic; From patchwork Wed Nov 9 16:14:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701825 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=DeIkwfa+; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qpK2Xhcz23ll for ; Thu, 10 Nov 2022 03:16:09 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjA-00018f-7q; Wed, 09 Nov 2022 11:15:00 -0500 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 1osnj9-00017z-0p for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:59 -0500 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 1osnj2-0007jg-VO for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:58 -0500 Received: by mail-wr1-x42d.google.com with SMTP id w14so26494208wru.8 for ; Wed, 09 Nov 2022 08:14:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=94zFxEDln0hVAcYsJJAZunaQ0vJlEEsykd+74gFzfm0=; b=DeIkwfa++O/IXOpFeGHJ4/EpE2JrAypDl8sAqG4jkgb79MvB0yy8I0jn+PLisceDls cCYu55VBm940wKFskjlZ5ytCKkJ27/L8JUsMOo7/7b+kHBiZQtjUxW1L8/VH5LFy86hm vmfdasNWnrjU486fWdYa85DZk0lzy+3g6vqpHR0zg1gUEvwwLVZMSGFquec9FuYPhfgA wbkj3y+GKZ1rlgqmZiduqpZpeNg1tAJw+PPKNA0q75xV/RRLi7h3z+ALTkqkL2hbk+s5 rmiQLgKt9awnqeW9irWhJGb+rpNODXNRvNKRGzGFyO5gNcyZJjv8a1ktRHIyH9Aq0lxK sToQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=94zFxEDln0hVAcYsJJAZunaQ0vJlEEsykd+74gFzfm0=; b=AP9n/90mCY7RCrCWuFwaUQOdu2x6Y2hZaOVfz9DjM6p04q8NkWMDzu+Yp1uiqagB/g aSYFvjFKfbYc01glByOUNUDk9IA1usPjZBZa2sr0A04BoASwQe/N0ikX2xqvogLZ3RLL AYuPmNef/R/EiQMeBGZzX4M/td1Oo64dVQnCTkZNlfVXzsFYwNlodjRD0Ckv8VjiCZiM 7TjxORg/shfzRZah+HRYJYlegXXuQKskZRFZm/+/Pe83xLsQxrawSbyMEErLF+Nrnf9b LMfs87qipz5RNyi9MgzSJ+qFTwzNMT5dk9u9LosPSSwwh1DuHwRc2tOUdmzKnh1SxIWt HE9w== X-Gm-Message-State: ACrzQf3BgKIx/I6+dlO5iOKUPAP5Bk4mqPA4XMAX8EQ8+GtdwQ3bjFOZ QPTUGOuIliU6Ttxi0Gl7tbMfJg== X-Google-Smtp-Source: AMsMyM4w/X1ryyE34SLnAVhK8m7uCZYfUViKig5a7KYERrxmTFqz8Lk9Tt/XvWsaZQfxmwBepn5OEQ== X-Received: by 2002:a5d:6d8a:0:b0:236:6123:a8a5 with SMTP id l10-20020a5d6d8a000000b002366123a8a5mr37979088wrs.229.1668010490566; Wed, 09 Nov 2022 08:14:50 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:50 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 4/9] hw/intc: Convert TYPE_ARM_GIC_KVM to 3-phase reset Date: Wed, 9 Nov 2022 16:14:39 +0000 Message-Id: <20221109161444.3397405-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=peter.maydell@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=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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Now we have converted TYPE_ARM_GIC_COMMON, we can convert the TYPE_ARM_GIC_KVM subclass to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- hw/intc/arm_gic_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c index 7d2a13273a4..1d588946bce 100644 --- a/hw/intc/arm_gic_kvm.c +++ b/hw/intc/arm_gic_kvm.c @@ -38,7 +38,7 @@ DECLARE_OBJ_CHECKERS(GICState, KVMARMGICClass, struct KVMARMGICClass { ARMGICCommonClass parent_class; DeviceRealize parent_realize; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; void kvm_arm_gic_set_irq(uint32_t num_irq, int irq, int level) @@ -473,12 +473,14 @@ static void kvm_arm_gic_get(GICState *s) } } -static void kvm_arm_gic_reset(DeviceState *dev) +static void kvm_arm_gic_reset_hold(Object *obj) { - GICState *s = ARM_GIC_COMMON(dev); + GICState *s = ARM_GIC_COMMON(obj); KVMARMGICClass *kgc = KVM_ARM_GIC_GET_CLASS(s); - kgc->parent_reset(dev); + if (kgc->parent_phases.hold) { + kgc->parent_phases.hold(obj); + } if (kvm_arm_gic_can_save_restore(s)) { kvm_arm_gic_put(s); @@ -593,6 +595,7 @@ static void kvm_arm_gic_realize(DeviceState *dev, Error **errp) static void kvm_arm_gic_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); ARMGICCommonClass *agcc = ARM_GIC_COMMON_CLASS(klass); KVMARMGICClass *kgc = KVM_ARM_GIC_CLASS(klass); @@ -600,7 +603,8 @@ static void kvm_arm_gic_class_init(ObjectClass *klass, void *data) agcc->post_load = kvm_arm_gic_put; device_class_set_parent_realize(dc, kvm_arm_gic_realize, &kgc->parent_realize); - device_class_set_parent_reset(dc, kvm_arm_gic_reset, &kgc->parent_reset); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_gic_reset_hold, NULL, + &kgc->parent_phases); } static const TypeInfo kvm_arm_gic_info = { From patchwork Wed Nov 9 16:14:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701823 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=fkvovwRj; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qnY3ChHz23mK for ; Thu, 10 Nov 2022 03:15:27 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnj9-00018X-Sh; Wed, 09 Nov 2022 11:14:59 -0500 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 1osnj7-00017A-Q5 for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:57 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj2-0007cR-C6 for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:57 -0500 Received: by mail-wr1-x42e.google.com with SMTP id bk15so26441116wrb.13 for ; Wed, 09 Nov 2022 08:14:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=LQMjmXDjci7tzxnXSukseV+1Ik+M+TaUYDCQHT998tw=; b=fkvovwRjmF/k+CvVDD3HUCUo3CWQtjuQw8c+/DEkDQxt/YPbmzi9GvCsSYJxeKQ+BF jFZ98YTeZcuQu/seeca+Y26qQJ54bMu1lwrNhPRgYoIW6Sw1TEdcqX7MhK00A8ARqyZk Q5ko2qzbB3G3SkgGZXQTEDMTAR3Z+Ca3xQW3KEmLAh1Y6atibd3NwY/fwNu9q8l4PJK1 vUQGkdrJ1Q4U9XWEz76TGJl5p0XHudhCcu2PQGq4gW0IIvz69l2GUvq6JSl4tNYggv/D e6ieW4lIuo8MA68UB4vpBtCyQ+75godiKnASFQw43oTYiWweaBlKU2P7I3wAj5YxHdZs 5aoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LQMjmXDjci7tzxnXSukseV+1Ik+M+TaUYDCQHT998tw=; b=JOs8ClfIPmKKj0k/UwAINgoyrF7+dhPBBsbFdEYBwpRcQHfp/c14266GzvgF2Y7Jph 05NRb6zagKRnCQ+Gp2DZacaQkKfgB4GsZnuF+1OOitvlqUNBWH2/BAcwwbQ4Ho0L1TeV vqk0rpM98Py2a9f2HYuepMxASpdr2r7GgNm0QR8UAEcTDDuhP6Qv56+GLt2bRMi8onxA M7CZKtqErzAldu52n1A1vbVOQ7P2aP1ePybQy9WsNgo3v0cHDVCbZ9XAtdgGcE5/p8Pf +W42/m0RbRCkKGjKOnZ3TAvszYTW0mxB9b1xVN3qqXHkgH/NrSGYt/g29x30/Gfq6poS QfIQ== X-Gm-Message-State: ACrzQf2xIKYEws6bJhm3ygBm9G6pOQ9SxdXe/xsocvO9C6PzXVZgCRzT L8HcvQGIS5f1WPKt+R2r4btBXpE+l4ttQg== X-Google-Smtp-Source: AMsMyM6X9esM6FiCOlbxU2APO1ImYNEVpKSF79HXljrDbVdfrxoCPkyo3VOAaaxTLB9qILXsLtGSdQ== X-Received: by 2002:adf:f8c3:0:b0:236:9c97:6f6b with SMTP id f3-20020adff8c3000000b002369c976f6bmr37899421wrq.548.1668010491583; Wed, 09 Nov 2022 08:14:51 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:51 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 5/9] hw/intc: Convert TYPE_ARM_GICV3_COMMON to 3-phase reset Date: Wed, 9 Nov 2022 16:14:40 +0000 Message-Id: <20221109161444.3397405-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x42e.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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_GICV3_COMMON parent class to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- hw/intc/arm_gicv3_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c index 351843db4aa..642a8243ed4 100644 --- a/hw/intc/arm_gicv3_common.c +++ b/hw/intc/arm_gicv3_common.c @@ -450,9 +450,9 @@ static void arm_gicv3_finalize(Object *obj) g_free(s->redist_region_count); } -static void arm_gicv3_common_reset(DeviceState *dev) +static void arm_gicv3_common_reset_hold(Object *obj) { - GICv3State *s = ARM_GICV3_COMMON(dev); + GICv3State *s = ARM_GICV3_COMMON(obj); int i; for (i = 0; i < s->num_cpu; i++) { @@ -578,9 +578,10 @@ static Property arm_gicv3_common_properties[] = { static void arm_gicv3_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); ARMLinuxBootIfClass *albifc = ARM_LINUX_BOOT_IF_CLASS(klass); - dc->reset = arm_gicv3_common_reset; + rc->phases.hold = arm_gicv3_common_reset_hold; dc->realize = arm_gicv3_common_realize; device_class_set_props(dc, arm_gicv3_common_properties); dc->vmsd = &vmstate_gicv3; From patchwork Wed Nov 9 16:14:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701827 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=UGq0qXcb; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qqB6gkxz23ll for ; Thu, 10 Nov 2022 03:16:54 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjA-00018p-PW; Wed, 09 Nov 2022 11:15:00 -0500 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 1osnj9-00018O-Jj for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:59 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj4-0007ry-Bx for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:14:59 -0500 Received: by mail-wr1-x432.google.com with SMTP id w14so26494342wru.8 for ; Wed, 09 Nov 2022 08:14:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=ca3S+uVbBJTLXkcc5so3RKCbYfZ7cQitrV38GQNpu6s=; b=UGq0qXcbl2HlNTdkgFa5D1jeNMUB9ZJ1xrdzsK4RAMl48TSW0Tlurz43wCkPCjzpy2 nBHBuSchvHFh6gkomwOq0fBNBlGYX7U8nwVi9myj+zshOpXis+1mmIWw2zX7IZx9QmlR Mr64OQ7pT8bRV8L8/eG18Uw2JhQjYEbPjkshSjAjr4auLjO2cw/HmfZgaZGtvn0JVuKT cl3+k6tBzSktghFknowxBA03r+w5jYK7BqgyNaN+1Dx7QjFBmDc0mTKFxfE25fxsPH8n WtsS+vY8lN294+B9SgJSDu9SyLNMJZ/K+KkUCzm9UYUmdtNjLsGnwjFLMWfvZR0fq6cS 4Jrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ca3S+uVbBJTLXkcc5so3RKCbYfZ7cQitrV38GQNpu6s=; b=kWTUZAFgBQJboqIRvjTfhVWKREW/kTlsHOiOd+PHzRZ8bMHGc/atn8uQwjSBeVmu5+ Vno4QnPDtqPpp+Mo0c7kczKoxEHrLEJxJ3FwKT0o2k82J9eQyvBePXV5Oq27DcQfZL+I 7F0KTGQn/ZdEjtIJyZNOr6pRwKQw+EfrZdgGNEjV04TFCdi7UpMKyEMaat6VQWFiR5wM JQyNrV23FeDcDjA3wreevek5J+hBC3rvTTCj70aGngjoWp6wpLzvh1Wz3Z/LD24I955z PpunyODPBJEHUwN/lVDr9k1BDZV9tDI4E/pNkMnYq1HQ3p1QjuJm20HnUsCKWwj5h0fO IQyQ== X-Gm-Message-State: ACrzQf03Kv5bmouUePDTC0ohWyGsR4lIWP1RbjvsyNhRXkZg9ATG/irk am1xzqgW9IYvV6PPDDEBhrUIsA== X-Google-Smtp-Source: AMsMyM7/hMmrWXOoF82HwcguJRGFdcjc9Gpy6XlE4EPVN1egaaRFhpITxVPthfd9/vy3T+MZJKdAPQ== X-Received: by 2002:adf:e0c8:0:b0:236:d9e5:4a51 with SMTP id m8-20020adfe0c8000000b00236d9e54a51mr31991642wri.168.1668010492632; Wed, 09 Nov 2022 08:14:52 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:52 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 6/9] hw/intc: Convert TYPE_KVM_ARM_GICV3 to 3-phase reset Date: Wed, 9 Nov 2022 16:14:41 +0000 Message-Id: <20221109161444.3397405-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=peter.maydell@linaro.org; helo=mail-wr1-x432.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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_KVM_ARM_GICV3 device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- hw/intc/arm_gicv3_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c index 3ca643ecba4..72ad916d3db 100644 --- a/hw/intc/arm_gicv3_kvm.c +++ b/hw/intc/arm_gicv3_kvm.c @@ -77,7 +77,7 @@ DECLARE_OBJ_CHECKERS(GICv3State, KVMARMGICv3Class, struct KVMARMGICv3Class { ARMGICv3CommonClass parent_class; DeviceRealize parent_realize; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; static void kvm_arm_gicv3_set_irq(void *opaque, int irq, int level) @@ -703,14 +703,16 @@ static void arm_gicv3_icc_reset(CPUARMState *env, const ARMCPRegInfo *ri) c->icc_ctlr_el1[GICV3_S] = c->icc_ctlr_el1[GICV3_NS]; } -static void kvm_arm_gicv3_reset(DeviceState *dev) +static void kvm_arm_gicv3_reset_hold(Object *obj) { - GICv3State *s = ARM_GICV3_COMMON(dev); + GICv3State *s = ARM_GICV3_COMMON(obj); KVMARMGICv3Class *kgc = KVM_ARM_GICV3_GET_CLASS(s); DPRINTF("Reset\n"); - kgc->parent_reset(dev); + if (kgc->parent_phases.hold) { + kgc->parent_phases.hold(obj); + } if (s->migration_blocker) { DPRINTF("Cannot put kernel gic state, no kernel interface\n"); @@ -890,6 +892,7 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, Error **errp) static void kvm_arm_gicv3_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); ARMGICv3CommonClass *agcc = ARM_GICV3_COMMON_CLASS(klass); KVMARMGICv3Class *kgc = KVM_ARM_GICV3_CLASS(klass); @@ -897,7 +900,8 @@ static void kvm_arm_gicv3_class_init(ObjectClass *klass, void *data) agcc->post_load = kvm_arm_gicv3_put; device_class_set_parent_realize(dc, kvm_arm_gicv3_realize, &kgc->parent_realize); - device_class_set_parent_reset(dc, kvm_arm_gicv3_reset, &kgc->parent_reset); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_gicv3_reset_hold, NULL, + &kgc->parent_phases); } static const TypeInfo kvm_arm_gicv3_info = { From patchwork Wed Nov 9 16:14:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701826 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=C4v2Kd9z; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qpn39DWz23ll for ; Thu, 10 Nov 2022 03:16:33 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjI-0001DZ-FV; Wed, 09 Nov 2022 11:15:09 -0500 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 1osnjE-0001CQ-VI for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:04 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj5-0007w0-3H for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:03 -0500 Received: by mail-wm1-x32e.google.com with SMTP id ja4-20020a05600c556400b003cf6e77f89cso2916602wmb.0 for ; Wed, 09 Nov 2022 08:14:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=7mC8UF4zmF3jcxIrFTqcyevksmdmVsanaUTLeosn6Mw=; b=C4v2Kd9zXnnWmmFHMLRVYW4xfMM0ogT6CjsMfmS9FbeDw9QzS48Nz9qzhWlf7lqA7x vrNEhVhYVLfy2ytTlhT+evluv9+EgS8IuUZGC96M1wMNKLHsCxbm1a45i199XftcdtQt YZJNQGMFtOY2wJaLXXOpmbzEBTXtlC+njwfzS0H+wiAyhbvoSXpKv2lw/VchiTTL8i1P AmYORPh7zVzPCIOhlvsFYB5OLU70aVb0hWl5gUINXcREUoFVfNI6f19RmkY1SUFpY1vj T7/5V9798ftoHwo084/hN5UaEO/eh55aakEHxXHbg0YMqUocCf+QxAcIGwY3uxtOBicT TEfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7mC8UF4zmF3jcxIrFTqcyevksmdmVsanaUTLeosn6Mw=; b=4nOW6jcVXKvRaORwdG90rlfRFj5tG7Ak972G6TFErC5zeZhzHQzJfSJOqR79P83b/2 5RnoKkLU4JQU0kgveX/XxpXfQ1xTGAgSFCtVH6rMEXziyQVDrPf+35nyLK/YCIXJrP4J SnhBl1noLryRj6bTLICVhCDlFKl5ELdkcfI0Pp3hEMXXTs46UNKjaQgaMGhBHWGBS3jw 8oYvmoJntMjX+lw/6JAY20SBoFPa3/BaZW14WQ760WFmBImWQ8FDpZ9SiIGDDBnKGjZV xr4QacjG4Hmsy5Wz0wVc0NZ51T+hGT99Wzzq/0dV9w6TK+XZbv2om7YvEpHGaOS04JPn b7qw== X-Gm-Message-State: ACrzQf36FkKWOb3XLgF4MfxLz6xS/Sq4Wg4dknZPOMKOQfTCW98LqU/7 Rdb9eaXK7uZHC5a28wRvHoRmDRNBsU+sig== X-Google-Smtp-Source: AMsMyM7dYDFzxMsPC8rIBEheKWHCYL/Mm5I+IqRvawQjO+ur89mABRnlBjpSMRpIleS5mmVapuoTsg== X-Received: by 2002:a05:600c:2c4b:b0:3cf:9cd9:a850 with SMTP id r11-20020a05600c2c4b00b003cf9cd9a850mr18142884wmg.135.1668010493822; Wed, 09 Nov 2022 08:14:53 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:53 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 7/9] hw/intc: Convert TYPE_ARM_GICV3_ITS_COMMON to 3-phase reset Date: Wed, 9 Nov 2022 16:14:42 +0000 Message-Id: <20221109161444.3397405-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32e.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, T_SPF_TEMPERROR=0.01 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_GICV3_ITS_COMMON parent class to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson --- hw/intc/arm_gicv3_its_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/arm_gicv3_its_common.c b/hw/intc/arm_gicv3_its_common.c index 90b85f1e25c..d7532a7a899 100644 --- a/hw/intc/arm_gicv3_its_common.c +++ b/hw/intc/arm_gicv3_its_common.c @@ -122,9 +122,9 @@ void gicv3_its_init_mmio(GICv3ITSState *s, const MemoryRegionOps *ops, msi_nonbroken = true; } -static void gicv3_its_common_reset(DeviceState *dev) +static void gicv3_its_common_reset_hold(Object *obj) { - GICv3ITSState *s = ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s = ARM_GICV3_ITS_COMMON(obj); s->ctlr = 0; s->cbaser = 0; @@ -137,8 +137,9 @@ static void gicv3_its_common_reset(DeviceState *dev) static void gicv3_its_common_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); - dc->reset = gicv3_its_common_reset; + rc->phases.hold = gicv3_its_common_reset_hold; dc->vmsd = &vmstate_its; } From patchwork Wed Nov 9 16:14:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701829 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=wfsrMWK9; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qsf6kg8z23ll for ; Thu, 10 Nov 2022 03:19:02 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjL-0001GV-H1; Wed, 09 Nov 2022 11:15:12 -0500 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 1osnjJ-0001FW-J7 for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:09 -0500 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 1osnj6-0007wJ-5U for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:08 -0500 Received: by mail-wm1-x336.google.com with SMTP id o30so11149977wms.2 for ; Wed, 09 Nov 2022 08:14:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=kuIn7I6CLp9VWQfNOdiiRV8ytBoQboktwZZOEvzvoPA=; b=wfsrMWK9LTJNjPEVGpICwDLtgoHzmdjrg8b+bNT6twp1Y6Q2JhvZi6PRZYTbpzAflG lL1W2C8lujVDswv1hWAmK79mc0s8v/u3UR2OVM8QZHD0v7uPOxU/kwEQaFw92WckIMmB 4Tl3u28pdDVAP7AWDgzxODjElQ+uIWKW3nxeFdqXkj8bleFB/zTTWrgtB/GvILnzRKUg GlRo/2JCvv3qH4xDOEFg542IGQQQqDc+VuYQqpyz8rHnD5kUwISIae21FGzNzvnGLWyJ NxoP2OnjKTVBAITlL1FzYf+mbRSu6n6OxuyV3zedy+1f2h86mHmlEgS4XIdONZw/Njc5 zhxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kuIn7I6CLp9VWQfNOdiiRV8ytBoQboktwZZOEvzvoPA=; b=AlRUfL1a3av9JOVA1mvUFC5Mj2w9JUG4zsdsmNuREsal7MRsJV1PDwFr7wuxLTl7jQ gl22jaA+kCbRftJSZSonZOSHfAyhtSAeDU/G1n0HkRNKExK+VKuPJ8HYBtSaKeEPZj02 6M4CiKXaEmOTmBZk+SLZ+viVxj5qH13QVt/Gg+KjeBBk5wG8xSfayaXG+bMbIwaSAmSn kWbb4zeEdIPBXt54La4/Bh1rS0sxaAIHT2QJXombJP/VREdwKElbWu++xlBLfUzrUNGi pYbMM7F4vMkG0PpwJTDD7HcrfMiIrlg8EY4caRvUyOuN4EP8q2RbFcrGDM2zxxv9fmQ3 ZjbA== X-Gm-Message-State: ANoB5pkw6QTUyerdyD4HMx5fufzQYhKZZys/DbAPQz2fPCCZoKEQMpkj t4a2XjYVyXF3uRTb8diHeLHBrw== X-Google-Smtp-Source: AA0mqf6z6kZXA46SgAtRAx5SKHMcQeiQikYOYq02GZqhIc2e7gJUZz2lt8jYWM6S67rJAcJZ7kieVg== X-Received: by 2002:a05:600c:230d:b0:3cf:acc6:ba97 with SMTP id 13-20020a05600c230d00b003cfacc6ba97mr10336300wmo.102.1668010494825; Wed, 09 Nov 2022 08:14:54 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:54 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 8/9] hw/intc: Convert TYPE_ARM_GICV3_ITS to 3-phase reset Date: Wed, 9 Nov 2022 16:14:43 +0000 Message-Id: <20221109161444.3397405-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x336.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_ARM_GICV3_ITS device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- hw/intc/arm_gicv3_its.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_its.c b/hw/intc/arm_gicv3_its.c index 2ff21ed6bbe..57c79da5c55 100644 --- a/hw/intc/arm_gicv3_its.c +++ b/hw/intc/arm_gicv3_its.c @@ -27,7 +27,7 @@ DECLARE_OBJ_CHECKERS(GICv3ITSState, GICv3ITSClass, struct GICv3ITSClass { GICv3ITSCommonClass parent_class; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; /* @@ -1953,12 +1953,14 @@ static void gicv3_arm_its_realize(DeviceState *dev, Error **errp) } } -static void gicv3_its_reset(DeviceState *dev) +static void gicv3_its_reset_hold(Object *obj) { - GICv3ITSState *s = ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s = ARM_GICV3_ITS_COMMON(obj); GICv3ITSClass *c = ARM_GICV3_ITS_GET_CLASS(s); - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } /* Quiescent bit reset to 1 */ s->ctlr = FIELD_DP32(s->ctlr, GITS_CTLR, QUIESCENT, 1); @@ -2012,12 +2014,14 @@ static Property gicv3_its_props[] = { static void gicv3_its_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); GICv3ITSClass *ic = ARM_GICV3_ITS_CLASS(klass); GICv3ITSCommonClass *icc = ARM_GICV3_ITS_COMMON_CLASS(klass); dc->realize = gicv3_arm_its_realize; device_class_set_props(dc, gicv3_its_props); - device_class_set_parent_reset(dc, gicv3_its_reset, &ic->parent_reset); + resettable_class_set_parent_phases(rc, NULL, gicv3_its_reset_hold, NULL, + &ic->parent_phases); icc->post_load = gicv3_its_post_load; } From patchwork Wed Nov 9 16:14:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 1701832 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=hUGj8q8O; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4N6qwS04CZz1yqS for ; Thu, 10 Nov 2022 03:21:26 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osnjN-0001Hp-Er; Wed, 09 Nov 2022 11:15:13 -0500 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 1osnjJ-0001FZ-Kp for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:09 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1osnj7-0007wa-B0 for qemu-devel@nongnu.org; Wed, 09 Nov 2022 11:15:07 -0500 Received: by mail-wm1-x331.google.com with SMTP id a11-20020a05600c2d4b00b003cf6f5fd9f1so1638357wmg.2 for ; Wed, 09 Nov 2022 08:14:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=MhXy5FBRE7GB4BVHsReuiuVjoZnsxoIVvRZtpjaxie8=; b=hUGj8q8O+4hvifMlG0jW7Iw0N0b8+DEurQN/UXJDLq6Gp7v152t4gjzX+zuhZjfjce N2u7LCHUUl4VH1SZ+2Op2Hn71TX+JoUDDnjlzENFPZH8rVxGAOggYUoLVF/foYTychst WubtShLpNo9ce9UmEvyjloNEK3CgiV5rd6MSdrXIauNUpaoYHHcVxLx8mc6T7be9aFS+ GuEOQyuNYQvlWBJj7N9IGQxe+q6yqZaKWdirguz64OsCr4oweZWK0r2XsImIxd8Y0Dry Qqf/iCmHnhvCgCAl8TUghZRkf9+VxGvCVqD2+mpVW9ZVFdqJhAD7DJTzJFVHwh/mtnB4 FLjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MhXy5FBRE7GB4BVHsReuiuVjoZnsxoIVvRZtpjaxie8=; b=oXGRCktgV1gaKS3YNClgq4beTY87/7+T5oJ/B6VM+hh9XCxUT5VqcuoInuC7A7Ib7w 00/1bYXz3PECI/fZlV325iCeshlrS6IDz4hQsb7qH+G0TDo/DfZdcZkCfmkvbFUUjj3e phVosWUD7pOFD8GO2DZtwVrIoVUgzZRDHzP2UFoZl2fYia1OtmcnMQrslQYrU8h36pPU mm+hc6Ip7/UznM/qhzVcZ5armSi9pQS/5Ut7hBcbrBFuCspOl4bi+ug29+kQJKWsAQhf WEnisXauEPIfWzqCqep1B6QcB5M95e2jVQi7fmN66DLpzSbfGx0SWw1+YIQvilUAQfYJ dMbQ== X-Gm-Message-State: ACrzQf0nzLMGt+rS6y0qb3jML/9yjqrnHE5fFOOSsTpjx0ToJ10AcZmD mVmx+OXrr/ItAwY/j2UMOv0kRBfWal8qWw== X-Google-Smtp-Source: AMsMyM7GjX+GOvy7gEX7uQBbxovWOfizMjyFHFXRnZS0dz1ZmWZ3eduLNICHKVjH3v4pmfg0jVNNvg== X-Received: by 2002:a05:600c:474a:b0:3cf:a197:8039 with SMTP id w10-20020a05600c474a00b003cfa1978039mr14928912wmo.179.1668010495889; Wed, 09 Nov 2022 08:14:55 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id p15-20020adfce0f000000b0022cbf4cda62sm16209186wrn.27.2022.11.09.08.14.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Nov 2022 08:14:55 -0800 (PST) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH for-8.0 9/9] hw/intc: Convert TYPE_KVM_ARM_ITS to 3-phase reset Date: Wed, 9 Nov 2022 16:14:44 +0000 Message-Id: <20221109161444.3397405-10-peter.maydell@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221109161444.3397405-1-peter.maydell@linaro.org> References: <20221109161444.3397405-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x331.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+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Convert the TYPE_KVM_ARM_ITS device to 3-phase reset. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- hw/intc/arm_gicv3_its_kvm.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c index 529c7bd4946..7eda9fb86ea 100644 --- a/hw/intc/arm_gicv3_its_kvm.c +++ b/hw/intc/arm_gicv3_its_kvm.c @@ -37,7 +37,7 @@ DECLARE_OBJ_CHECKERS(GICv3ITSState, KVMARMITSClass, struct KVMARMITSClass { GICv3ITSCommonClass parent_class; - void (*parent_reset)(DeviceState *dev); + ResettablePhases parent_phases; }; @@ -197,13 +197,15 @@ static void kvm_arm_its_post_load(GICv3ITSState *s) GITS_CTLR, &s->ctlr, true, &error_abort); } -static void kvm_arm_its_reset(DeviceState *dev) +static void kvm_arm_its_reset_hold(Object *obj) { - GICv3ITSState *s = ARM_GICV3_ITS_COMMON(dev); + GICv3ITSState *s = ARM_GICV3_ITS_COMMON(obj); KVMARMITSClass *c = KVM_ARM_ITS_GET_CLASS(s); int i; - c->parent_reset(dev); + if (c->parent_phases.hold) { + c->parent_phases.hold(obj); + } if (kvm_device_check_attr(s->dev_fd, KVM_DEV_ARM_VGIC_GRP_CTRL, KVM_DEV_ARM_ITS_CTRL_RESET)) { @@ -241,12 +243,14 @@ static Property kvm_arm_its_props[] = { static void kvm_arm_its_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); GICv3ITSCommonClass *icc = ARM_GICV3_ITS_COMMON_CLASS(klass); KVMARMITSClass *ic = KVM_ARM_ITS_CLASS(klass); dc->realize = kvm_arm_its_realize; device_class_set_props(dc, kvm_arm_its_props); - device_class_set_parent_reset(dc, kvm_arm_its_reset, &ic->parent_reset); + resettable_class_set_parent_phases(rc, NULL, kvm_arm_its_reset_hold, NULL, + &ic->parent_phases); icc->send_msi = kvm_its_send_msi; icc->pre_save = kvm_arm_its_pre_save; icc->post_load = kvm_arm_its_post_load;