From patchwork Mon Jul 29 14:56:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063943 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7EEEE13AC for ; Mon, 29 Jul 2019 15:03:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6B760284F1 for ; Mon, 29 Jul 2019 15:03:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5ED8E285F9; Mon, 29 Jul 2019 15:03:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 54176284F1 for ; Mon, 29 Jul 2019 15:03:20 +0000 (UTC) Received: from localhost ([::1]:52982 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7BH-0003Ti-LE for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:03:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37815) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77D-00048N-J0 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77A-0004XC-3W for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:07 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:47866) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs76z-0004Lq-7O; Mon, 29 Jul 2019 10:58:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 680C196F54; Mon, 29 Jul 2019 14:58:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412331; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uxjVvbIxNj4mVuniMLvjY/Wiyh5WRqlk3kJ9We1kpZg=; b=pv5U1pu+EDX9drgeHPg7L4f6A5RUt6PyVfXgTzuKw5czVagDIs2edhNVlrL4XtEN37nO2U dByyMLNmyCULZpzQdRCKA+zE8YdubaYl0aT3zPFji0Zxy0p98WrCBxlkWm1j1zmGvqKZxe Wqa2d3obJOU6VeukBWmnc5CQRtbhBWA= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:22 +0200 Message-Id: <20190729145654.14644-2-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412331; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uxjVvbIxNj4mVuniMLvjY/Wiyh5WRqlk3kJ9We1kpZg=; b=jR5XfSyKayMyFJFy5VrZLiYMyAl3O52UYBIkEuIxR+BIn5hAV2hsY7Kk7LP8+Jt8d+HdO1 t5GeHCbHcsey6A6zNOUguIRT12YIwNFLbm20BGxpTfLNN67kUwRvR9kdY5tc7iu5KZpJYM aSUUHiYkqETISKQK4YpjG+KB49JkfcU= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412331; a=rsa-sha256; cv=none; b=zdBwvNCtBRKbsbLqJqoD1r6KrLg+TPM6z8TrbkvNPBM7ZPvDaqqIuv0N4K5oqijQBau4EE PlPpWksNBjKOggBozLiWhHdR0P2MkNd+r5JPbDaW+aNrhkxKadrUvp8bozCjHOS0yKwoQs i1c8z2fLed1XrkoAMje4yXCCtkmUpvw= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 01/33] Create Resettable QOM interface X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This commit defines an interface allowing multi-phase reset. The phases are INIT, HOLD and EXIT. Each phase has an associated method in the class. The reset of a Resettable is controlled with 2 functions: - resettable_assert_reset which starts the reset operation. - resettable_deassert_reset which ends the reset operation. There is also a `resettable_reset` helper function which does assert then deassert allowing to do a proper reset in one call. In addition, two functions, *resettable_reset_cold_fn* and *resettable_reset_warm_fn*, are defined. They take only an opaque argument (for the Resettable object) and can be used as callbacks. The Resettable interface is "reentrant", _assert_ can be called several times and _deasert_ must be called the same number of times so that the Resettable leave reset state. It is supported by keeping a counter of the current number of _assert_ calls. The counter maintainance is done though 3 methods get/increment/decrement_count. A method set_cold is used to set the cold flag of the reset. Another method set_host_needed is used to ensure hold phase is executed only if required. Reset hierarchy is also supported. Each Resettable may have sub-Resettable objects. When resetting a Resettable, it is propagated to its children using the foreach_child method. When entering reset, init phases are executed parent-to-child order then hold phases are executed child-parent order. When leaving reset, exit phases are executed in child-to-parent order. This will allow to replace current qdev_reset mechanism by this interface without side-effects on reset order. Note: I used an uint32 for the count. This match the type already used in the existing resetting counter in hw/scsi/vmw_pvscsi.c for the PVSCSIState. Signed-off-by: Damien Hedde --- Makefile.objs | 1 + hw/core/Makefile.objs | 1 + hw/core/resettable.c | 220 ++++++++++++++++++++++++++++++++++++++++ hw/core/trace-events | 39 +++++++ include/hw/resettable.h | 126 +++++++++++++++++++++++ 5 files changed, 387 insertions(+) create mode 100644 hw/core/resettable.c create mode 100644 hw/core/trace-events create mode 100644 include/hw/resettable.h diff --git a/Makefile.objs b/Makefile.objs index 6a143dcd57..a723a47e14 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -191,6 +191,7 @@ trace-events-subdirs += migration trace-events-subdirs += net trace-events-subdirs += ui endif +trace-events-subdirs += hw/core trace-events-subdirs += hw/display trace-events-subdirs += qapi trace-events-subdirs += qom diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index f8481d959f..d9234aa98a 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -1,6 +1,7 @@ # core qdev-related obj files, also used by *-user: common-obj-y += qdev.o qdev-properties.o common-obj-y += bus.o reset.o +common-obj-y += resettable.o common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o # irq.o needed for qdev GPIO handling: diff --git a/hw/core/resettable.c b/hw/core/resettable.c new file mode 100644 index 0000000000..d7d631ce8b --- /dev/null +++ b/hw/core/resettable.c @@ -0,0 +1,220 @@ +/* + * Resettable interface. + * + * Copyright (c) 2019 GreenSocs SAS + * + * Authors: + * Damien Hedde + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "qemu/module.h" +#include "hw/resettable.h" +#include "trace.h" + +#define RESETTABLE_MAX_COUNT 50 + +#define RESETTABLE_GET_CLASS(obj) \ + OBJECT_GET_CLASS(ResettableClass, (obj), TYPE_RESETTABLE) + +static void resettable_init_reset(Object *obj, bool cold); + +static bool resettable_class_check(ResettableClass *rc) +{ + if (!rc->set_cold) { + return false; + } + if (!rc->set_hold_needed) { + return false; + } + if (!rc->increment_count) { + return false; + } + if (!rc->decrement_count) { + return false; + } + if (!rc->get_count) { + return false; + } + return true; +} + +static void resettable_foreach_child(ResettableClass *rc, + Object *obj, + void (*func)(Object *)) +{ + if (rc->foreach_child) { + rc->foreach_child(obj, func); + } +} + +static void resettable_init_cold_reset(Object *obj) +{ + resettable_init_reset(obj, true); +} + +static void resettable_init_warm_reset(Object *obj) +{ + resettable_init_reset(obj, false); +} + +static void resettable_init_reset(Object *obj, bool cold) +{ + void (*func)(Object *); + ResettableClass *rc = RESETTABLE_GET_CLASS(obj); + uint32_t count; + bool action_needed = false; + bool prev_cold; + + assert(resettable_class_check(rc)); + + count = rc->increment_count(obj); + /* this assert is here to catch an eventual reset loop */ + assert(count <= RESETTABLE_MAX_COUNT); + + /* + * only take action if: + * + we really enter reset for the 1st time + * + or we are in warm reset and start a cold one + */ + prev_cold = rc->set_cold(obj, cold); + if (count == 1) { + action_needed = true; + } else if (cold && !prev_cold) { + action_needed = true; + } + trace_resettable_phase_init(obj, object_get_typename(obj), cold, count, + action_needed); + + /* exec init phase */ + if (action_needed) { + rc->set_hold_needed(obj, true); + if (rc->phases.init) { + rc->phases.init(obj); + } + } + + /* + * handle the children even if action_needed is at false so that + * children counts are incremented too + */ + func = cold ? resettable_init_cold_reset : resettable_init_warm_reset; + resettable_foreach_child(rc, obj, func); + trace_resettable_phase_init_end(obj); +} + +static void resettable_hold_reset(Object *obj) +{ + ResettableClass *rc = RESETTABLE_GET_CLASS(obj); + bool hold_needed; + + assert(resettable_class_check(rc)); + trace_resettable_phase_hold(obj, object_get_typename(obj)); + + /* handle children first */ + resettable_foreach_child(rc, obj, resettable_hold_reset); + + /* exec hold phase */ + hold_needed = rc->set_hold_needed(obj, false); + if (hold_needed) { + if (rc->phases.hold) { + rc->phases.hold(obj); + } + } + trace_resettable_phase_hold_end(obj, hold_needed); +} + +static void resettable_exit_reset(Object *obj) +{ + uint32_t count; + ResettableClass *rc = RESETTABLE_GET_CLASS(obj); + + assert(resettable_class_check(rc)); + trace_resettable_phase_exit(obj, object_get_typename(obj)); + + resettable_foreach_child(rc, obj, resettable_deassert_reset); + + count = rc->get_count(obj); + /* + * we could assert that count > 0 but there are some corner cases + * where we prefer to let it go as it is probably harmless. + * For example: if there is reset support addition between + * hosts when doing a migration. We may do such things as + * deassert a non-existing reset. + */ + if (count > 0) { + count = rc->decrement_count(obj); + } else { + trace_resettable_count_underflow(obj); + } + if (count == 0) { + if (rc->phases.exit) { + rc->phases.exit(obj); + } + } + trace_resettable_phase_exit_end(obj, count); +} + +void resettable_assert_reset(Object *obj, bool cold) +{ + trace_resettable_reset_assert(obj, object_get_typename(obj), cold); + resettable_init_reset(obj, cold); + resettable_hold_reset(obj); +} + +void resettable_deassert_reset(Object *obj) +{ + trace_resettable_reset_deassert(obj, object_get_typename(obj)); + resettable_exit_reset(obj); +} + +void resettable_reset(Object *obj, bool cold) +{ + trace_resettable_reset(obj, object_get_typename(obj), cold); + resettable_assert_reset(obj, cold); + resettable_deassert_reset(obj); +} + +void resettable_reset_warm_fn(void *opaque) +{ + resettable_reset((Object *) opaque, false); +} + +void resettable_reset_cold_fn(void *opaque) +{ + resettable_reset((Object *) opaque, true); +} + +void resettable_class_set_parent_reset_phases(ResettableClass *rc, + ResettableInitPhase init, + ResettableHoldPhase hold, + ResettableExitPhase exit, + ResettablePhases *parent_phases) +{ + *parent_phases = rc->phases; + if (init) { + rc->phases.init = init; + } + if (hold) { + rc->phases.hold = hold; + } + if (exit) { + rc->phases.exit = exit; + } +} + +static const TypeInfo resettable_interface_info = { + .name = TYPE_RESETTABLE, + .parent = TYPE_INTERFACE, + .class_size = sizeof(ResettableClass), +}; + +static void reset_register_types(void) +{ + type_register_static(&resettable_interface_info); +} + +type_init(reset_register_types) diff --git a/hw/core/trace-events b/hw/core/trace-events new file mode 100644 index 0000000000..489d96d445 --- /dev/null +++ b/hw/core/trace-events @@ -0,0 +1,39 @@ +# See docs/devel/tracing.txt for syntax documentation. +# +# This file is processed by the tracetool script during the build. +# +# To add a new trace event: +# +# 1. Choose a name for the trace event. Declare its arguments and format +# string. +# +# 2. Call the trace event from code using trace_##name, e.g. multiwrite_cb() -> +# trace_multiwrite_cb(). The source file must #include "trace.h". +# +# Format of a trace event: +# +# [disable] ( [, ] ...) "" +# +# Example: g_malloc(size_t size) "size %zu" +# +# The "disable" keyword will build without the trace event. +# +# The must be a valid as a C function name. +# +# Types should be standard C types. Use void * for pointers because the trace +# system may not have the necessary headers included. +# +# The should be a sprintf()-compatible format string. + +# resettable.c +resettable_reset(void *obj, const char *type, int cold) "obj=%p(%s) cold=%d" +resettable_reset_assert(void *obj, const char *type, int cold) "obj=%p(%s) cold=%d" +resettable_reset_deassert(void *obj, const char *type) "obj=%p(%s)" +resettable_reset_deassert_end(void *obj) "obj=%p" +resettable_phase_init(void *obj, const char *type, int cold, uint32_t count, int needed) "obj=%p(%s) cold=%d count=%" PRIu32 " needed=%d" +resettable_phase_init_end(void *obj) "obj=%p" +resettable_phase_hold(void *obj, const char *type) "obj=%p(%s)" +resettable_phase_hold_end(void *obj, int needed) "obj=%p needed=%d" +resettable_phase_exit(void *obj, const char *type) "obj=%p(%s)" +resettable_phase_exit_end(void *obj, uint32_t count) "obj=%p count=%" PRIu32 +resettable_count_underflow(void *obj) "obj=%p" diff --git a/include/hw/resettable.h b/include/hw/resettable.h new file mode 100644 index 0000000000..e617a8e875 --- /dev/null +++ b/include/hw/resettable.h @@ -0,0 +1,126 @@ +#ifndef HW_RESETTABLE_H +#define HW_RESETTABLE_H + +#include "qom/object.h" + +#define TYPE_RESETTABLE "resettable" + +#define RESETTABLE_CLASS(class) \ + OBJECT_CLASS_CHECK(ResettableClass, (class), TYPE_RESETTABLE) + +/* + * ResettableClass: + * Interface for resettable objects. + * + * The reset operation is divided in several phases each represented by a + * method. + * + * Each Ressetable must maintain a reset counter in its state, 3 methods allows + * to interact with it. + * + * @phases.init: should reset local state only. Takes a bool @cold argument + * specifying whether the reset is cold or warm. It must not do side-effect + * on others objects. + * + * @phases.hold: side-effects action on others objects due to staying in a + * resetting state. + * + * @phases.exit: leave the reset state, may do side-effects action on others + * objects. + * + * @set_cold: Set whether the current reset is cold or warm. Return the + * previous flag value. Return value has no meaning if @get_count returns + * a zero value. + * + * @set_hold_needed: Set hold_needed flag. Return the previous flag value. + * + * @get_count: Get the current reset count + * @increment_count: Increment the reset count, returns the new count + * @decrement_count: decrement the reset count, returns the new count + * + * @foreach_child: Executes a given function on every Resettable child. + * A child is not a QOM child, but a child a reset meaning. + */ +typedef void (*ResettableInitPhase)(Object *obj); +typedef void (*ResettableHoldPhase)(Object *obj); +typedef void (*ResettableExitPhase)(Object *obj); +typedef bool (*ResettableSetCold)(Object *obj, bool cold); +typedef bool (*ResettableSetHoldNeeded)(Object *obj, bool hold_needed); +typedef uint32_t (*ResettableGetCount)(Object *obj); +typedef uint32_t (*ResettableIncrementCount)(Object *obj); +typedef uint32_t (*ResettableDecrementCount)(Object *obj); +typedef void (*ResettableForeachChild)(Object *obj, void (*visitor)(Object *)); +typedef struct ResettableClass { + InterfaceClass parent_class; + + struct ResettablePhases { + ResettableInitPhase init; + ResettableHoldPhase hold; + ResettableExitPhase exit; + } phases; + + ResettableSetCold set_cold; + ResettableSetHoldNeeded set_hold_needed; + ResettableGetCount get_count; + ResettableIncrementCount increment_count; + ResettableDecrementCount decrement_count; + ResettableForeachChild foreach_child; +} ResettableClass; +typedef struct ResettablePhases ResettablePhases; + +/** + * resettable_assert_reset: + * Increments the reset count and executes the init and hold phases. + * Each time resettable_assert_reset is called, resettable_deassert_reset + * must eventually be called once. + * It will also impact reset children. + * + * @obj object to reset, must implement Resettable interface. + * @cold boolean indicating the type of reset (cold or warm) + */ +void resettable_assert_reset(Object *obj, bool cold); + +/** + * resettable_deassert_reset: + * Decrements the reset count by one and executes the exit phase if it hits + * zero. + * It will also impact reset children. + * + * @obj object to reset, must implement Resettable interface. + */ +void resettable_deassert_reset(Object *obj); + +/** + * resettable_reset: + * Calling this function is equivalent to call @assert_reset then + * @deassert_reset. + */ +void resettable_reset(Object *obj, bool cold); + +/** + * resettable_reset_warm_fn: + * Helper to call resettable_reset(opaque, false) + */ +void resettable_reset_warm_fn(void *opaque); + +/** + * resettable_reset_cold_fn: + * Helper to call resettable_reset(opaque, true) + */ +void resettable_reset_cold_fn(void *opaque); + +/** + * resettable_class_set_parent_reset_phases: + * + * Save @rc current reset phases into @parent_phases and override @rc phases + * by the given new methods (@init, @hold and @exit). + * Each phase is overriden only if the new one is not NULL allowing to + * override a subset of phases. + */ +void resettable_class_set_parent_reset_phases(ResettableClass *rc, + ResettableInitPhase init, + ResettableHoldPhase hold, + ResettableExitPhase exit, + ResettablePhases *parent_phases); + +#endif From patchwork Mon Jul 29 14:56:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063933 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B272513B1 for ; Mon, 29 Jul 2019 15:00:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A15FC2847D for ; Mon, 29 Jul 2019 15:00:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 94A38284C8; Mon, 29 Jul 2019 15:00:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8F2D52847D for ; Mon, 29 Jul 2019 15:00:27 +0000 (UTC) Received: from localhost ([::1]:52896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78U-0006MK-Ti for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:00:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37540) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs776-0003re-9M for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs775-0004SN-4m for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:00 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:47916) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs770-0004N6-24; Mon, 29 Jul 2019 10:58:54 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id CB8D696F57; Mon, 29 Jul 2019 14:58:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aiqIrflaNa5CRchlhs9CsppxO8rAtOcqpCOtOp1k/GM=; b=y/nSaNI3ftY/Dq5tWvoieZ6AG3WpTgK2q089LYRUthhT9/3A3Eo17BP1WA0iVkgQ05IYO8 Of7Gfr1h4VDFnOWevw/L3OlJ7DIvgBsiuI1zCTp2XeZfT54gLODTrrKnDaopS2ZfkRWAbt nBrkxri0RDwd7xTInUgk3dBtHwsX3xk= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:23 +0200 Message-Id: <20190729145654.14644-3-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aiqIrflaNa5CRchlhs9CsppxO8rAtOcqpCOtOp1k/GM=; b=EMrJ6Y/iaFuBsQibLU0FN6ClIWd4wIuVbUdOkhxVDhCIoN8Xdtae2obZKPww/WefgFUi/Y 0DUOYKtHhvBJhUQM6JRfIRDj7gA+2mpxX7wjawpOjYOK5hI6STQTk2dJUH1zwN/neRIFNQ Ib/UBZkTjBTWUIH0u3vjlIm70qRBNGM= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412333; a=rsa-sha256; cv=none; b=BScCHCRyXaFec7+DGK/1ylR21Ja4QM9+etlE1NgbhrlgMquU5P6sU+S8/on4WxW+Uc8DDU ofN4hpErXuTuO9+AVE9DCLOmBnaFkxmmGKfD3QiZgshgCMyAhLk2b/8ZvniqlHYXm+x8N6 f8zb8tcwG2Xeh6QRGyuU7JDeKleOzGI= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 02/33] add temporary device_legacy_reset function to replace device_reset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Provide a temporary function doing what device_reset does to do the transition with Resettable API which will trigger a prototype change of device_reset. Signed-off-by: Damien Hedde Reviewed-by: Peter Maydell --- hw/core/qdev.c | 6 +++--- include/hw/qdev-core.h | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 94ebc0a4a1..043e058396 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -256,7 +256,7 @@ HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev) static int qdev_reset_one(DeviceState *dev, void *opaque) { - device_reset(dev); + device_legacy_reset(dev); return 0; } @@ -864,7 +864,7 @@ static void device_set_realized(Object *obj, bool value, Error **errp) } } if (dev->hotplugged) { - device_reset(dev); + device_legacy_reset(dev); } dev->pending_deleted_event = false; @@ -1086,7 +1086,7 @@ void device_class_set_parent_unrealize(DeviceClass *dc, dc->unrealize = dev_unrealize; } -void device_reset(DeviceState *dev) +void device_legacy_reset(DeviceState *dev) { DeviceClass *klass = DEVICE_GET_CLASS(dev); diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index e157fc4acd..690ce72433 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -407,11 +407,16 @@ char *qdev_get_own_fw_dev_path_from_handler(BusState *bus, DeviceState *dev); void qdev_machine_init(void); /** - * @device_reset + * device_legacy_reset: * * Reset a single device (by calling the reset method). */ -void device_reset(DeviceState *dev); +void device_legacy_reset(DeviceState *dev); + +static inline void device_reset(DeviceState *dev) +{ + device_legacy_reset(dev); +} void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, From patchwork Mon Jul 29 14:56:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063935 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C244013B1 for ; Mon, 29 Jul 2019 15:01:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AF57A285F2 for ; Mon, 29 Jul 2019 15:01:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A1C27285FB; Mon, 29 Jul 2019 15:01:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 16207285F2 for ; Mon, 29 Jul 2019 15:01:07 +0000 (UTC) Received: from localhost ([::1]:52916 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs797-00078C-LZ for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:01:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37717) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77A-000434-Ui for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs778-0004VJ-Po for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:04 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:47954) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs771-0004OL-DH; Mon, 29 Jul 2019 10:58:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 4A48C96F58; Mon, 29 Jul 2019 14:58:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412334; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=521vOHuLiLvfDSa3Sksi2ob6UnVR8YJSCp06JwJLTaU=; b=kmHBw+RAtNw04UI4NzqBlSWif2mJ2QMNKrBVQZKZxdPEHd/GySRl7aY5fm1vY6m9ydge7a dRzNpQmu+YgACM4FNeF6JanIIzOwXS82UZ5CvBEnAHctqCrMXVdCejR2J7Dh0thkzEH0jn 4YIoQoBYetixxxGmarYXVuwYMZUAEsE= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:24 +0200 Message-Id: <20190729145654.14644-4-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412334; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=521vOHuLiLvfDSa3Sksi2ob6UnVR8YJSCp06JwJLTaU=; b=DC7wLFAol4Z56yrwwN6gsbUsBTSlys015DoWHBzeQpo8egHJ+YxFrRo475mFTmBU4MMlnE sDRB9pWHmJatC7ZdGXstgDZ7FqAbB/To9jmIn0PUX3fACeXg/QNmrodsqJfJJmaebOk2r/ udKyY5/ByWuK3FSu6IIcZPWs60n/QGY= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412334; a=rsa-sha256; cv=none; b=HTG2kuyPhqAEMWaVoNttaIgRqR1zS5vOCQCktSSq93v9JT/4wg89Qca2EfKcP5wj33kMn4 N2Kqzq6ThKwF8lgzTopUFBc9iSnKcgru1TF74wx2204dWXHtpyM6wsdwRQz1JuhmtV5k9t 8EGt10x5LrCdB99J4BhSKUeGCA1Q+wA= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 03/33] Replace all call to device_reset by call to device_legacy_reset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Damien Hedde --- hw/audio/intel-hda.c | 2 +- hw/hyperv/hyperv.c | 2 +- hw/i386/pc.c | 2 +- hw/ide/microdrive.c | 8 ++++---- hw/intc/spapr_xive.c | 2 +- hw/ppc/pnv_psi.c | 2 +- hw/ppc/spapr_pci.c | 2 +- hw/ppc/spapr_vio.c | 2 +- hw/s390x/s390-pci-inst.c | 2 +- hw/scsi/vmw_pvscsi.c | 2 +- hw/sd/omap_mmc.c | 2 +- hw/sd/pl181.c | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c index b78baac295..f133684b10 100644 --- a/hw/audio/intel-hda.c +++ b/hw/audio/intel-hda.c @@ -1086,7 +1086,7 @@ static void intel_hda_reset(DeviceState *dev) QTAILQ_FOREACH(kid, &d->codecs.qbus.children, sibling) { DeviceState *qdev = kid->child; cdev = HDA_CODEC_DEVICE(qdev); - device_reset(DEVICE(cdev)); + device_legacy_reset(DEVICE(cdev)); d->state_sts |= (1 << cdev->cad); } intel_hda_update_irq(d); diff --git a/hw/hyperv/hyperv.c b/hw/hyperv/hyperv.c index 6ebf31c310..cd9db3cb5c 100644 --- a/hw/hyperv/hyperv.c +++ b/hw/hyperv/hyperv.c @@ -140,7 +140,7 @@ void hyperv_synic_reset(CPUState *cs) SynICState *synic = get_synic(cs); if (synic) { - device_reset(DEVICE(synic)); + device_legacy_reset(DEVICE(synic)); } } diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 549c437050..c0f20fe8aa 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -2823,7 +2823,7 @@ static void pc_machine_reset(MachineState *machine) cpu = X86_CPU(cs); if (cpu->apic_state) { - device_reset(cpu->apic_state); + device_legacy_reset(cpu->apic_state); } } } diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c index 92ee6e0af8..fc346f5ad5 100644 --- a/hw/ide/microdrive.c +++ b/hw/ide/microdrive.c @@ -173,7 +173,7 @@ static void md_attr_write(PCMCIACardState *card, uint32_t at, uint8_t value) case 0x00: /* Configuration Option Register */ s->opt = value & 0xcf; if (value & OPT_SRESET) { - device_reset(DEVICE(s)); + device_legacy_reset(DEVICE(s)); } md_interrupt_update(s); break; @@ -316,7 +316,7 @@ static void md_common_write(PCMCIACardState *card, uint32_t at, uint16_t value) case 0xe: /* Device Control */ s->ctrl = value; if (value & CTRL_SRST) { - device_reset(DEVICE(s)); + device_legacy_reset(DEVICE(s)); } md_interrupt_update(s); break; @@ -541,7 +541,7 @@ static int dscm1xxxx_attach(PCMCIACardState *card) md->attr_base = pcc->cis[0x74] | (pcc->cis[0x76] << 8); md->io_base = 0x0; - device_reset(DEVICE(md)); + device_legacy_reset(DEVICE(md)); md_interrupt_update(md); return 0; @@ -551,7 +551,7 @@ static int dscm1xxxx_detach(PCMCIACardState *card) { MicroDriveState *md = MICRODRIVE(card); - device_reset(DEVICE(md)); + device_legacy_reset(DEVICE(md)); return 0; } diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 3ae311d9ff..22e11ad10c 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -1511,7 +1511,7 @@ static target_ulong h_int_reset(PowerPCCPU *cpu, return H_PARAMETER; } - device_reset(DEVICE(xive)); + device_legacy_reset(DEVICE(xive)); if (kvm_irqchip_in_kernel()) { Error *local_err = NULL; diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index d7b6f5d75b..78eafa353a 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -703,7 +703,7 @@ static void pnv_psi_p9_mmio_write(void *opaque, hwaddr addr, break; case PSIHB9_INTERRUPT_CONTROL: if (val & PSIHB9_IRQ_RESET) { - device_reset(DEVICE(&psi9->source)); + device_legacy_reset(DEVICE(&psi9->source)); } psi->regs[reg] = val; break; diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 9003fe9010..3c6cf79a5e 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -2029,7 +2029,7 @@ static int spapr_phb_children_reset(Object *child, void *opaque) DeviceState *dev = (DeviceState *) object_dynamic_cast(child, TYPE_DEVICE); if (dev) { - device_reset(dev); + device_legacy_reset(dev); } return 0; diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index 583c13deda..5a0b5cc35c 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -306,7 +306,7 @@ int spapr_vio_send_crq(SpaprVioDevice *dev, uint8_t *crq) static void spapr_vio_quiesce_one(SpaprVioDevice *dev) { if (dev->tcet) { - device_reset(DEVICE(dev->tcet)); + device_legacy_reset(DEVICE(dev->tcet)); } free_crq(dev); } diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index 00235148be..93cda37c27 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -242,7 +242,7 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_t ra) stw_p(&ressetpci->hdr.rsp, CLP_RC_SETPCIFN_FHOP); goto out; } - device_reset(DEVICE(pbdev)); + device_legacy_reset(DEVICE(pbdev)); pbdev->fh &= ~FH_MASK_ENABLE; pbdev->state = ZPCI_FS_DISABLED; stl_p(&ressetpci->fh, pbdev->fh); diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index 14641df1c8..cda3fc96a0 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -835,7 +835,7 @@ pvscsi_on_cmd_reset_device(PVSCSIState *s) if (sdev != NULL) { s->resetting++; - device_reset(&sdev->qdev); + device_legacy_reset(&sdev->qdev); s->resetting--; return PVSCSI_COMMAND_PROCESSING_SUCCEEDED; } diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c index d0c98ca021..24a1edc149 100644 --- a/hw/sd/omap_mmc.c +++ b/hw/sd/omap_mmc.c @@ -317,7 +317,7 @@ void omap_mmc_reset(struct omap_mmc_s *host) * into any bus, and we must reset it manually. When omap_mmc is * QOMified this must move into the QOM reset function. */ - device_reset(DEVICE(host->card)); + device_legacy_reset(DEVICE(host->card)); } static uint64_t omap_mmc_read(void *opaque, hwaddr offset, diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 81b406dbf0..15b4aaa67f 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -480,7 +480,7 @@ static void pl181_reset(DeviceState *d) /* Since we're still using the legacy SD API the card is not plugged * into any bus, and we must reset it manually. */ - device_reset(DEVICE(s->card)); + device_legacy_reset(DEVICE(s->card)); } static void pl181_init(Object *obj) From patchwork Mon Jul 29 14:56:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063949 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CDE7F13AC for ; Mon, 29 Jul 2019 15:05:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BC3A3284FF for ; Mon, 29 Jul 2019 15:05:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AF3A82858F; Mon, 29 Jul 2019 15:05:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CA6C3284FF for ; Mon, 29 Jul 2019 15:05:45 +0000 (UTC) Received: from localhost ([::1]:53020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Dd-0007E2-2z for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:05:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37905) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77H-0004Bg-T9 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77D-0004bY-Rv for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:11 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:47988) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs772-0004PP-Qz; Mon, 29 Jul 2019 10:58:57 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id A311D96F59; Mon, 29 Jul 2019 14:58:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412335; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rxGn1CVCZ0DI+UxefdppQg1uDC8rnLqqzLKgyNbd95U=; b=EnWuoyn6PiWNMjrwMLvec93loNTSro61pVSsk/pHdEPRSvWq9ulcjbpoIws9Eu7+zhkJqs Xj29nVkqbjZiqLsp+05tiu1+QmvrPucS1gqQA+RYrmtnoTHHCLoI9rumR/Jky8xeImQumG CQADDhNmj2m1HoNQhkcnVnvlsFLgedc= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:25 +0200 Message-Id: <20190729145654.14644-5-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412335; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rxGn1CVCZ0DI+UxefdppQg1uDC8rnLqqzLKgyNbd95U=; b=YHkgyGAQulCF1XXnb8+AQB7dROmvHjBWLvYsj6VlvBCg4plVjF+LlD9HyM/hNt6Fy9UYj9 TmgOUx5wsWG8WL8VCdjGlTuLrCZmM5ZXd3WvgBbjY7AHl2E54A+GDVYTmeTt+wDdayXChA +eTGHSSbEx3tFgQ3IL3ZsX35pGIZu0g= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412335; a=rsa-sha256; cv=none; b=l26Udfv/6iNz5ygpEeeY/wjm68EJ/xCx0jBg73FjM2fyOer7WkKI4UdOQq0yJ4U+u1jRkT zqqUmQBwx45UCbKY9gcSrDF9lB0GWWQDdSd0tDKuuY/RygkNsVYoh+kMikzFGpT8BvbMQI 797d7V9jyKcZbJqrjlUW3b7XNaucUFY= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 04/33] make Device and Bus Resettable X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This add Resettable interface implementation for both Bus and Device. *resetting* counter and *reset_is_cold* flag are added in DeviceState and BusState. Compatibility with existing code base is ensured. The legacy bus or device reset method is called in the new exit phase and the other 2 phases are let empty. Using the exit phase guarantee that legacy resets are called in the "post" order (ie: children then parent) in hierarchical reset. That is the same order as legacy qdev_reset_all or qbus_reset_all were using. New *device_reset* and *bus_reset* function are proposed with an additional boolean argument telling whether the reset is cold or warm. Helper functions *device_reset_[warm|cold]* and *bus_reset_[warm|cold]* are defined also as helpers. Also add a [device|bus]_is_resetting and [device|bus]_is_reset_cold functions telling respectively whether the object is currently under reset and if the current reset is cold or not. Signed-off-by: Damien Hedde --- hw/core/bus.c | 85 ++++++++++++++++++++++++++++++++++++++++++ hw/core/qdev.c | 82 ++++++++++++++++++++++++++++++++++++++++ include/hw/qdev-core.h | 84 ++++++++++++++++++++++++++++++++++++++--- tests/Makefile.include | 1 + 4 files changed, 247 insertions(+), 5 deletions(-) diff --git a/hw/core/bus.c b/hw/core/bus.c index 17bc1edcde..08a97addb6 100644 --- a/hw/core/bus.c +++ b/hw/core/bus.c @@ -22,6 +22,7 @@ #include "qemu/module.h" #include "hw/qdev.h" #include "qapi/error.h" +#include "hw/resettable.h" void qbus_set_hotplug_handler(BusState *bus, Object *handler, Error **errp) { @@ -68,6 +69,75 @@ int qbus_walk_children(BusState *bus, return 0; } +void bus_reset(BusState *bus, bool cold) +{ + resettable_reset(OBJECT(bus), cold); +} + +bool bus_is_resetting(BusState *bus) +{ + return (bus->resetting != 0); +} + +bool bus_is_reset_cold(BusState *bus) +{ + return bus->reset_is_cold; +} + +static uint32_t bus_get_reset_count(Object *obj) +{ + BusState *bus = BUS(obj); + return bus->resetting; +} + +static uint32_t bus_increment_reset_count(Object *obj) +{ + BusState *bus = BUS(obj); + return ++bus->resetting; +} + +static uint32_t bus_decrement_reset_count(Object *obj) +{ + BusState *bus = BUS(obj); + return --bus->resetting; +} + +static bool bus_set_reset_cold(Object *obj, bool cold) +{ + BusState *bus = BUS(obj); + bool old = bus->reset_is_cold; + bus->reset_is_cold = cold; + return old; +} + +static bool bus_set_hold_needed(Object *obj, bool hold_needed) +{ + BusState *bus = BUS(obj); + bool old = bus->reset_hold_needed; + bus->reset_hold_needed = hold_needed; + return old; +} + +static void bus_foreach_reset_child(Object *obj, void (*func)(Object *)) +{ + BusState *bus = BUS(obj); + BusChild *kid; + + QTAILQ_FOREACH(kid, &bus->children, sibling) { + func(OBJECT(kid->child)); + } +} + +static void bus_obj_legacy_reset(Object *obj) +{ + BusState *bus = BUS(obj); + BusClass *bc = BUS_GET_CLASS(obj); + + if (bc->reset) { + bc->reset(bus); + } +} + static void qbus_realize(BusState *bus, DeviceState *parent, const char *name) { const char *typename = object_get_typename(OBJECT(bus)); @@ -192,6 +262,8 @@ static void qbus_initfn(Object *obj) NULL); object_property_add_bool(obj, "realized", bus_get_realized, bus_set_realized, NULL); + + bus->resetting = 0; } static char *default_bus_get_fw_dev_path(DeviceState *dev) @@ -202,9 +274,18 @@ static char *default_bus_get_fw_dev_path(DeviceState *dev) static void bus_class_init(ObjectClass *class, void *data) { BusClass *bc = BUS_CLASS(class); + ResettableClass *rc = RESETTABLE_CLASS(class); class->unparent = bus_unparent; bc->get_fw_dev_path = default_bus_get_fw_dev_path; + + rc->phases.exit = bus_obj_legacy_reset; + rc->get_count = bus_get_reset_count; + rc->increment_count = bus_increment_reset_count; + rc->decrement_count = bus_decrement_reset_count; + rc->foreach_child = bus_foreach_reset_child; + rc->set_cold = bus_set_reset_cold; + rc->set_hold_needed = bus_set_hold_needed; } static void qbus_finalize(Object *obj) @@ -223,6 +304,10 @@ static const TypeInfo bus_info = { .instance_init = qbus_initfn, .instance_finalize = qbus_finalize, .class_init = bus_class_init, + .interfaces = (InterfaceInfo[]) { + { TYPE_RESETTABLE }, + { } + }, }; static void bus_register_types(void) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 043e058396..559ced070d 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -254,6 +254,64 @@ HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev) return hotplug_ctrl; } +void device_reset(DeviceState *dev, bool cold) +{ + resettable_reset(OBJECT(dev), cold); +} + +bool device_is_resetting(DeviceState *dev) +{ + return (dev->resetting != 0); +} + +bool device_is_reset_cold(DeviceState *dev) +{ + return dev->reset_is_cold; +} + +static uint32_t device_get_reset_count(Object *obj) +{ + DeviceState *dev = DEVICE(obj); + return dev->resetting; +} + +static uint32_t device_increment_reset_count(Object *obj) +{ + DeviceState *dev = DEVICE(obj); + return ++dev->resetting; +} + +static uint32_t device_decrement_reset_count(Object *obj) +{ + DeviceState *dev = DEVICE(obj); + return --dev->resetting; +} + +static bool device_set_reset_cold(Object *obj, bool cold) +{ + DeviceState *dev = DEVICE(obj); + bool old = dev->reset_is_cold; + dev->reset_is_cold = cold; + return old; +} + +static bool device_set_hold_needed(Object *obj, bool hold_needed) +{ + DeviceState *dev = DEVICE(obj); + bool old = dev->reset_hold_needed; + dev->reset_hold_needed = hold_needed; + return old; +} + +static void device_foreach_reset_child(Object *obj, void (*func)(Object *)) +{ + DeviceState *dev = DEVICE(obj); + BusState *bus; + QLIST_FOREACH(bus, &dev->child_bus, sibling) { + func(OBJECT(bus)); + } +} + static int qdev_reset_one(DeviceState *dev, void *opaque) { device_legacy_reset(dev); @@ -954,6 +1012,7 @@ static void device_initfn(Object *obj) dev->instance_id_alias = -1; dev->realized = false; + dev->resetting = 0; object_property_add_bool(obj, "realized", device_get_realized, device_set_realized, NULL); @@ -1046,9 +1105,20 @@ static void device_unparent(Object *obj) } } +static void device_obj_legacy_reset(Object *obj) +{ + DeviceState *dev = DEVICE(obj); + DeviceClass *dc = DEVICE_GET_CLASS(dev); + + if (dc->reset) { + dc->reset(dev); + } +} + static void device_class_init(ObjectClass *class, void *data) { DeviceClass *dc = DEVICE_CLASS(class); + ResettableClass *rc = RESETTABLE_CLASS(class); class->unparent = device_unparent; @@ -1060,6 +1130,14 @@ static void device_class_init(ObjectClass *class, void *data) */ dc->hotpluggable = true; dc->user_creatable = true; + + rc->phases.exit = device_obj_legacy_reset; + rc->get_count = device_get_reset_count; + rc->increment_count = device_increment_reset_count; + rc->decrement_count = device_decrement_reset_count; + rc->foreach_child = device_foreach_reset_child; + rc->set_cold = device_set_reset_cold; + rc->set_hold_needed = device_set_hold_needed; } void device_class_set_parent_reset(DeviceClass *dc, @@ -1117,6 +1195,10 @@ static const TypeInfo device_type_info = { .class_init = device_class_init, .abstract = true, .class_size = sizeof(DeviceClass), + .interfaces = (InterfaceInfo[]) { + { TYPE_RESETTABLE }, + { } + }, }; static void qdev_register_types(void) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 690ce72433..eeb75611c8 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -7,6 +7,7 @@ #include "hw/irq.h" #include "hw/hotplug.h" #include "sysemu/sysemu.h" +#include "hw/resettable.h" enum { DEV_NVECTORS_UNSPECIFIED = -1, @@ -132,6 +133,10 @@ struct NamedGPIOList { /** * DeviceState: * @realized: Indicates whether the device has been fully constructed. + * @resetting: Indicates whether the device is under reset. Also + * used to count how many times reset has been initiated on the device. + * @reset_is_cold: If the device is under reset, indicates whether it is cold + * or warm. * * This structure should not be accessed directly. We declare it here * so that it can be embedded in individual device state structures. @@ -153,6 +158,9 @@ struct DeviceState { int num_child_bus; int instance_id_alias; int alias_required_for_version; + uint32_t resetting; + bool reset_is_cold; + bool reset_hold_needed; }; struct DeviceListener { @@ -199,6 +207,10 @@ typedef struct BusChild { /** * BusState: * @hotplug_handler: link to a hotplug handler associated with bus. + * @resetting: Indicates whether the bus is under reset. Also + * used to count how many times reset has been initiated on the bus. + * @reset_is_cold: If the bus is under reset, indicates whether it is cold + * or warm. */ struct BusState { Object obj; @@ -210,6 +222,9 @@ struct BusState { int num_children; QTAILQ_HEAD(, BusChild) children; QLIST_ENTRY(BusState) sibling; + uint32_t resetting; + bool reset_is_cold; + bool reset_hold_needed; }; /** @@ -376,6 +391,70 @@ int qdev_walk_children(DeviceState *dev, qdev_walkerfn *post_devfn, qbus_walkerfn *post_busfn, void *opaque); +/** + * device_reset: + * Resets the device @dev, @cold tell whether to do a cold or warm reset. + * Uses the ressetable interface. + * Base behavior is to reset the device and its qdev/qbus subtree. + */ +void device_reset(DeviceState *dev, bool cold); + +static inline void device_reset_warm(DeviceState *dev) +{ + device_reset(dev, false); +} + +static inline void device_reset_cold(DeviceState *dev) +{ + device_reset(dev, true); +} + +/** + * bus_reset: + * Resets the bus @bus, @cold tell whether to do a cold or warm reset. + * Uses the ressetable interface. + * Base behavior is to reset the bus and its qdev/qbus subtree. + */ +void bus_reset(BusState *bus, bool cold); + +static inline void bus_reset_warm(BusState *bus) +{ + bus_reset(bus, false); +} + +static inline void bus_reset_cold(BusState *bus) +{ + bus_reset(bus, true); +} + +/** + * device_is_resetting: + * Tell whether the device @dev is currently under reset. + */ +bool device_is_resetting(DeviceState *dev); + +/** + * device_is_reset_cold: + * Tell whether the device @dev is currently under reset cold or warm reset. + * + * Note: only valid when device_is_resetting returns true. + */ +bool device_is_reset_cold(DeviceState *dev); + +/** + * bus_is_resetting: + * Tell whether the bus @bus is currently under reset. + */ +bool bus_is_resetting(BusState *bus); + +/** + * bus_is_reset_cold: + * Tell whether the bus @bus is currently under reset cold or warm reset. + * + * Note: only valid when bus_is_resetting returns true. + */ +bool bus_is_reset_cold(BusState *bus); + void qdev_reset_all(DeviceState *dev); void qdev_reset_all_fn(void *opaque); @@ -413,11 +492,6 @@ void qdev_machine_init(void); */ void device_legacy_reset(DeviceState *dev); -static inline void device_reset(DeviceState *dev) -{ - device_legacy_reset(dev); -} - void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, DeviceReset *parent_reset); diff --git a/tests/Makefile.include b/tests/Makefile.include index fd7fdb8658..1c0a5345b9 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -561,6 +561,7 @@ tests/fp/%: tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\ + hw/core/resettable.o \ hw/core/bus.o \ hw/core/irq.o \ hw/core/fw-path-provider.o \ From patchwork Mon Jul 29 14:56:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063939 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02B5714DB for ; Mon, 29 Jul 2019 15:03:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E5080284F1 for ; Mon, 29 Jul 2019 15:03:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D8A01285F9; Mon, 29 Jul 2019 15:03:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5D10A284F1 for ; Mon, 29 Jul 2019 15:03:05 +0000 (UTC) Received: from localhost ([::1]:52978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7B2-0002no-Nx for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:03:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37812) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77D-00048K-Id for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77C-0004ZH-3d for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:07 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48004) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs774-0004Qa-5f; Mon, 29 Jul 2019 10:58:58 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 111A496F5A; Mon, 29 Jul 2019 14:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OSbZBrooUlpNiqJvIw0CUPHIsdjLEeJwNlZv9K17I/0=; b=v8KfFYqOpQf7oIDDzN8FDe+GM3Ck5jaZZZdxx7rXVBNQP4Wzf6fg41uVbvKnJWEqSBT9l/ 2+Lk6UkdkMtimU7nGwLpBzUC+9TUOC98BdFqLH1u3PLmfecY9nRZVGAaQ+L+hcUN+pSM/a aVBchxm52ZEUpyW1LbwJ2gVh1JBPMRU= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:26 +0200 Message-Id: <20190729145654.14644-6-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OSbZBrooUlpNiqJvIw0CUPHIsdjLEeJwNlZv9K17I/0=; b=mepM0RO3/446PQmNi/jIsK+aRxRWVwfPQrnexUjsCJFysqtb++Nu+qZzuseswiCO+4tO5y 2d7gAVbbD3q0weiYVqAcxlfZAt92p8HfxebPedy5s6Da41zqBfmbJ9c+lEQfFxi1BrriNV XYjFl3h1s88ymC91DpkVMnUuxX60A9E= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412337; a=rsa-sha256; cv=none; b=T+To/0nzF3o75zV9CtHv1QR9RVDEFuquB9MfCu8v8tj7rsP3LXFMKdVaAaEIKMBL7/Edlo 5O2j2fgkvQEpsYRziu4n0DoajUkV0x21T5n7TZXrY7btonw/EBiajBNH5oUamB/4bdUVjX HEPhKS3upcwjLKCpOgQzGbQAnXAuqoo= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 05/33] Switch to new api in qdev/bus X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Deprecate old reset apis and make them use the new one while they are still used somewhere. Signed-off-by: Damien Hedde --- hw/core/qdev.c | 22 +++------------------- include/hw/qdev-core.h | 28 ++++++++++++++++++++++------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 559ced070d..e9e5f2d5f9 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -312,25 +312,9 @@ static void device_foreach_reset_child(Object *obj, void (*func)(Object *)) } } -static int qdev_reset_one(DeviceState *dev, void *opaque) -{ - device_legacy_reset(dev); - - return 0; -} - -static int qbus_reset_one(BusState *bus, void *opaque) -{ - BusClass *bc = BUS_GET_CLASS(bus); - if (bc->reset) { - bc->reset(bus); - } - return 0; -} - void qdev_reset_all(DeviceState *dev) { - qdev_walk_children(dev, NULL, NULL, qdev_reset_one, qbus_reset_one, NULL); + device_reset(dev, false); } void qdev_reset_all_fn(void *opaque) @@ -340,7 +324,7 @@ void qdev_reset_all_fn(void *opaque) void qbus_reset_all(BusState *bus) { - qbus_walk_children(bus, NULL, NULL, qdev_reset_one, qbus_reset_one, NULL); + bus_reset(bus, false); } void qbus_reset_all_fn(void *opaque) @@ -922,7 +906,7 @@ static void device_set_realized(Object *obj, bool value, Error **errp) } } if (dev->hotplugged) { - device_legacy_reset(dev); + device_reset(dev, true); } dev->pending_deleted_event = false; diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index eeb75611c8..1670ae41bb 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -109,6 +109,11 @@ typedef struct DeviceClass { bool hotpluggable; /* callbacks */ + /* + * Reset method here is deprecated and replaced by methods in the + * resettable class interface to implement a multi-phase reset. + * TODO: remove once every reset callback is unused + */ DeviceReset reset; DeviceRealize realize; DeviceUnrealize unrealize; @@ -455,19 +460,22 @@ bool bus_is_resetting(BusState *bus); */ bool bus_is_reset_cold(BusState *bus); -void qdev_reset_all(DeviceState *dev); -void qdev_reset_all_fn(void *opaque); - /** - * @qbus_reset_all: - * @bus: Bus to be reset. + * qbus/qdev_reset_all: + * @bus/dev: Bus/Device to be reset. * - * Reset @bus and perform a bus-level ("hard") reset of all devices connected + * Reset @bus/dev and perform a bus-level reset of all devices/buses connected * to it, including recursive processing of all buses below @bus itself. A * hard reset means that qbus_reset_all will reset all state of the device. * For PCI devices, for example, this will include the base address registers * or configuration space. + * + * Theses functions are deprecated, please use device/bus_reset or + * resettable_reset_* instead + * TODO: remove them when all occurence are removed */ +void qdev_reset_all(DeviceState *dev); +void qdev_reset_all_fn(void *opaque); void qbus_reset_all(BusState *bus); void qbus_reset_all_fn(void *opaque); @@ -489,9 +497,17 @@ void qdev_machine_init(void); * device_legacy_reset: * * Reset a single device (by calling the reset method). + * + * This function is deprecated, please use device_reset() instead. + * TODO: remove the function when all occurences are removed. */ void device_legacy_reset(DeviceState *dev); +/** + * device_class_set_parent_reset: + * TODO: remove the function when DeviceClass's reset method + * is not used anymore. + */ void device_class_set_parent_reset(DeviceClass *dc, DeviceReset dev_reset, DeviceReset *parent_reset); From patchwork Mon Jul 29 14:56:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063947 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9588414DB for ; Mon, 29 Jul 2019 15:05:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8382E284F1 for ; Mon, 29 Jul 2019 15:05:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 76F2B2861D; Mon, 29 Jul 2019 15:05:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B20B6284F1 for ; Mon, 29 Jul 2019 15:05:28 +0000 (UTC) Received: from localhost ([::1]:53018 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7DL-0006S4-V7 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:05:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37813) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77D-00048M-J0 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77C-0004ZP-AA for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:07 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48034) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs775-0004S8-Mq; Mon, 29 Jul 2019 10:58:59 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 7518996F5B; Mon, 29 Jul 2019 14:58:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aLHBAamQpnZuSEihCn2XlqNPDj9zeHn+BmvmCqsNNyM=; b=OktRKzwpS4DGsPujyFvuHWxHoOiFQMYuec2mEyCqFhQhRqVsx6iRQUmV9yM+GJgjBB1VV2 rVU4tTsNKIOKz47aSvmkoNvjINRdD07upaDMw1OASDTHj/1Z3kzShIIzY5VjU5bP8fpe1/ SqO10qi/lYTArxhx4bV4ozRANh0QWOg= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:27 +0200 Message-Id: <20190729145654.14644-7-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aLHBAamQpnZuSEihCn2XlqNPDj9zeHn+BmvmCqsNNyM=; b=7FvqhxfHd9nIiRQiKCyoJA5jR+lY+zCsfj/Kt4pNUPP7NB4JZNThXE4fwdVqR7E50vS95J MzyI949VESJBVix+7dyB3nUWQJqmczcRrvEKJ1f8BXPzWvV2uEhsYv1EqZhqwyr6n/04gW hdTHl6Ah5853jF80pMOYu0ims4PzXcs= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412338; a=rsa-sha256; cv=none; b=3ZEilZd31eZOE/WYaB9XrZNwsUgjcBOsCQbFYa5WECMb+IwBMXujJnoun+SIEXbnoJsbkF IogGDT9L+lKtNZ3VjmNW60NFhBcUJmdAGKBOxSJVn/9vktMXyTu1S7dlHjHG3Zn+B20Xh6 axzuVGCpwNJMToS0ZxInyb9JE+TuvYU= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 06/33] add the vmstate description for device reset state X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP It contains the resetting counter and cold flag status. At this point, migration of bus reset related state (counter and cold/warm flag) is handled by parent device. This done using the post_load function in the vmsd subsection. This is last point allow to add an initial support of migration with part of qdev/qbus tree in reset state under the following condition: + time-lasting reset are asserted on Device only Note that if this condition is not respected, migration will succeed and no failure will occurs. The only impact is that the resetting counter of a bus may lower afer a migration. Signed-off-by: Damien Hedde --- hw/core/Makefile.objs | 1 + hw/core/qdev-vmstate.c | 45 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 hw/core/qdev-vmstate.c diff --git a/hw/core/Makefile.objs b/hw/core/Makefile.objs index d9234aa98a..49e9be0228 100644 --- a/hw/core/Makefile.objs +++ b/hw/core/Makefile.objs @@ -4,6 +4,7 @@ common-obj-y += bus.o reset.o common-obj-y += resettable.o common-obj-$(CONFIG_SOFTMMU) += qdev-fw.o common-obj-$(CONFIG_SOFTMMU) += fw-path-provider.o +common-obj-$(CONFIG_SOFTMMU) += qdev-vmstate.o # irq.o needed for qdev GPIO handling: common-obj-y += irq.o common-obj-y += hotplug.o diff --git a/hw/core/qdev-vmstate.c b/hw/core/qdev-vmstate.c new file mode 100644 index 0000000000..07b010811f --- /dev/null +++ b/hw/core/qdev-vmstate.c @@ -0,0 +1,45 @@ +/* + * Device vmstate + * + * Copyright (c) 2019 GreenSocs + * + * Authors: + * Damien Hedde + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "hw/qdev.h" +#include "migration/vmstate.h" + +static bool device_vmstate_reset_needed(void *opaque) +{ + DeviceState *dev = (DeviceState *) opaque; + return dev->resetting != 0; +} + +static int device_vmstate_reset_post_load(void *opaque, int version_id) +{ + DeviceState *dev = (DeviceState *) opaque; + BusState *bus; + QLIST_FOREACH(bus, &dev->child_bus, sibling) { + bus->resetting = dev->resetting; + bus->reset_is_cold = dev->reset_is_cold; + } + return 0; +} + +const struct VMStateDescription device_vmstate_reset = { + .name = "device_reset", + .version_id = 0, + .minimum_version_id = 0, + .needed = device_vmstate_reset_needed, + .post_load = device_vmstate_reset_post_load, + .fields = (VMStateField[]) { + VMSTATE_UINT32(resetting, DeviceState), + VMSTATE_BOOL(reset_is_cold, DeviceState), + VMSTATE_END_OF_LIST() + }, +}; From patchwork Mon Jul 29 14:56:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063959 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7716D14DB for ; Mon, 29 Jul 2019 15:08:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 66539284C3 for ; Mon, 29 Jul 2019 15:08:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5A6B3285FB; Mon, 29 Jul 2019 15:08:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E0EF22857D for ; Mon, 29 Jul 2019 15:08:39 +0000 (UTC) Received: from localhost ([::1]:53144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7GR-0005B2-8d for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:08:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37960) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77J-0004C2-VH for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77H-0004fM-Dl for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:13 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48070) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs777-0004TL-1w; Mon, 29 Jul 2019 10:59:01 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id D39C596F5E; Mon, 29 Jul 2019 14:58:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NnkkIoHVwWj6c273Ch/WUhHvEUJl8xs34edh8vQqVyY=; b=CroHY+IlItvjMM4Iw8/7AYkxH5q8EiTBp1PKOIK+M0rdPIHctZYv9o1GokUeUF5uTySRNj fO8u47ZuIG+TSBno3xcVOgBS4os+0iLJ/5bfKNCLRprHTocNKBxKxID9LM2xqptAiIHor/ V3gQvO/Jxh+CZ27PTXuYGxw613ku4OU= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:28 +0200 Message-Id: <20190729145654.14644-8-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NnkkIoHVwWj6c273Ch/WUhHvEUJl8xs34edh8vQqVyY=; b=NFJL4PD3UgBLR7FmwdToZdyfJh+nCcCVNXArVa4OtIbRuz0PoSUGZ+bl5HZSd1I7C5Stvy 351xcD331HNpGgIFDA/gRnLDcGopGY2Bc3QmEoacdjQpD5TpifOfi01xTDzTIaZI3mRWMg zE701oZWUEyMYk/qp/oqfdW8u+TgCI0= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412340; a=rsa-sha256; cv=none; b=XwPuZipvWSknFivXe90DlrcOw0OtcyvyzoGCBs9TYAJuwybn3igXaReNWrg991UMTMRDs4 AiT3xcKfHAdH2kOJ8xNEQxxsXTQuxzX1h/t+ckopXNAAzKR0fkPOUfAk1iGO1/erfhMoJT 7b7TOiaXU/Z/cN7GGLWb61OvUTXGgQ4= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 07/33] automatically add vmstate for reset support in devices X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This add the reset related sections for every QOM device. Signed-off-by: Damien Hedde --- hw/core/qdev-vmstate.c | 41 +++++++++++++++++++++++++++++++++++++++++ hw/core/qdev.c | 12 +++++++++++- include/hw/qdev-core.h | 3 +++ stubs/Makefile.objs | 1 + stubs/device.c | 7 +++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 stubs/device.c diff --git a/hw/core/qdev-vmstate.c b/hw/core/qdev-vmstate.c index 07b010811f..24f8465c61 100644 --- a/hw/core/qdev-vmstate.c +++ b/hw/core/qdev-vmstate.c @@ -43,3 +43,44 @@ const struct VMStateDescription device_vmstate_reset = { VMSTATE_END_OF_LIST() }, }; + +static VMStateDescription *vmsd_duplicate_and_append( + const VMStateDescription *old_vmsd, + const VMStateDescription *new_subsection) +{ + VMStateDescription *vmsd; + int n = 0; + + assert(old_vmsd && new_subsection); + + vmsd = (VMStateDescription *) g_memdup(old_vmsd, sizeof(*vmsd)); + + if (old_vmsd->subsections) { + while (old_vmsd->subsections[n]) { + n += 1; + } + } + vmsd->subsections = g_new(const VMStateDescription *, n + 2); + + if (old_vmsd->subsections) { + memcpy(vmsd->subsections, old_vmsd->subsections, + sizeof(VMStateDescription *) * n); + } + vmsd->subsections[n] = new_subsection; + vmsd->subsections[n + 1] = NULL; + + return vmsd; +} + +void device_class_build_extended_vmsd(DeviceClass *dc) +{ + assert(dc->vmsd); + assert(!dc->vmsd_ext); + + /* forge a subsection with proper name */ + VMStateDescription *reset; + reset = g_memdup(&device_vmstate_reset, sizeof(*reset)); + reset->name = g_strdup_printf("%s/device_reset", dc->vmsd->name); + + dc->vmsd_ext = vmsd_duplicate_and_append(dc->vmsd, reset); +} diff --git a/hw/core/qdev.c b/hw/core/qdev.c index e9e5f2d5f9..88387d3743 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -45,7 +45,17 @@ bool qdev_hot_removed = false; const VMStateDescription *qdev_get_vmsd(DeviceState *dev) { DeviceClass *dc = DEVICE_GET_CLASS(dev); - return dc->vmsd; + + if (!dc->vmsd) { + return NULL; + } + + if (!dc->vmsd_ext) { + /* build it first time we need it */ + device_class_build_extended_vmsd(dc); + } + + return dc->vmsd_ext; } static void bus_remove_child(BusState *bus, DeviceState *child) diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 1670ae41bb..926d4bbcb1 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -120,6 +120,7 @@ typedef struct DeviceClass { /* device state */ const struct VMStateDescription *vmsd; + const struct VMStateDescription *vmsd_ext; /* Private to qdev / bus. */ const char *bus_type; @@ -520,6 +521,8 @@ void device_class_set_parent_unrealize(DeviceClass *dc, const struct VMStateDescription *qdev_get_vmsd(DeviceState *dev); +void device_class_build_extended_vmsd(DeviceClass *dc); + const char *qdev_fw_name(DeviceState *dev); Object *qdev_get_machine(void); diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 9c7393b08c..432b56f290 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -40,4 +40,5 @@ stub-obj-y += pci-host-piix.o stub-obj-y += ram-block.o stub-obj-y += ramfb.o stub-obj-y += fw_cfg.o +stub-obj-y += device.o stub-obj-$(CONFIG_SOFTMMU) += semihost.o diff --git a/stubs/device.c b/stubs/device.c new file mode 100644 index 0000000000..e9b4f57e5f --- /dev/null +++ b/stubs/device.c @@ -0,0 +1,7 @@ +#include "qemu/osdep.h" +#include "hw/qdev-core.h" + +void device_class_build_extended_vmsd(DeviceClass *dc) +{ + return; +} From patchwork Mon Jul 29 14:56:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063955 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D22A113AC for ; Mon, 29 Jul 2019 15:07:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C025A284C3 for ; Mon, 29 Jul 2019 15:07:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B400E285A4; Mon, 29 Jul 2019 15:07:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 26004284C3 for ; Mon, 29 Jul 2019 15:07:38 +0000 (UTC) Received: from localhost ([::1]:53108 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7FR-0002S4-HZ for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:07:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38073) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77Q-0004HY-Rg for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77L-0004j8-EZ for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:17 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48108) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs778-0004UA-K9; Mon, 29 Jul 2019 10:59:03 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 3E69896F63; Mon, 29 Jul 2019 14:59:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=409z6EcDD8PHCk72cCP2wzloU1EO5HsmW5lWXcYVGNs=; b=xiA+HxspsLSBtmQcw+UvJ/wzhyFTaaXQuhIXreXHNWUyJndVIdBS5VTsTzNdkxYvDKIc2N 4c8tuqHWXo5Pg7KmqYndFmLGgi6sLEYUqPevLayStKO6KNvb5J76ilgmDQ3SmqvZ+OA0xi ig6QWdsZp3AbTtbeMWYY/K+OnIJvIgI= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:29 +0200 Message-Id: <20190729145654.14644-9-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=409z6EcDD8PHCk72cCP2wzloU1EO5HsmW5lWXcYVGNs=; b=yrwdTmD8nli09lh4tSL2S4rXSszfTatn7Y1PP+jI/c36hC5bnnX6cOxH3blgc2SqVeOSXK L4uvV5HjM6Ea2x9/gLXdfBhWC/4gxOmR7KXBc7+vBXfvg3KhcQRZ3cMo2q688hE4JKagXT D21NSh9YTv4mdnsrKB9UUw7yCCDQxW4= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412341; a=rsa-sha256; cv=none; b=Iw5SF0aymzGYPVa6mybde/cU7+/kf+iKmI9X64k+3GPT2xQroQh2325IyGMVDrNXHzK+TZ ViVIj0y2juaNXZZoOAiDjsLJ/Ghz8vOrIDZ5zBSQ+IREWndsjGvRhLzwgYtZvGahqLS9nG Ve/Bzba2DvH4orgGjVoMvo4bOav83Lc= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 08/33] Add function to control reset with gpio inputs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP It adds the possibility to add 2 gpios to control the warm and cold reset. With theses ios, the reset can be maintained during some time. Each io is associated with a state to detect level changes. Vmstate subsections are also added to the existsing device_reset subsection. Signed-off-by: Damien Hedde --- hw/core/qdev-vmstate.c | 15 ++++++++++ hw/core/qdev.c | 65 ++++++++++++++++++++++++++++++++++++++++++ include/hw/qdev-core.h | 57 ++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+) diff --git a/hw/core/qdev-vmstate.c b/hw/core/qdev-vmstate.c index 24f8465c61..72f84c6cee 100644 --- a/hw/core/qdev-vmstate.c +++ b/hw/core/qdev-vmstate.c @@ -24,10 +24,23 @@ static int device_vmstate_reset_post_load(void *opaque, int version_id) { DeviceState *dev = (DeviceState *) opaque; BusState *bus; + uint32_t io_count = 0; + QLIST_FOREACH(bus, &dev->child_bus, sibling) { bus->resetting = dev->resetting; bus->reset_is_cold = dev->reset_is_cold; } + + if (dev->cold_reset_input.state) { + io_count += 1; + } + if (dev->warm_reset_input.state) { + io_count += 1; + } + /* ensure resetting count is coherent with io states */ + if (dev->resetting < io_count) { + return -1; + } return 0; } @@ -40,6 +53,8 @@ const struct VMStateDescription device_vmstate_reset = { .fields = (VMStateField[]) { VMSTATE_UINT32(resetting, DeviceState), VMSTATE_BOOL(reset_is_cold, DeviceState), + VMSTATE_BOOL(cold_reset_input.state, DeviceState), + VMSTATE_BOOL(warm_reset_input.state, DeviceState), VMSTATE_END_OF_LIST() }, }; diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 88387d3743..11a4de55ea 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -450,6 +450,67 @@ void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler handler, int n) qdev_init_gpio_in_named(dev, handler, NULL, n); } +static DeviceResetInputState *device_get_reset_input_state(DeviceState *dev, + bool cold) +{ + return cold ? &dev->cold_reset_input : &dev->warm_reset_input; +} + +static void device_reset_handler(DeviceState *dev, bool cold, bool level) +{ + DeviceResetInputState *dris = device_get_reset_input_state(dev, cold); + + if (dris->type == DEVICE_RESET_ACTIVE_LOW) { + level = !level; + } + + if (dris->state == level) { + /* io state has not changed */ + return; + } + + dris->state = level; + + if (level) { + resettable_assert_reset(OBJECT(dev), cold); + } else { + resettable_deassert_reset(OBJECT(dev)); + } +} + +static void device_cold_reset_handler(void *opaque, int n, int level) +{ + device_reset_handler((DeviceState *) opaque, true, level); +} + +static void device_warm_reset_handler(void *opaque, int n, int level) +{ + device_reset_handler((DeviceState *) opaque, false, level); +} + +void qdev_init_reset_gpio_in_named(DeviceState *dev, const char *name, + bool cold, DeviceResetActiveType type) +{ + DeviceResetInputState *dris = device_get_reset_input_state(dev, cold); + qemu_irq_handler handler; + + switch (type) { + case DEVICE_RESET_ACTIVE_LOW: + case DEVICE_RESET_ACTIVE_HIGH: + break; + default: + assert(false); + break; + } + + assert(!dris->exists); + dris->exists = true; + dris->type = type; + + handler = cold ? device_cold_reset_handler : device_warm_reset_handler; + qdev_init_gpio_in_named(dev, handler, name, 1); +} + void qdev_init_gpio_out_named(DeviceState *dev, qemu_irq *pins, const char *name, int n) { @@ -1007,6 +1068,10 @@ static void device_initfn(Object *obj) dev->instance_id_alias = -1; dev->realized = false; dev->resetting = 0; + dev->cold_reset_input.exists = false; + dev->cold_reset_input.state = false; + dev->warm_reset_input.exists = false; + dev->warm_reset_input.state = false; object_property_add_bool(obj, "realized", device_get_realized, device_set_realized, NULL); diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 926d4bbcb1..f724ddc8f4 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -136,6 +136,23 @@ struct NamedGPIOList { QLIST_ENTRY(NamedGPIOList) node; }; +typedef enum DeviceResetActiveType { + DEVICE_RESET_ACTIVE_LOW, + DEVICE_RESET_ACTIVE_HIGH, +} DeviceResetActiveType; + +/** + * DeviceResetInputState: + * @exists: tell if io exists + * @type: tell whether the io active low or high + * @state: true if reset is currently active + */ +typedef struct DeviceResetInputState { + bool exists; + DeviceResetActiveType type; + bool state; +} DeviceResetInputState; + /** * DeviceState: * @realized: Indicates whether the device has been fully constructed. @@ -143,6 +160,8 @@ struct NamedGPIOList { * used to count how many times reset has been initiated on the device. * @reset_is_cold: If the device is under reset, indicates whether it is cold * or warm. + * @cold_reset_input: state data for cold reset io + * @warm_reset_input: state data for warm reset io * * This structure should not be accessed directly. We declare it here * so that it can be embedded in individual device state structures. @@ -167,6 +186,8 @@ struct DeviceState { uint32_t resetting; bool reset_is_cold; bool reset_hold_needed; + DeviceResetInputState cold_reset_input; + DeviceResetInputState warm_reset_input; }; struct DeviceListener { @@ -372,6 +393,42 @@ static inline void qdev_init_gpio_in_named(DeviceState *dev, void qdev_pass_gpios(DeviceState *dev, DeviceState *container, const char *name); +/** + * qdev_init_reset_gpio_in_named: + * Create a gpio controlling the warm or cold reset of the device. + * + * @cold: specify whether it triggers cold or warm reset + * @type: what kind of reset io it is + * + * Note: the io is considered created in its inactive state. No reset + * is started by this function. + */ +void qdev_init_reset_gpio_in_named(DeviceState *dev, const char *name, + bool cold, DeviceResetActiveType type); + +/** + * qdev_init_warm_reset_gpio: + * Create the input to control the device warm reset. + */ +static inline void qdev_init_warm_reset_gpio(DeviceState *dev, + const char *name, + DeviceResetActiveType type) +{ + qdev_init_reset_gpio_in_named(dev, name, false, type); +} + +/** + * qdev_init_cold_reset_gpio: + * Create the input to control the device cold reset. + * It can also be used as a power gate control. + */ +static inline void qdev_init_cold_reset_gpio(DeviceState *dev, + const char *name, + DeviceResetActiveType type) +{ + qdev_init_reset_gpio_in_named(dev, name, true, type); +} + BusState *qdev_get_parent_bus(DeviceState *dev); /*** BUS API. ***/ From patchwork Mon Jul 29 14:56:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063941 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DEC4414DB for ; Mon, 29 Jul 2019 15:03:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CE533284F1 for ; Mon, 29 Jul 2019 15:03:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C2302285F9; Mon, 29 Jul 2019 15:03:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3172C284F1 for ; Mon, 29 Jul 2019 15:03:08 +0000 (UTC) Received: from localhost ([::1]:52980 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7B5-0002ug-JN for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:03:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38171) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77X-0004Ky-AX for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77S-0004pI-E5 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:25 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48150) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs779-0004Vq-SX; Mon, 29 Jul 2019 10:59:04 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id A5B2096F64; Mon, 29 Jul 2019 14:59:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zjkywh8rTkeW2vYa32FI1FfT0i/dE7XKbukqBz4qSmg=; b=3kMMFj44WWkbmqDk9NYg4jeoFrC7lZ0swuZVpb48eXFSM8oQEBe1if94My+cmjLuHMHixc I5v81RR1hB/rDBc2c37XdQ32Uky/GePiYRSEZLRO2IfOKh90cpf29HIG+v1xumFIvUcjWY 8ox/03wBwoRpMkDE0s2RY+N2mGEPh6E= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:30 +0200 Message-Id: <20190729145654.14644-10-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zjkywh8rTkeW2vYa32FI1FfT0i/dE7XKbukqBz4qSmg=; b=55WNsGzCgyIe6MFJcmyAcXWHXG5y+h6LLrLAwQUBbv/6Jt/sx+8I4G1UMbI57EE4EoR4Jw 5IuyySlAcqXzYZuBy97f2obHA4J/LZsWWEVCg2p/M/Qk2Kg8HqtoyZerSjtn0C0U5DT+3P h71IjpF2WB7tBRl+TwPc4NVWuE15qEA= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412342; a=rsa-sha256; cv=none; b=Dvl/ff6nMFcqRQ9xsXaENPa2DsPrwZHTm20wZ9LvU9J8eeXSE841rWNYK080pxBNCAbUee gdjoP+BuSkCtnYEiZwNm9+OZLy9PkiXwLyCDZohcsiuL/zcBmDglrWeVcd0rzXy3jVaEme dQxRWXpFpvZZzX2r6RwA7WJTJgAzS5M= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 09/33] add doc about Resettable interface X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Damien Hedde --- docs/devel/reset.txt | 165 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 docs/devel/reset.txt diff --git a/docs/devel/reset.txt b/docs/devel/reset.txt new file mode 100644 index 0000000000..c7a1eb068f --- /dev/null +++ b/docs/devel/reset.txt @@ -0,0 +1,165 @@ + +===== +Reset +===== + +The reset of qemu objects is handled using the Resettable interface declared +in *include/hw/resettable.h*. +As of now DeviceClass and BusClass implement this interface. + + +Triggering reset +---------------- + +The function *resettable_reset* is used to trigger a reset on a given +object. +void resettable_reset(Object *obj, bool cold) + +The parameter *obj* must implement the Resettable interface. +The parameter *cold* is a boolean specifying whether to do a cold or warm +reset + +For Devices and Buses there is also the corresponding helpers: +void device_reset(Device *dev, bool cold) +void bus_reset(Device *dev, bool cold) + +If one wants to put an object into a reset state. There is the +*resettable_assert_reset* function. +void resettable_assert_reset(Object *obj, bool cold) + +One must eventually call the function *resettable_deassert_reset* to end the +reset state: +void resettable_deassert_reset(Object *obj, bool cold) + +Calling *resettable_assert_reset* then *resettable_deassert_reset* is the +same as calling *resettable_reset*. + +It is possible to interleave multiple calls to + - resettable_reset, + - resettable_assert_reset, and + - resettable_deassert_reset. +The only constraint is that *resettable_deassert_reset* must be called once +per *resettable_assert_reset* call so that the object leaves the reset state. + +Therefore there may be several reset sources/controllers of a given object. +The interface handle everything and the controllers do not need to know +anything about each others. The object will leave reset state only when all +controllers released their reset. + +All theses functions must called while holding the iothread lock. + + +Implementing reset for a Resettable object : Multi-phase reset +-------------------------------------------------------------- + +The Resettable uses a multi-phase mechanism to handle some ordering constraints +when resetting multiple object at the same time. For a given object the reset +procedure is split into three different phases executed in order: + 1 INIT: This phase should set/reset the state of the Resettable it has when is + in reset state. Side-effects to others object is forbidden (such as + setting IO level). + 2 HOLD: This phase corresponds to the external side-effects due to staying into + the reset state. + 3 EXIT: This phase corresponds to leaving the reset state. It have both + local and external effects. + +*resettable_assert_reset* does the INIT and HOLD phases. While +*resettable_deassert_reset* does the EXIT phase. + +When resetting multiple object at the same time. The interface executes the +given phase of the objects before going to the next phase. This guarantee that +all INIT phases are done before any HOLD phase and so on. + +There is three methods in the interface so must be implemented in an object. +The methods corresponds to the three phases: +``` +typedef void (*ResettableInitPhase)(Object *obj); +typedef void (*ResettableHoldPhase)(Object *obj); +typedef void (*ResettableExitPhase)(Object *obj); +typedef struct ResettableClass { + InterfaceClass parent_class; + + struct ResettablePhases { + ResettableInitPhase init; + ResettableHoldPhase hold; + ResettableExitPhase exit; + } phases; + [...] +} ResettableClass; +``` + +Theses methods should be updated when specializing an object. For this the +helper function *resettable_class_set_parent_reset_phases* can be used to +backup parent methods while changing the specialized ones. +void resettable_class_set_parent_reset_phases(ResettableClass *rc, + ResettableInitPhase init, + ResettableHoldPhase hold, + ResettableExitPhase exit, + +For Devices and Buses, some helper exists to know if a device/bus is under +reset and what type of reset it is: +``` +bool device_is_resetting(DeviceState *dev); +bool device_is_reset_cold(DeviceState *dev); +bool bus_is_resetting(BusState *bus); +bool bus_is_reset_cold(BusState *bus); +``` + + +Implementing the base Resettable behavior : Re-entrance, Hierarchy and Cold/Warm +-------------------------------------------------------------------------------- + +There is five others methods in the interface to handle the base mechanics +of the Resettable interface. The methods should be implemented in object +base class. DeviceClass and BusClass implement them. + +``` +typedef bool (*ResettableSetCold)(Object *obj, bool cold); +typedef bool (*ResettableSetHoldNeeded)(Object *obj, bool hold_needed); +typedef uint32_t (*ResettableGetCount)(Object *obj); +typedef uint32_t (*ResettableIncrementCount)(Object *obj); +typedef uint32_t (*ResettableDecrementCount)(Object *obj); +typedef void (*ResettableForeachChild)(Object *obj, void (*visitor)(Object *)); +typedef struct ResettableClass { + InterfaceClass parent_class; + + [...] + + ResettableSetCold set_cold; + ResettableSetHoldNeeded set_hold_needed; + ResettableGetCount get_count; + ResettableIncrementCount increment_count; + ResettableDecrementCount decrement_count; + ResettableForeachChild foreach_child; +} ResettableClass; +``` + +*set_cold* is used when entering reset, before calling the init phase, to +indicate the reset type. + +*set_hold_needed* is used to set/clear and retrieve an "hold_needed" flag. +This flag allows to omly execute the hold pahse when required. + +As stated above, several reset procedures can be concurrent on an object. +This is handled with the three methods *get_count*, *increment_count* and +*decrement_count*. An object is in reset state if the count is non-zero. + +The reset hierarchy is handled using the *foreach_child* method. This method +executes a given function on every reset "child". + +In DeviceClass and BusClass the base behavior is to mimic the legacy qdev +reset. Reset hierarchy follows the qdev/qbus tree. + +Reset control through GPIO +-------------------------- + +For devices, two reset inputs can be added: one for the cold, one the warm +reset. This is done using the following function. +``` +typedef enum DeviceResetActiveType { + DEVICE_RESET_ACTIVE_LOW, + DEVICE_RESET_ACTIVE_HIGH, +} DeviceResetActiveType; +void qdev_init_reset_gpio_in_named(DeviceState *dev, const char *name, + bool cold, DeviceResetActiveType type); +``` From patchwork Mon Jul 29 14:56:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063945 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D9BD513AC for ; Mon, 29 Jul 2019 15:05:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C976F284F1 for ; Mon, 29 Jul 2019 15:05:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BCF8B285F9; Mon, 29 Jul 2019 15:05:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 62E92284F1 for ; Mon, 29 Jul 2019 15:05:00 +0000 (UTC) Received: from localhost ([::1]:53014 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Ct-0005k3-HD for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:04:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38068) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77Q-0004HV-RE for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77L-0004jT-G9 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:17 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48188) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs77B-0004Xl-B7; Mon, 29 Jul 2019 10:59:05 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 10A3F96F67; Mon, 29 Jul 2019 14:59:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hIw9VOnNOvv6i5KDhQD4nJN5V8svLGb1uTTCxjQz4rM=; b=1jjxZVGU+7Ozaw6ODz/G0/Dtymc7847a7SEXlr0up1TjHwz5PMFGuNsY8v+4OdwF6eWrkA kf1oAzau6OYvz50HU9jrVw3r/b62NoW9nZkcPw4CGQS8O7jgjg1G3ZhFEVuLRwyYgX50Xg xKviJU+60D6gFZztOztafbJSCOTxBnI= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:31 +0200 Message-Id: <20190729145654.14644-11-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hIw9VOnNOvv6i5KDhQD4nJN5V8svLGb1uTTCxjQz4rM=; b=wAZ0WXR22PWrixZWMTlufg5mgCs2YRIK9liXy/YpNo2FyRBHOlhI1M2/oxXOnbuFtbHPEB WBTw0KJinWKLcjNeVinkf3RN5GIbPqEgzGKLI+VyieJ0/498tAq40v7TrCAm+RImD/f2Bb Y9C3cVeDb3QBgflR59T/oxcqRfcGlBI= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412344; a=rsa-sha256; cv=none; b=58H2EsS5g1GX2LiVQ1ar3zUzQameEIsMpV+poV7zJ7ItawiKv7RzPiwP0+uBl9bZrHyRXI JOTPnXCaLtNETogtjm53EgW0Ng1Hx27BenMRzwJ1w5/9iV/T07N+L4ngSTIxVrhEvhbLEI aeRfvsbvVTBO61ojGKhKAYOjESDQsUU= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 10/33] vl.c: remove qbus_reset_all registration X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qbus_reset_all by resettable_reset_cold_fn for the sysbus reset registration. This does not impact the behavior. Signed-off-by: Damien Hedde Reviewed-by: Peter Maydell --- vl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vl.c b/vl.c index b426b32134..5a465c8236 100644 --- a/vl.c +++ b/vl.c @@ -4421,7 +4421,11 @@ int main(int argc, char **argv, char **envp) /* TODO: once all bus devices are qdevified, this should be done * when bus is created by qdev.c */ - qemu_register_reset(qbus_reset_all_fn, sysbus_get_default()); + /* + * TODO: when we have a main reset container/domain object, use + * it to fully benefit from multi-phase reset + */ + qemu_register_reset(resettable_reset_cold_fn, sysbus_get_default()); qemu_run_machine_init_done_notifiers(); if (rom_check_and_register_reset() != 0) { From patchwork Mon Jul 29 14:56:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063963 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 97D1D13AC for ; Mon, 29 Jul 2019 15:09:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 854A5284C3 for ; Mon, 29 Jul 2019 15:09:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 77104285EB; Mon, 29 Jul 2019 15:09:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 25F13284C3 for ; Mon, 29 Jul 2019 15:09:33 +0000 (UTC) Received: from localhost ([::1]:53148 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7HI-0006L1-HN for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:09:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38172) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs77X-0004Kz-AX for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs77T-0004pi-5i for qemu-devel@nongnu.org; Mon, 29 Jul 2019 10:59:25 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48220) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs77D-0004ZC-Cw; Mon, 29 Jul 2019 10:59:07 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 7548296F68; Mon, 29 Jul 2019 14:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6BYZlTqXFaSTVHfhpxHCxDjaR213vN7XZdOsvKiNxUA=; b=3ZGy/9vpKbQy9Dtyg6v2JIvek4NUmM2DVlo1R+3rmd1+QxCBOWVBWq1cRg7PAzCUumBppq fNEUCmJRJwq3XVG656PNv3C5lkPlmkOweGWywia+P3/kV6e4Ln9M94QUgtHQynBIzPRBtN dbL6HH6ioZIxnKpMNdmMhMhEZ620SXk= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:32 +0200 Message-Id: <20190729145654.14644-12-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6BYZlTqXFaSTVHfhpxHCxDjaR213vN7XZdOsvKiNxUA=; b=qkrEF5itTmFRRH9M7llbzZQK88uW0GC0w4HegGZRw8tNe2edblo2uLbQhsoF57AMh5w14w +kRiBqzpy3yWOxWXRVpUrYg2qo0Tqg9RzAnu+ci2ASQ8Ns263yedN3ABQQImAgMeVnP7IC nJA57zCYrjgmSud54Lnccxq1l7wb/Zg= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412345; a=rsa-sha256; cv=none; b=Q30jrPAQb7NLdpZtgzV7vTFOOqRYGwSsbCsFzkI/Vx+6m5FfT9KxHio6wCPyDMLzUMgbz5 +cWhfOvZjsGIKNX2AktGR6IvKkj/YMR51/8UaQ0B7L8+bL2SOzfTCqDvYgnNtTZSmE+/89 IvJDPrAnlk9+EF2LgeuQEDSiPuofODM= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 11/33] hw/s390x/ipl.c: remove qbus_reset_all registration X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qbus_reset_all by resettable_reset_cold_fn for the ipl registration in the main reset handlers. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/s390x/ipl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index 60bd081d3e..402770a2c9 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -234,7 +234,11 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp) */ ipl->compat_start_addr = ipl->start_addr; ipl->compat_bios_start_addr = ipl->bios_start_addr; - qemu_register_reset(qdev_reset_all_fn, dev); + /* + * TODO: when we add some kind of main reset container / domain + * switch to it to really benefit from multi-phase. + */ + qemu_register_reset(resettable_reset_cold_fn, dev); error: error_propagate(errp, err); } From patchwork Mon Jul 29 14:56:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063953 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C141A14DB for ; Mon, 29 Jul 2019 15:07:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B0CCA284C3 for ; Mon, 29 Jul 2019 15:07:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A07C7285A4; Mon, 29 Jul 2019 15:07:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4B47E284C3 for ; Mon, 29 Jul 2019 15:07:17 +0000 (UTC) Received: from localhost ([::1]:53104 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7F6-0001R7-Kg for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:07:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38565) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs789-0005SJ-H2 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs788-0005Z4-9M for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:05 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48246) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs783-0004aI-CZ; Mon, 29 Jul 2019 10:59:59 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id D93E296F6C; Mon, 29 Jul 2019 14:59:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412347; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VqngxFE1LYSL6RUCSoBOVHLbVMhtjOBp3mEG5XVXqYg=; b=OMU9xVNA+PSt5AInVlh+uxBeSiV/LnfInWgsPOYIsG9gMFVlwgb1+E00wPHjnake8//zdV 5Uw9ifoADskLKIQXDX3Rg25gkgG74YhH2FNpz1grYvUg2p6MnNxzLtSSWZryTSF1Mug3Ch Ci+7l15vtct895w06Sjp1iROPL/zGEI= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:33 +0200 Message-Id: <20190729145654.14644-13-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412347; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VqngxFE1LYSL6RUCSoBOVHLbVMhtjOBp3mEG5XVXqYg=; b=NEIDUEr6yN9tx8ViwSUPXM8koP1bG2FV/Ba141YGsZGZEUTDHYCKbyQrGiSbBA2fNvkLfv fHeSG7L2aHv01s3Uqzm4xJjy4II5mGtlB23KxO/0F3STlqKu6XgvMJrA8+RW5edVS/PsE+ udsNqjC4JjhakWri4pHs/ZRzBxlTP4Y= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412347; a=rsa-sha256; cv=none; b=ocHrlw543pgepaf6hD/gMKi4nwIUyiDarvDb4Ek+T0anvrLO+hYDsAaKyqUL9xdZDSpsmX HC/W10NKPpkNKUA1ukNndUMGbrp5GKxtc4cotBWEbzOYX5eMmqFBh7588aQXEsunVANr4k IsE+Qs+qeFS00JaxLv8JeA10L/eIuI4= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 12/33] hw/pci/: remove qdev/qbus_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev/bus_reset_all by device/bus_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/pci/pci.c | 6 +++--- hw/pci/pci_bridge.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 8076a80ab3..f2b9d37754 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -325,14 +325,14 @@ static void pci_do_device_reset(PCIDevice *dev) */ void pci_device_reset(PCIDevice *dev) { - qdev_reset_all(&dev->qdev); + device_reset_warm(&dev->qdev); pci_do_device_reset(dev); } /* * Trigger pci bus reset under a given bus. - * Called via qbus_reset_all on RST# assert, after the devices - * have been reset qdev_reset_all-ed already. + * Called via bus_reset on RST# assert, after the devices + * have been reset device_reset-ed already. */ static void pcibus_reset(BusState *qbus) { diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c index 715b9a4fe6..695242149f 100644 --- a/hw/pci/pci_bridge.c +++ b/hw/pci/pci_bridge.c @@ -274,7 +274,7 @@ void pci_bridge_write_config(PCIDevice *d, newctl = pci_get_word(d->config + PCI_BRIDGE_CONTROL); if (~oldctl & newctl & PCI_BRIDGE_CTL_BUS_RESET) { /* Trigger hot reset on 0->1 transition. */ - qbus_reset_all(BUS(&s->sec_bus)); + bus_reset_warm(BUS(&s->sec_bus)); } } From patchwork Mon Jul 29 14:56:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063965 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 75C0B13AC for ; Mon, 29 Jul 2019 15:09:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 657B4285EB for ; Mon, 29 Jul 2019 15:09:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 59B4B2862A; Mon, 29 Jul 2019 15:09:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D5066285FB for ; Mon, 29 Jul 2019 15:09:45 +0000 (UTC) Received: from localhost ([::1]:53150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7HV-0006qF-6k for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:09:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38981) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78N-00065q-7S for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78L-0005oZ-Qc for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:19 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48280) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs787-0004cW-5I; Mon, 29 Jul 2019 11:00:04 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 4794296F7B; Mon, 29 Jul 2019 14:59:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1ZpK81fx6XE6l/hSz0P+ZXfNWB1SeCveyVlCABZgJXM=; b=awrYB+plsm/s1OUAh71fZsCFNeOTQlRJ94w7TtDaxiE+zjOSuPzd+4CeCL+TAw8u0nX+JN PkihqvzUFORvIH/fSU5AmppUFLp8TCN1EeFzIiV7mBr0GRgHoZ/1meTGs3V33tQQm0U0uK VKxAni9gyWJMGKWQaq695l8GIdLJZh4= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:34 +0200 Message-Id: <20190729145654.14644-14-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1ZpK81fx6XE6l/hSz0P+ZXfNWB1SeCveyVlCABZgJXM=; b=p10ovgey+ZrA/kyoa3sGWCEakO/1MBPiGKeeFmd5ZqgygKwbJlgtlFB2Yv1YYI1XBGvrVi x8alyAqLqp3DQ+32oPXq548hY4aTRveBkgq3/IcEAUTJyuLQoLTDGmSug1HYjKwmcoJx4U 6TUzHYpcEreZzrj6ArIVwwdIl1ggxoA= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412348; a=rsa-sha256; cv=none; b=BF1AhShircbwJ/VrxaEilrM087++KSwVoDpybRm7LvYf0nDiszqk9sCE7WY5RXk+9d51LC 8iKf9unfHNYhktw0JI6Puf7JwZBL5dBtRsY6RXZf5xNb/DCXixNDpMTYArlPIVcBo7JGID t4f7gzMXG1cSoGS0OZj0InBM4FBYGcY= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 13/33] hw/scsi/: remove qdev/qbus_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev/bus_reset_all by device/bus_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/scsi/lsi53c895a.c | 4 ++-- hw/scsi/megasas.c | 2 +- hw/scsi/mptsas.c | 8 ++++---- hw/scsi/spapr_vscsi.c | 2 +- hw/scsi/virtio-scsi.c | 6 +++--- hw/scsi/vmw_pvscsi.c | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index 10468c1ec1..19197d1fc8 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -1861,7 +1861,7 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) } if (val & LSI_SCNTL1_RST) { if (!(s->sstat0 & LSI_SSTAT0_RST)) { - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); s->sstat0 |= LSI_SSTAT0_RST; lsi_script_scsi_interrupt(s, LSI_SIST0_RST, 0); } @@ -1919,7 +1919,7 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) lsi_execute_script(s); } if (val & LSI_ISTAT0_SRST) { - qdev_reset_all(DEVICE(s)); + device_reset_warm(DEVICE(s)); } break; case 0x16: /* MBOX0 */ diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index 0c4399930a..68c5538865 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -1438,7 +1438,7 @@ static int megasas_cluster_reset_ld(MegasasState *s, MegasasCmd *cmd) MegasasCmd *tmp_cmd = &s->frames[i]; if (tmp_cmd->req && tmp_cmd->req->dev->id == target_id) { SCSIDevice *d = tmp_cmd->req->dev; - qdev_reset_all(&d->qdev); + device_reset_warm(&d->qdev); } } return MFI_STAT_OK; diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 3f94d5ab55..9ae1ebc0f3 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -519,7 +519,7 @@ reply_maybe_async: reply.ResponseCode = MPI_SCSITASKMGMT_RSP_TM_INVALID_LUN; goto out; } - qdev_reset_all(&sdev->qdev); + device_reset_warm(&sdev->qdev); break; case MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET: @@ -535,13 +535,13 @@ reply_maybe_async: QTAILQ_FOREACH(kid, &s->bus.qbus.children, sibling) { sdev = SCSI_DEVICE(kid->child); if (sdev->channel == 0 && sdev->id == req->TargetID) { - qdev_reset_all(kid->child); + device_reset_warm(kid->child); } } break; case MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS: - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); break; default: @@ -804,7 +804,7 @@ static void mptsas_soft_reset(MPTSASState *s) s->intr_mask = MPI_HIM_DIM | MPI_HIM_RIM; mptsas_update_interrupt(s); - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); s->intr_status = 0; s->intr_mask = save_mask; diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c index 0e491c911d..39c6067f48 100644 --- a/hw/scsi/spapr_vscsi.c +++ b/hw/scsi/spapr_vscsi.c @@ -855,7 +855,7 @@ static int vscsi_process_tsk_mgmt(VSCSIState *s, vscsi_req *req) break; } - qdev_reset_all(&d->qdev); + device_reset_warm(&d->qdev); break; case SRP_TSK_ABORT_TASK_SET: diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 8b9e5e2b49..fcf9e3dbde 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -317,7 +317,7 @@ static int virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq *req) goto incorrect_lun; } s->resetting++; - qdev_reset_all(&d->qdev); + device_reset_warm(&d->qdev); s->resetting--; break; @@ -367,7 +367,7 @@ static int virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq *req) QTAILQ_FOREACH(kid, &s->bus.qbus.children, sibling) { d = SCSI_DEVICE(kid->child); if (d->channel == 0 && d->id == target) { - qdev_reset_all(&d->qdev); + device_reset_warm(&d->qdev); } } s->resetting--; @@ -697,7 +697,7 @@ static void virtio_scsi_reset(VirtIODevice *vdev) assert(!s->dataplane_started); s->resetting++; - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); s->resetting--; vs->sense_size = VIRTIO_SCSI_SENSE_DEFAULT_SIZE; diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index cda3fc96a0..40fcf808a7 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -441,7 +441,7 @@ static void pvscsi_reset_adapter(PVSCSIState *s) { s->resetting++; - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); s->resetting--; pvscsi_process_completion_queue(s); assert(QTAILQ_EMPTY(&s->pending_queue)); @@ -849,7 +849,7 @@ pvscsi_on_cmd_reset_bus(PVSCSIState *s) trace_pvscsi_on_cmd_arrived("PVSCSI_CMD_RESET_BUS"); s->resetting++; - qbus_reset_all(BUS(&s->bus)); + bus_reset_warm(BUS(&s->bus)); s->resetting--; return PVSCSI_COMMAND_PROCESSING_SUCCEEDED; } From patchwork Mon Jul 29 14:56:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063977 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8B41914DB for ; Mon, 29 Jul 2019 15:12:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 79748212D8 for ; Mon, 29 Jul 2019 15:12:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6D0C7286C4; Mon, 29 Jul 2019 15:12:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 21BD5286C8 for ; Mon, 29 Jul 2019 15:12:41 +0000 (UTC) Received: from localhost ([::1]:53278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7KK-00053d-C4 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:12:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38930) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78L-0005zn-6j for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78G-0005id-Dk for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:17 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48318) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs787-0004dW-9Z; Mon, 29 Jul 2019 11:00:04 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id A8AAC96F80; Mon, 29 Jul 2019 14:59:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+91vMB90IqiygS2VUtck4RL8697UwbFWu26mMIWkdw0=; b=CRnX8qe026GQEAaDXQBd2ggC48dwqFGGn5pagINvKRYGrSk3G9PBDE8VcKJaB/lux7Hs7v 6Iga05QGQcc8Z/hAJDO+zV0mCJ9QnQBmc4P/rLmD+9720xbvud9JdM2VZeKAQ+R5UxRwoC BivaGb/EqIA2tBQeSpfhGkxH6TH/yGg= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:35 +0200 Message-Id: <20190729145654.14644-15-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+91vMB90IqiygS2VUtck4RL8697UwbFWu26mMIWkdw0=; b=450F/6l/g9GCHVtpHB9VwKd3hBbVOAZCjTNGjRy+FoFRBnnEccL+t5VXGVl7tjtrKjaeSJ NFxPrVLFORB44iDe0ZR8S07hwaLhCD1/0L9z1C/motJnz0wznwTHQocvZC/igSK6jlm1pu RosBOXLkvRR6NrGH3PFvkiHqTVS/wv8= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412349; a=rsa-sha256; cv=none; b=PlL37MMEOFGkjRiL0PUpFmiJOGLN388Z4jQJpcnclmCieBUs4iT1Nz9nK54l0yK/osQj52 A2lBaO1VyKlIWfCh3bWi36JkgcfWpMt2d8tmzmpQio0WYRmjocL+1LnT+mugL/TJzsjqM/ IE+8/n2VvXWTO5ApI3wOQXY4u/eVaxc= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 14/33] hw/s390x/s390-virtio-ccw.c: remove qdev_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev_reset_all by device_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/s390x/s390-virtio-ccw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 5b6a9a4e55..1d6b966817 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -104,7 +104,7 @@ static void subsystem_reset(void) for (i = 0; i < ARRAY_SIZE(reset_dev_types); i++) { dev = DEVICE(object_resolve_path_type("", reset_dev_types[i], NULL)); if (dev) { - qdev_reset_all(dev); + device_reset_warm(dev); } } } From patchwork Mon Jul 29 14:56:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063957 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9065F13AC for ; Mon, 29 Jul 2019 15:07:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 80E29285A4 for ; Mon, 29 Jul 2019 15:07:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7439F2862A; Mon, 29 Jul 2019 15:07:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1D7EF285A4 for ; Mon, 29 Jul 2019 15:07:48 +0000 (UTC) Received: from localhost ([::1]:53110 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Fb-0002uE-D0 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:07:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38733) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78D-0005d1-KJ for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78C-0005eE-Kn for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:09 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48360) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs787-0004fu-7l; Mon, 29 Jul 2019 11:00:03 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 1315096F87; Mon, 29 Jul 2019 14:59:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JUkSJk/z4p8uU9Wl2P+lKIjShSp3qQDd9mv3tstBlD0=; b=3ZBxpLx2cz1sC5ElXTSOCFd4r9wavd9+5+AgkakHzj8AuKg40TshxcTjGaRAzEEllsWnWA S+sdlYbktkyn3431nVyQyBPPCMYMVvcbs8FynFY3j/zSX16jFjnXh2AXwOrISiehOkjW2x jaDvXeRn0ZR8ypWu5/SjtR7Jq6n2oEU= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:36 +0200 Message-Id: <20190729145654.14644-16-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JUkSJk/z4p8uU9Wl2P+lKIjShSp3qQDd9mv3tstBlD0=; b=ZrZyGQ5n0g7gvGYleIogdes7RUtsC4bjEAVlhfb/kiSYT2NgILzu0pRP1D/CI4TtefjnWo L84uVE7SG123638D6gtirI3GDJtgNk+gMcXhdDZ0sLca3P8TpV4HJhx2bAqibwFPLjcLs/ mp6d8Fy4zSekFkdyU+I5lT+p0Jc5GAk= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412351; a=rsa-sha256; cv=none; b=TPJPzohUoDfJfCMHaq0O1Ho3g6uFOfRF62qmtdrakW0V5qPbmoaP2L8majT3BqC8PCYiFB BVDYcEe7azcuXdebWA4WzAND/DsjAi1f5e0RqHZkcPBiNu75diDMYYmEm46d4e8nOL+3iB LonCOki/kb1SWtbKwZ9BWpA7cXpojZU= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 15/33] hw/ide/piix.c: remove qdev_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev_reset_all by device_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/ide/piix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ide/piix.c b/hw/ide/piix.c index b97e555072..64cb4a52ef 100644 --- a/hw/ide/piix.c +++ b/hw/ide/piix.c @@ -196,7 +196,7 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev, bool aux) blk_unref(blk); } } - qdev_reset_all(DEVICE(dev)); + device_reset_warm(DEVICE(dev)); return 0; } From patchwork Mon Jul 29 14:56:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063971 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2710A13AC for ; Mon, 29 Jul 2019 15:11:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16F5827F10 for ; Mon, 29 Jul 2019 15:11:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 09F0228701; Mon, 29 Jul 2019 15:11:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A825A286C8 for ; Mon, 29 Jul 2019 15:11:32 +0000 (UTC) Received: from localhost ([::1]:53246 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7JE-0002TI-2t for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:11:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38754) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78E-0005ds-A6 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78D-0005fV-EI for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:10 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48394) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs788-0004hE-Pi; Mon, 29 Jul 2019 11:00:04 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 742BC96F88; Mon, 29 Jul 2019 14:59:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k5fLNLBjdV6+7E7c/JKPYT8WFMywRHAMb8K8XSSC0BM=; b=mwdMFUnet1WK6hOZ0GrybZr8G+dn0AH10yKxU5oDeUEphyHFiFGd8eRbQH8FQZe7DQu4H7 t3vxPWw7KQTdU71Fb1hL0S3bisVf6/eNoi3iN2BLepy+cSEN48jB/B4BAiJqh2q1SKq17Y hhIPIXONAGZwFDXTK5bvSjeXt3yZHlQ= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:37 +0200 Message-Id: <20190729145654.14644-17-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k5fLNLBjdV6+7E7c/JKPYT8WFMywRHAMb8K8XSSC0BM=; b=J+UF4NDQCEMvalc7fEX9SKb/5TkfNcyuduk3yQbJ7TvDMubHIzfXCG0tOXdmwD+d6VyiXR o11Kz/Gr6KzjWhxO0b8ZqQ8RALCQh67FXxoVSpqcUMW5+nRTowvKjxlYRlJSfsmqYx2Y2+ I+HBy1/pdXgu3krMN3+H5Kn4BGtDgXg= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412352; a=rsa-sha256; cv=none; b=5Su81pOKhapiikKTtXG6b97g+L6xc017m9bBhDMrB7veGYBnmqNn0vL6N6vomym4+RWlTX jhhFE5hlT/2a+YDrattV0QjRUBJqMfOmm0ZxMikIosHqpWpD9PowW1GaHynG7GZqgmVCxz gsmgmfAxpwUhX1PFkOwTnmp80/YU+JY= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 16/33] hw/input/adb.c: remove qdev_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev_reset_all by device_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/input/adb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/input/adb.c b/hw/input/adb.c index 1446f32521..6b35682aba 100644 --- a/hw/input/adb.c +++ b/hw/input/adb.c @@ -32,7 +32,7 @@ static void adb_device_reset(ADBDevice *d) { - qdev_reset_all(DEVICE(d)); + device_reset_warm(DEVICE(d)); } int adb_request(ADBBusState *s, uint8_t *obuf, const uint8_t *buf, int len) From patchwork Mon Jul 29 14:56:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063969 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2BEA714DB for ; Mon, 29 Jul 2019 15:11:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B1F027F9F for ; Mon, 29 Jul 2019 15:11:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 066122871E; Mon, 29 Jul 2019 15:11:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AC21D28716 for ; Mon, 29 Jul 2019 15:11:10 +0000 (UTC) Received: from localhost ([::1]:53232 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Ir-0001QZ-UC for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:11:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38895) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78J-0005uj-SZ for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78I-0005kb-O2 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:15 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:48426) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78E-0004iO-8s; Mon, 29 Jul 2019 11:00:10 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id D84C596F8F; Mon, 29 Jul 2019 14:59:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IojvZJcR6TrNzXejNkbhfStORPj7CffyX3e9LR2zhu0=; b=pQTJedEFzSEhToYRJonGcyEJsut6kxPeewLDxgIoti8xf3Y2g4muzo7+iEpR2lAT0EKUtB EXOfgBkzpZZDvNvFJCH8dNKhSWSGF84dKsKt8ijRGvPZ5jtivjMp4PMlknGrfBwpS17J+m P3QUDPseQOJAbSQY0wtKraRR6dgTp+s= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:38 +0200 Message-Id: <20190729145654.14644-18-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IojvZJcR6TrNzXejNkbhfStORPj7CffyX3e9LR2zhu0=; b=Y6q5K32mpl0fpwHYvDKhkQBHZ9iVben+BD4D7MsEj4wevi2BxXlCxS60WBzQzQI2syPsE5 dqvuB0Ar/YXxgGyRwrkuWFdv1Vhe/0I4Vmp1iSY0qyE6A5gj+ZHrTR+wjs7xmDjONZ1uQI 9RdKGsBsUwHwOrv8spxlAYhkh4EZmno= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412354; a=rsa-sha256; cv=none; b=Shawad7IqON5VSONAGP4x8Uk9zJwyF+1tn0CWqTmXEbt/2uuIttSlevf0Iy3nXAdkAcNLw S6FbOWr8JcI5vL2krQ9MiQalI25Q0NGXmEXseIiYQ1+yvePrMAGJQzMGciga7FEvYianf5 dOx5CfJ3qFH9HTNIlj5AbJbbxjOY7WE= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 17/33] hw/usb/dev-uas.c: remove qdev_reset_all call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace deprecated qdev_reset_all by device_reset_warm. This does not impact the behavior. Signed-off-by: Damien Hedde --- hw/usb/dev-uas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index abd8070d0c..b3a6e470e4 100644 --- a/hw/usb/dev-uas.c +++ b/hw/usb/dev-uas.c @@ -777,7 +777,7 @@ static void usb_uas_task(UASDevice *uas, uas_iu *iu) case UAS_TMF_LOGICAL_UNIT_RESET: trace_usb_uas_tmf_logical_unit_reset(uas->dev.addr, tag, lun); - qdev_reset_all(&dev->qdev); + device_reset_warm(&dev->qdev); usb_uas_queue_response(uas, tag, UAS_RC_TMF_COMPLETE); break; From patchwork Mon Jul 29 14:56:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063951 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2492914DB for ; Mon, 29 Jul 2019 15:05:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 05A532858F for ; Mon, 29 Jul 2019 15:05:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E9C55285FF; Mon, 29 Jul 2019 15:05:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 954112858F for ; Mon, 29 Jul 2019 15:05:57 +0000 (UTC) Received: from localhost ([::1]:53052 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Do-0007ln-U2 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:05:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38609) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78A-0005Vy-QG for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs789-0005aQ-MZ for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:06 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49050) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs784-0005RB-Fp; Mon, 29 Jul 2019 11:00:00 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 4D14496F8E; Mon, 29 Jul 2019 14:59:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1IcmTa6ZKW/z4Jx3NrXrLMXyWQItUUT4uM9Fbt082nk=; b=kGJsb5r2TQPh4AeCIdCB5Qzktp39BcQt2H0Gt7oOG4ke7McCWnh86aPOKqQsOAE9SBfRCV dTmeVoHGkSrmJXcOlCs6BYdv9rW/+ALcn45k6JSk/3zG8bBCFh1MMYsQeDCE0AdCqwPVha GdH0oQl+in0CAQHFqYPPbuaWUemw6Hc= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:39 +0200 Message-Id: <20190729145654.14644-19-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1IcmTa6ZKW/z4Jx3NrXrLMXyWQItUUT4uM9Fbt082nk=; b=Z24LGGv2BLyH75b14UHx+FfmhKjVUmmitwbZ9Zu8nb9PlgFrSfOMaEb7RKnvA5dZhXDOlI uaeppMxaN/NV+V5Jmb0xF5O17tDIBjMGC9UeABlarXR2Cw5QfbRLD2ysOWKKqLn9/OvR7v OUDd+lmNAld1cuochbH/YrsGYgIArqQ= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412355; a=rsa-sha256; cv=none; b=6jwmvBOPhgmR+MptX9yyEXkwvsonDOItuhfibT+jtnmm0MgPHyPjuAvdZFgJq83IAN/xyb f69FL/4u9AYd0vPIxMZqgvuQCtpDpgwsQAUU6dxeHcYxu913ficLneapQqL3IRdkcVj2al UAAdJBK92dHKTmqS9PiLTXdRebxH91k= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 18/33] hw/audio/intel-hda.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree but this has no impact since since HDACodecDevice has no child bus. Signed-off-by: Damien Hedde --- hw/audio/intel-hda.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c index f133684b10..523bb3e2ca 100644 --- a/hw/audio/intel-hda.c +++ b/hw/audio/intel-hda.c @@ -1086,7 +1086,7 @@ static void intel_hda_reset(DeviceState *dev) QTAILQ_FOREACH(kid, &d->codecs.qbus.children, sibling) { DeviceState *qdev = kid->child; cdev = HDA_CODEC_DEVICE(qdev); - device_legacy_reset(DEVICE(cdev)); + device_reset_warm(DEVICE(cdev)); d->state_sts |= (1 << cdev->cad); } intel_hda_update_irq(d); From patchwork Mon Jul 29 14:56:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063967 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EA4CB13AC for ; Mon, 29 Jul 2019 15:10:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D97A92868D for ; Mon, 29 Jul 2019 15:10:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CD44A286C8; Mon, 29 Jul 2019 15:10:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 54235286A7 for ; Mon, 29 Jul 2019 15:10:35 +0000 (UTC) Received: from localhost ([::1]:53220 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7II-0000Kx-F2 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:10:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38746) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78E-0005dL-0p for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78D-0005eZ-1W for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:09 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49048) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs784-0005RC-FW; Mon, 29 Jul 2019 11:00:00 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id AFFD696F92; Mon, 29 Jul 2019 14:59:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FGORLyVsyoPn4CUafp3DkuY7BxPSGvVkEp7R/gpfDbs=; b=jnmf5LB0kusot6raukquz8lPwMXc9zV2FeRAcofzOXMmmKd1jRsLpvbl1ViZVyEcCbQUCS SO27AlK946/F7M4vxFkmM/9qNwA8kgdMEjhsr2hrh4Gj0XCf1iJJ0t/rIDAMlf7awXDESB lNlyPzqbxMQjKEK9UqGe50uy8ekVJH4= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:40 +0200 Message-Id: <20190729145654.14644-20-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FGORLyVsyoPn4CUafp3DkuY7BxPSGvVkEp7R/gpfDbs=; b=q5cGZv9a88zJSmVzplwAzjUVhIJHdAvvuXY7RDQKi0spMb8RJnXTHDtqA15PQXW191hF8t mpLVE8crYPSdbnZXwyYCn9FyqUOHfivKfjJ3BG4jpQFEoL0sSiAR+oH2zPStSKkGur++Zq Ab4Za56t/pZ5MWIGuYlhKpZoVXuPg0o= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412357; a=rsa-sha256; cv=none; b=FtKC4bRy9kmEhgoLjr1bG0ETU+E8zZFLMB357yCR7zcqjaZF5mw0C2ENCSoCpsvRCPI4pw EaUYswGtSd0myspPdUDHgt5w/XbfrH86+Js6XbT9FVboqD0zqKib83cLZxH8UuLyzg6fHS z0kl7zQfD9efR2Zoo0mB59Ko/MpZW0Y= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 19/33] hw/sd/pl181.c & omap_mmc.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree but this has no impact since SDState has no child bus. Signed-off-by: Damien Hedde --- hw/sd/omap_mmc.c | 2 +- hw/sd/pl181.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c index 24a1edc149..3021e54b8d 100644 --- a/hw/sd/omap_mmc.c +++ b/hw/sd/omap_mmc.c @@ -317,7 +317,7 @@ void omap_mmc_reset(struct omap_mmc_s *host) * into any bus, and we must reset it manually. When omap_mmc is * QOMified this must move into the QOM reset function. */ - device_legacy_reset(DEVICE(host->card)); + device_reset_warm(DEVICE(host->card)); } static uint64_t omap_mmc_read(void *opaque, hwaddr offset, diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 15b4aaa67f..a59ef7eb2a 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -480,7 +480,7 @@ static void pl181_reset(DeviceState *d) /* Since we're still using the legacy SD API the card is not plugged * into any bus, and we must reset it manually. */ - device_legacy_reset(DEVICE(s->card)); + device_reset_warm(DEVICE(s->card)); } static void pl181_init(Object *obj) From patchwork Mon Jul 29 14:56:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11064003 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 735C01398 for ; Mon, 29 Jul 2019 15:19:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6366D262FF for ; Mon, 29 Jul 2019 15:19:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5751A28524; Mon, 29 Jul 2019 15:19:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0DBED262FF for ; Mon, 29 Jul 2019 15:19:12 +0000 (UTC) Received: from localhost ([::1]:53544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Qd-0000Kr-9M for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:19:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39680) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79B-0007M2-D6 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs799-0006a8-Jm for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:08 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49052) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78t-0005S4-Oh; Mon, 29 Jul 2019 11:00:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 1DE7C96F97; Mon, 29 Jul 2019 14:59:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mT1SeeKucmc8IuW94V9VP/AALM7YEnzQm+i28TezWA0=; b=Rk25e/UyeEwl3Nl5ykINYeodVRnVemJuBNes2CqyrP47faAsghjCXyblixQVDnwV6hMYMf foh0XxF04aTrFe75RvcDuzeCMuTg7qX1T23wrdOj9fvkpB5N85XWgRH6bGMqd+msdY3VqA g5dAEOE6pI7Yfz2Fijvm8kPB1Y4tq6I= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:41 +0200 Message-Id: <20190729145654.14644-21-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mT1SeeKucmc8IuW94V9VP/AALM7YEnzQm+i28TezWA0=; b=PGGiRBGftSOHGSCE+X+S8zduGQFjtpLkNhWzHwjFMgSXLu4bOnHcBAPbbs/GPlBNXXu/zW zhfRv6FXfuyB6f485IN2GlRxpKo0CAqmtSFZlkbOXflPEIjci/ATcROqIt32YLTOZYfkd9 Hz+WxKHq1hJGom2yTfcIj9mBnJWPL+c= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412358; a=rsa-sha256; cv=none; b=QcBwg0BVzq57f5hlgeh94iiJ2W/FtCuuNmtg8MaCzwXNpzljhjwwnyj57NSrPcDplD7dzi R1gczB2c1TRBGMZGE61zNiU47Vsa5BxS73OIOoMVjHP9vYZOxceQ2aNqmCNvG4sq2eXCyn yuhB5yq9qCO9YVxcwKZhtLRK1EV4pIk= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 20/33] hw/hyperv/hyperv.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm in *hyperv_synic_reset*. The new function propagates also the reset to the sub-buses tree but this has no impact since SynICState has no child bus. Signed-off-by: Damien Hedde --- hw/hyperv/hyperv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/hyperv/hyperv.c b/hw/hyperv/hyperv.c index cd9db3cb5c..ae377934ee 100644 --- a/hw/hyperv/hyperv.c +++ b/hw/hyperv/hyperv.c @@ -140,7 +140,7 @@ void hyperv_synic_reset(CPUState *cs) SynICState *synic = get_synic(cs); if (synic) { - device_legacy_reset(DEVICE(synic)); + device_reset_warm(DEVICE(synic)); } } From patchwork Mon Jul 29 14:56:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063961 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1BFAD174A for ; Mon, 29 Jul 2019 15:08:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C41D284C3 for ; Mon, 29 Jul 2019 15:08:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0020A2857D; Mon, 29 Jul 2019 15:08:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 18726285A4 for ; Mon, 29 Jul 2019 15:08:40 +0000 (UTC) Received: from localhost ([::1]:53146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7GR-0005BJ-Ek for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:08:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38805) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs78G-0005lB-MI for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs78B-0005cx-PV for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:00:12 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49054) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs785-0005S3-Il; Mon, 29 Jul 2019 11:00:01 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 7CC6A96F98; Mon, 29 Jul 2019 14:59:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MabvMRXMXvglNHuMuwjz05sk4mSZqL5kEppHHuUwOes=; b=RbEw7tAydVp6/nppEq6nCc6ol8nkZTCHV19A4QJmuGWul57V30AGOyO/52vuGMABdYRQMC 7iK91DSQatfT+pjryv5+tM2e///hsymOb2yA8aPDXXTezQlHRp0HnGfX0MBoLzIdwo1me2 zaIXpoY5jwGJDYHE5wzY+VyM0SvCo9s= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:42 +0200 Message-Id: <20190729145654.14644-22-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MabvMRXMXvglNHuMuwjz05sk4mSZqL5kEppHHuUwOes=; b=xsE9+Q0d0dyv+xkvkMqr06WnTZSFzaN1kShGpwHQkCFv50Dep2t1+OIUlchuzljU+I5+al lEbBf8W1F24hHA9JAHUW6uB3vJN5DNdh9c5RZlw1FzbD+IcieKABEnBYmvaLzsJL4KEs8w n5WA7c127R07w54EvtPKX2G7O5uW5lU= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412359; a=rsa-sha256; cv=none; b=UQkGwFSDvFflTpIyjFSfQZEwGWqTWkZbJZ7+kXz5OS77XN3Tb7/JaXJq4M5+DWbOmBUSsq 8WCbS234CmUQDcHuTZIRHapaU+Sq+l+nk0tbTaL8d0CfQBgLTGk+BS/JtheJefMqZyp6hf cDhiqXvBAFJPKoLgWLKWe7cfPUcgbgU= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 21/33] hw/intc/spapr_xive.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree but this has no impact since SpaprXive has no child bus. Signed-off-by: Damien Hedde --- hw/intc/spapr_xive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/intc/spapr_xive.c b/hw/intc/spapr_xive.c index 22e11ad10c..fbd7ddb06e 100644 --- a/hw/intc/spapr_xive.c +++ b/hw/intc/spapr_xive.c @@ -1511,7 +1511,7 @@ static target_ulong h_int_reset(PowerPCCPU *cpu, return H_PARAMETER; } - device_legacy_reset(DEVICE(xive)); + device_reset_warm(DEVICE(xive)); if (kvm_irqchip_in_kernel()) { Error *local_err = NULL; From patchwork Mon Jul 29 14:56:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063981 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F152B13AC for ; Mon, 29 Jul 2019 15:13:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E024B20069 for ; Mon, 29 Jul 2019 15:13:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D2F38283AD; Mon, 29 Jul 2019 15:13:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 851D827F10 for ; Mon, 29 Jul 2019 15:13:44 +0000 (UTC) Received: from localhost ([::1]:53310 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7LL-0007f0-SE for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:13:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39608) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs799-0007HB-I4 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs798-0006Xf-6e for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:07 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49058) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78t-0005SA-Og; Mon, 29 Jul 2019 11:00:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id DE95796F9A; Mon, 29 Jul 2019 14:59:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1HoLedqaHFCEiYSkRjPotMwTDNCFXhCgcBZD95/OiZo=; b=Xr62mWIQEwdGnuxWiLpJncXpPhAUuO0NZ2Xy7a9HUXGM+ou+etjs183oE/kFel+6lC2eJt +6eVwkuNZMKmA9fpVZzVWfdlMCrEijGCXjtHHl5S2hB+AK7B5BNwjG3JFlRGLesmgrwd5C Rc9zQf4q/za38IEWQ9YpXo32qcEnpPc= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:43 +0200 Message-Id: <20190729145654.14644-23-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1HoLedqaHFCEiYSkRjPotMwTDNCFXhCgcBZD95/OiZo=; b=NIJOwCHtZZJFciYeaOJEeKg11+5sAvFRHcwD3arGxW/6kCZhAzSzg6/eXVlV9cP36jaPne 5UA2G16WR1elSjaq+oQUdj2PNtg1mVlfWPDleEBmnTqFuAvDISl1d8rAL0yBnRgD5PSYOk nYS4AfUoXWgt7ZCQK8N+tctdbIaMpuM= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412361; a=rsa-sha256; cv=none; b=0+PfB123rGeUdfG4F42XHYDGHcRWj91+XVIXEqCQU/4HEwSoJjFd8fh60K1eey2y3EucVe eGNBYqyqIq2GJMQqrgjm0XsmNyuTI3y9pjdKH3OGwI3HbPw2jRMe4iA4+Mui/4kfjNtldu 62483G6LUW74JNbm4+Huscco5iQ9ERQ= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 22/33] hw/ppc/pnv_psi.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree but this has no impact since XiveSource has no child bus. Signed-off-by: Damien Hedde --- hw/ppc/pnv_psi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c index 78eafa353a..c17e83abe5 100644 --- a/hw/ppc/pnv_psi.c +++ b/hw/ppc/pnv_psi.c @@ -703,7 +703,7 @@ static void pnv_psi_p9_mmio_write(void *opaque, hwaddr addr, break; case PSIHB9_INTERRUPT_CONTROL: if (val & PSIHB9_IRQ_RESET) { - device_legacy_reset(DEVICE(&psi9->source)); + device_reset_warm(DEVICE(&psi9->source)); } psi->regs[reg] = val; break; From patchwork Mon Jul 29 14:56:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063987 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9D2E21398 for ; Mon, 29 Jul 2019 15:15:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C41420069 for ; Mon, 29 Jul 2019 15:15:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 800C5262F2; Mon, 29 Jul 2019 15:15:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0B87920069 for ; Mon, 29 Jul 2019 15:15:45 +0000 (UTC) Received: from localhost ([::1]:53360 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7NI-0002MP-Ug for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:15:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39562) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs798-0007E7-82 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs796-0006UG-UU for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:06 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49056) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78t-0005S7-OX; Mon, 29 Jul 2019 11:00:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 54BC196F99; Mon, 29 Jul 2019 14:59:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=s5DLg4avO5acJBUhcvaCP8164eOHhmP4zzXa7H0ijdE=; b=4rccWn6Dt51xQZ6woZve8SwzUXLlCiwBE7NAGxXG5uNQ6bMYLLPs/0LnSF4oUfZRK/LI+7 InK/umsVed0UPiAsAhxsKsCGyyfjHxQDjbyJ9v/3NEsvxoFleUnnSTqmSAwiXIJ2hw9hct lLo/CxqUv4eYhKTw63gmWpxLPqcA7fM= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:44 +0200 Message-Id: <20190729145654.14644-24-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=s5DLg4avO5acJBUhcvaCP8164eOHhmP4zzXa7H0ijdE=; b=n9ozJTx3x/bIv/kjMn4DspfRanTj/IRLDv3ILb+MuZmgqYVzX9hYfMjcyHsQJiVb2VtJal CqzbxQOuEo0rat1P7EVAfWwuTAyM61D1sfsnXaxAPVbgFSYlFOqY/MBCIqBrmyeADurWAQ 9bU/TpFzS0lxrUOO/J0PCK4wPIOFKDs= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412362; a=rsa-sha256; cv=none; b=y7rkyq0nrFSiHkgjKEvx1tEge3WVcInBXdN2DoVWtXZDyA1Q12ZXBQHvHzorfrXxi14o/w Ea3Xq9GNPRqOFOyAPcvSNxElUp45vXRbHvxVjfe2xyetWDKtILDyGzBC9o5PiRRERv+pMw IgFSH5wLeyx/IQZu6yHLJiXTPVEMaFQ= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 23/33] hw/scsi/vmw_pvscsi.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree but this has no impact since SCSIDevices have no child bus (neither generic device nor disks). Signed-off-by: Damien Hedde --- hw/scsi/vmw_pvscsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c index 40fcf808a7..5be2227cc8 100644 --- a/hw/scsi/vmw_pvscsi.c +++ b/hw/scsi/vmw_pvscsi.c @@ -835,7 +835,7 @@ pvscsi_on_cmd_reset_device(PVSCSIState *s) if (sdev != NULL) { s->resetting++; - device_legacy_reset(&sdev->qdev); + device_reset_warm(&sdev->qdev); s->resetting--; return PVSCSI_COMMAND_PROCESSING_SUCCEEDED; } From patchwork Mon Jul 29 14:56:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063979 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7C51A14DB for ; Mon, 29 Jul 2019 15:13:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C7A826E76 for ; Mon, 29 Jul 2019 15:13:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5CDA6262FF; Mon, 29 Jul 2019 15:13:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id ED28426E76 for ; Mon, 29 Jul 2019 15:13:29 +0000 (UTC) Received: from localhost ([::1]:53306 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7L7-0007M0-BS for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:13:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39571) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs798-0007Ed-GR for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs796-0006UN-Vc for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:06 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49060) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78u-0005Tt-Jg; Mon, 29 Jul 2019 11:00:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id B548C96FB5; Mon, 29 Jul 2019 14:59:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HGGw8htxAIJ95suMEQmcO6Wzd1brwHWaCoaPQS+mZIU=; b=YP06WmN5WHD07/jTlSfgGa2nWOwGCoxKQ29sH5FnKn+wLQkrsEyxQ3RpGrtflRvGIeOY/0 uSlOOmTqBYb28Ewuotd6J6KyjCqoRuqyeP7sSODZ0AUyEOPdCV7naf6ox+GEVLZjuyhyoZ ie6Pljdmt/2KuzCubwwI0I9RXOCoET0= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:45 +0200 Message-Id: <20190729145654.14644-25-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HGGw8htxAIJ95suMEQmcO6Wzd1brwHWaCoaPQS+mZIU=; b=reTUCletLFNrKr/Uq1GGJmGv1saXk6XjI/CGClamgkcyVUgVlsMD/giMejo5bKjbPqSTn0 KMRPHcBIjfgyLegvWOqGSzEbL83Ulc3T2ThmjkjX+cPaGyqeQSLI0qbk2LUYlJQGivn4fB 8Va9ei3TKcadVCUpx+0kmYe3EB1wpXg= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412364; a=rsa-sha256; cv=none; b=6aaXPMsz8Ptck4nIylbhGiRj23zMRZw+Lc39uayZpSEP5/UCClf1lm7Qghd8RvpiBrGptv fFtSreD331DPl0f6Blhgy1q9qNfOrO1txu7SNLET0qTPueOsAmOyW32dosXoQrwtxFsbaf G0mnCJIsGbqFIgLXZ6l4CF2M6Sf2TaI= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 24/33] hw/ppc/spapr: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace legacy's reset call by device_reset_warm. The new function propagates also the reset to the sub-buses tree. In spapr_vio.c, the function resets a SpaprtceTable which does not seem to have child bus so it should have no impact. In Spapr_pci.c the functions resets QOM children devices of a SpaprPhbState. If there is a device with a child bus, then this bus will now be reset (and all its qdev tree). Signed-off-by: Damien Hedde --- hw/ppc/spapr_pci.c | 2 +- hw/ppc/spapr_vio.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 3c6cf79a5e..946b2b4483 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -2029,7 +2029,7 @@ static int spapr_phb_children_reset(Object *child, void *opaque) DeviceState *dev = (DeviceState *) object_dynamic_cast(child, TYPE_DEVICE); if (dev) { - device_legacy_reset(dev); + device_reset_warm(dev); } return 0; diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index 5a0b5cc35c..41c17cfdd6 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -306,7 +306,7 @@ int spapr_vio_send_crq(SpaprVioDevice *dev, uint8_t *crq) static void spapr_vio_quiesce_one(SpaprVioDevice *dev) { if (dev->tcet) { - device_legacy_reset(DEVICE(dev->tcet)); + device_reset_warm(DEVICE(dev->tcet)); } free_crq(dev); } From patchwork Mon Jul 29 14:56:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063975 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3673A13AC for ; Mon, 29 Jul 2019 15:12:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 26FD927F91 for ; Mon, 29 Jul 2019 15:12:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1B099286DA; Mon, 29 Jul 2019 15:12:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B9AAE285EB for ; Mon, 29 Jul 2019 15:12:18 +0000 (UTC) Received: from localhost ([::1]:53258 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Jx-0003xy-Vi for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:12:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39563) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs798-0007EC-AL for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs796-0006U0-SS for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:06 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49062) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78u-0005Tu-K7; Mon, 29 Jul 2019 11:00:53 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 225ED96FE3; Mon, 29 Jul 2019 14:59:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p5l1fmWgkohnYfqwDvu/gGAV5E6NY7tIcptUny/2QoI=; b=xTKf3JbPAx1i2E2+hOM1o5Jx5CwFUMK0mIg6d0hDPA2uq9XqrC1hjAi2W7Zc3ZuBdJ/MJJ 2bqPdU5HT0Jaed7xGUl83+xBk+wceANeKoF43MYFjxaoyp1iAqnzcn9FwNbQ6qP9cGUSNf /AtZkXhDEzCmPNZBkas1dlzL7wadFcY= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:46 +0200 Message-Id: <20190729145654.14644-26-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p5l1fmWgkohnYfqwDvu/gGAV5E6NY7tIcptUny/2QoI=; b=zY+GYV/DDvu/oLJcsLrR2NFWMFitWRZDW+El9glEQer/WSvDFVosPPMXAL8jMBvWIrtfVk 03kXZFsjdImszCQLyJfEdO0R/wOvY/9/GYN2B5eZyj6pgPf4/w/gHBv/yIrsGM3JIQj5oG ++1GOidE8bU5UXt0D9+CUzKGgBQk8BI= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412365; a=rsa-sha256; cv=none; b=AkHvT+/uLNLqiZknofRYqcrNzI/hWV7H8OW87AWt1E7g0UbyoydnSKYMrAqOpX1xWyJGDF XoVq69K1PEFFfHH8C5HlpKJZKf2ACiT+dj+kginTeGqR3gsbVtxky8cUbflOCv47ANvef1 8GUKdWPUaRDbFV8EvpXsyZwCnT8iPPg= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 25/33] hw/i386/pc.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace additional APIC legacy reset by device_reset_cold. The new function propagates also the reset to the sub-buses tree. APIC does not have any so it should have no impact on behavior. Signed-off-by: Damien Hedde --- hw/i386/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index c0f20fe8aa..a175d76819 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -2823,7 +2823,7 @@ static void pc_machine_reset(MachineState *machine) cpu = X86_CPU(cs); if (cpu->apic_state) { - device_legacy_reset(cpu->apic_state); + device_reset_cold(cpu->apic_state); } } } From patchwork Mon Jul 29 14:56:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063993 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2CCF913B1 for ; Mon, 29 Jul 2019 15:17:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1BE0E28524 for ; Mon, 29 Jul 2019 15:17:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0E64B2857D; Mon, 29 Jul 2019 15:17:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B4BF128524 for ; Mon, 29 Jul 2019 15:17:16 +0000 (UTC) Received: from localhost ([::1]:53464 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Ol-0005XT-EA for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:17:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39613) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs799-0007HI-HC for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs798-0006Xk-6s for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:07 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49064) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZH-3s; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 8950E9702D; Mon, 29 Jul 2019 14:59:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ktiT63C3qh5TZrbCabCo/OpHpi9eQGkR5JjcE/VjSh4=; b=HlNjKQcMc27bLTChaJLKPVXWY7hoAiNPxnOIZviZO4qyPAWpfu6QADe5fwW7nRDPLG9zHs fd3jdqwGFaNxH7c0fqo7IQoHzEutW00kV5+XAWFwAtjUmC6q0FaDY+f/pd6cVxylcw1M8Z Ql8PO6UxQz3r4KvLhco3pDo3DkUDfgc= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:47 +0200 Message-Id: <20190729145654.14644-27-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ktiT63C3qh5TZrbCabCo/OpHpi9eQGkR5JjcE/VjSh4=; b=Gt/EhTEZrrDQHDkdpyzEL8/qepLHd1f4VuZho0yLvzVK9x6gINTuwF3YyDcjdy0k+KUjLD K7w/U9uOWqqBksxcOZ29HWZ9NX7msRR33WRswJcuhBNFMTZGvNiHNwJYe7ey/h+64DkM4D Gz0uSUmqFwkOlBG8+24ZDb64kzlyi0w= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412366; a=rsa-sha256; cv=none; b=QmGwgVvFK2E2KgNlIQn/U7wMhdi7n22WLjek7SR52yo/XXP0Vqvp3qmgyCCVhYtGln3GYW FbQEyhI6+LOvRwNka/nCuvtiHIVv/c+hGD6kPozXKI4vjbh2qj/IB8m3to5xuLfGwkgpIh 1gjyC6ea+c2tIaTDlIM8mwsWotmvJ+o= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 26/33] hw/s390x/s390-pci-inst.c: remove device_legacy_reset call X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace S390PCIBusDevice legacy reset by device_reset_warm. The new function propagates also the reset to the sub-buses tree. I'm not sure whether S390PCIBusDevice has bus children or not. Signed-off-by: Damien Hedde --- hw/s390x/s390-pci-inst.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index 93cda37c27..d7bca68245 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -242,7 +242,7 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_t ra) stw_p(&ressetpci->hdr.rsp, CLP_RC_SETPCIFN_FHOP); goto out; } - device_legacy_reset(DEVICE(pbdev)); + device_reset_warm(DEVICE(pbdev)); pbdev->fh &= ~FH_MASK_ENABLE; pbdev->state = ZPCI_FS_DISABLED; stl_p(&ressetpci->fh, pbdev->fh); From patchwork Mon Jul 29 14:56:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063995 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4F0C613B1 for ; Mon, 29 Jul 2019 15:17:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3D88E262FF for ; Mon, 29 Jul 2019 15:17:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3065F28524; Mon, 29 Jul 2019 15:17:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CA23028517 for ; Mon, 29 Jul 2019 15:17:25 +0000 (UTC) Received: from localhost ([::1]:53466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Ov-0005gK-5o for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:17:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39814) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79E-0007Tp-3X for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79C-0006fX-Qq for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:11 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49066) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZG-3G; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id F08FB9702E; Mon, 29 Jul 2019 14:59:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X6a9yB+7WOaxY+qK9/kQ2MT/JV31qgwvuX92IoveZZc=; b=QNTC4OP8wnUjZckFl9TQNiZg5F3JNO7F8q8fshP/6FJ+iTiJhoNo+PmsM56el60+nb3I1m 6y2AhnL+2h/k8zBm+RaOMdUvAG1Kfvk8bF7f4bs9nXcxFiHLM0ZqtP/Ukb1fx7Ez873rVf k5MKqB2Lp87XTeONIHv2nlDoFbWZoQ8= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:48 +0200 Message-Id: <20190729145654.14644-28-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X6a9yB+7WOaxY+qK9/kQ2MT/JV31qgwvuX92IoveZZc=; b=rIEvNpTiEw4NGTdnopR6kQIGPHKDDvWCetQdwsSBfCIah/t/nXLzJPuHNeKUSxr/2MxxKF GJr+tNsngNVE1RSKmh6grXvm1KqalseSQF/Gj/dyDT1j+Sdsold/qk7x8ce3/HQ+EU1KXq y1Vmhz10YgKhA1vsSdQYFy9bNfZp6/M= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412368; a=rsa-sha256; cv=none; b=UgzksAO3615upQ0mtA93qhU5YRgjXWxjUbiMqR5Iw0olCUPAy+KjKPs+ccTd6gS7xFeJNi 3WlEOFsaiNTT+0xF/gj4yQZOWeRFf55INdfTvV9VeylHy8CwFWhUsXDZDcpiChHpaPeLih CNG3KgoXmTqxZBioSlbmWyyZN3TLDfk= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 27/33] hw/ide/microdrive.c: remove device_legacy_reset calls X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace MicroDriveState legacy reset by device_reset_warm. The new function propagates also the reset to the sub-buses tree. The MicroDriveState has a child bus so it is now reset automatically as well as all the qdev sub tree. It seems to me that IDE_BUS and IDE_DEVICEs reset methods are not implemented so resetting the qdev/qbus ide tree will have no effect. Keep the explicit call to ide_bus_reset (in md_reset function) since it is not called when using the standard reset method of the IDE_BUS object. Signed-off-by: Damien Hedde --- hw/ide/microdrive.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ide/microdrive.c b/hw/ide/microdrive.c index fc346f5ad5..afe2342da8 100644 --- a/hw/ide/microdrive.c +++ b/hw/ide/microdrive.c @@ -173,7 +173,7 @@ static void md_attr_write(PCMCIACardState *card, uint32_t at, uint8_t value) case 0x00: /* Configuration Option Register */ s->opt = value & 0xcf; if (value & OPT_SRESET) { - device_legacy_reset(DEVICE(s)); + device_reset_warm(DEVICE(s)); } md_interrupt_update(s); break; @@ -316,7 +316,7 @@ static void md_common_write(PCMCIACardState *card, uint32_t at, uint16_t value) case 0xe: /* Device Control */ s->ctrl = value; if (value & CTRL_SRST) { - device_legacy_reset(DEVICE(s)); + device_reset_warm(DEVICE(s)); } md_interrupt_update(s); break; @@ -541,7 +541,7 @@ static int dscm1xxxx_attach(PCMCIACardState *card) md->attr_base = pcc->cis[0x74] | (pcc->cis[0x76] << 8); md->io_base = 0x0; - device_legacy_reset(DEVICE(md)); + device_reset_warm(DEVICE(md)); md_interrupt_update(md); return 0; @@ -551,7 +551,7 @@ static int dscm1xxxx_detach(PCMCIACardState *card) { MicroDriveState *md = MICRODRIVE(card); - device_legacy_reset(DEVICE(md)); + device_reset_warm(DEVICE(md)); return 0; } From patchwork Mon Jul 29 14:56:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063991 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 708D714DB for ; Mon, 29 Jul 2019 15:15:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D4E126246 for ; Mon, 29 Jul 2019 15:15:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A36820069; Mon, 29 Jul 2019 15:15:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CEE3220069 for ; Mon, 29 Jul 2019 15:15:55 +0000 (UTC) Received: from localhost ([::1]:53372 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7NT-0002oh-6p for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:15:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39828) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79E-0007UV-8n for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79C-0006fc-RP for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:12 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49070) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZJ-64; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 675B297030; Mon, 29 Jul 2019 14:59:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CuK0R1yEmIw3ue/ncT8aMu/7cio9gA+aFOL7xtl6KDw=; b=cskjG/WiG5xmo0EZ5ctOjAYEAz9/P3DtnpxcAWXvok8IT6V/FhQIzeru61jdcrryhbixyQ atYYSt3cwsd7JJ406AbQeeGVdpM5g1illutRlpexX3b0Wz0qrOyMGlNzFbl6TeRZpy6zhh qguG3ljV7Im2cpbDwK9UsFepxoaw2lM= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:49 +0200 Message-Id: <20190729145654.14644-29-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CuK0R1yEmIw3ue/ncT8aMu/7cio9gA+aFOL7xtl6KDw=; b=gcfzcXQO8gkMIyW+3VrA6ezPHFaNLe/3LfG7unKflwxesGP9AkN5FoEGj0Twiyzmb/7PuX 4lAGRJ1jW35yYMHVWyI3Qff+Etf03JPiandTm8dH4dyyN3mdcPL3kyNMg70JdxxUzkptSS 1WGpVTiCt1yXArDQVLnny2G7FO9XSCE= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412369; a=rsa-sha256; cv=none; b=fbsfWrUIatX6lxuQoJRaFMOj+zbSPCsSlLQ4lGkibvRYbaBy/DTSjsVWEWaAErj7nap7x9 PTE3R62B40fokyR9jFphjQNC0qt0ZdkVgyzJFh33Nw91lrNf3pkD58qwk/E7ksOWPDJTyC gg8/KOSxDPWYc4SzGjViy69UxnPeUgw= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 28/33] qdev: Remove unused deprecated reset functions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Remove the functions now they are unused: + device_legacy_reset + qdev_reset_all[_fn] + qbus_reset_all[_fn] Signed-off-by: Damien Hedde Reviewed-by: Peter Maydell --- hw/core/qdev.c | 30 ------------------------------ include/hw/qdev-core.h | 29 ----------------------------- 2 files changed, 59 deletions(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 11a4de55ea..896b55f7ba 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -322,27 +322,6 @@ static void device_foreach_reset_child(Object *obj, void (*func)(Object *)) } } -void qdev_reset_all(DeviceState *dev) -{ - device_reset(dev, false); -} - -void qdev_reset_all_fn(void *opaque) -{ - qdev_reset_all(DEVICE(opaque)); -} - -void qbus_reset_all(BusState *bus) -{ - bus_reset(bus, false); -} - -void qbus_reset_all_fn(void *opaque) -{ - BusState *bus = opaque; - qbus_reset_all(bus); -} - /* can be used as ->unplug() callback for the simple cases */ void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) @@ -1223,15 +1202,6 @@ void device_class_set_parent_unrealize(DeviceClass *dc, dc->unrealize = dev_unrealize; } -void device_legacy_reset(DeviceState *dev) -{ - DeviceClass *klass = DEVICE_GET_CLASS(dev); - - if (klass->reset) { - klass->reset(dev); - } -} - Object *qdev_get_machine(void) { static Object *dev; diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index f724ddc8f4..eb6370970e 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -518,25 +518,6 @@ bool bus_is_resetting(BusState *bus); */ bool bus_is_reset_cold(BusState *bus); -/** - * qbus/qdev_reset_all: - * @bus/dev: Bus/Device to be reset. - * - * Reset @bus/dev and perform a bus-level reset of all devices/buses connected - * to it, including recursive processing of all buses below @bus itself. A - * hard reset means that qbus_reset_all will reset all state of the device. - * For PCI devices, for example, this will include the base address registers - * or configuration space. - * - * Theses functions are deprecated, please use device/bus_reset or - * resettable_reset_* instead - * TODO: remove them when all occurence are removed - */ -void qdev_reset_all(DeviceState *dev); -void qdev_reset_all_fn(void *opaque); -void qbus_reset_all(BusState *bus); -void qbus_reset_all_fn(void *opaque); - /* This should go away once we get rid of the NULL bus hack */ BusState *sysbus_get_default(void); @@ -551,16 +532,6 @@ char *qdev_get_own_fw_dev_path_from_handler(BusState *bus, DeviceState *dev); */ void qdev_machine_init(void); -/** - * device_legacy_reset: - * - * Reset a single device (by calling the reset method). - * - * This function is deprecated, please use device_reset() instead. - * TODO: remove the function when all occurences are removed. - */ -void device_legacy_reset(DeviceState *dev); - /** * device_class_set_parent_reset: * TODO: remove the function when DeviceClass's reset method From patchwork Mon Jul 29 14:56:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11064005 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1EE031398 for ; Mon, 29 Jul 2019 15:19:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0E901262FF for ; Mon, 29 Jul 2019 15:19:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0291B28541; Mon, 29 Jul 2019 15:19:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UPPERCASE_50_75 autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CFB5827F10 for ; Mon, 29 Jul 2019 15:19:17 +0000 (UTC) Received: from localhost ([::1]:53546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7Qj-0000Y0-6l for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:19:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39934) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79H-0007cI-3g for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79E-0006hq-7W for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:15 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49072) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZM-5p; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id CA6A297035; Mon, 29 Jul 2019 14:59:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vJCb4+Ad50y7g3GjFwnAtqFd0I0v4ByyZNWC309dy9w=; b=Fq1RvVd142lsJvLxhmyJ/fsa4fIZu0sGR2Ao5epl6h80eEJ+qKoEwo7tA6tR94qRu/Wtm9 nwpihhYJ+TcVJ/dCE2ArNWoz5EIZJfBcXEHijUrtsmHtz9yAQTE6/dcLnVu5tRjPcwn0eB McFMxTL92gZTVeyhln9coM4t9z7OuLE= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:50 +0200 Message-Id: <20190729145654.14644-30-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vJCb4+Ad50y7g3GjFwnAtqFd0I0v4ByyZNWC309dy9w=; b=qJRMv94dJwyB0fgDmhgJX0sk5Qqt2IO1tsJaTUuA1TxcsH4ROIXe7YdWr2052a2+JsZVcq BGWEfCLPZXSqo5DvVteVUk2fQwkjd5WL/1zxABMASYx5eGQT+D2q/icRA84ciT+1TPBXzU qop2i3akOUD0eNmvgv3LaoN02TvB7Po= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412371; a=rsa-sha256; cv=none; b=IrnlpUC2JJ+YUBUdRQBMRg6gDf1ZxGAqPUbJrguYN9OSLtlmWt9NiD3Pu/XdI9+6feUEXg 0ci8dAGSQK8VrWDnVfdEwtFm+v7QexNIPCtP/LAFkBn0ftzY6Gnxt/+hMy0gx/+Nu8kw4H 86mTntwWNTlC5N7OOsrlFOrD5deoZ0E= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 29/33] hw/misc/zynq_slcr: use standard register definition X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, Alistair Francis , kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, =?utf-8?q?Philippe_Mathieu-Da?= =?utf-8?q?ud=C3=A9?= , thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Replace the zynq_slcr registers enum and macros using the hw/registerfields.h macros. Signed-off-by: Damien Hedde Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alistair Francis --- hw/misc/zynq_slcr.c | 472 ++++++++++++++++++++++---------------------- 1 file changed, 236 insertions(+), 236 deletions(-) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index 6b51ae5ff1..dd766a6779 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -21,6 +21,7 @@ #include "sysemu/sysemu.h" #include "qemu/log.h" #include "qemu/module.h" +#include "hw/registerfields.h" #ifndef ZYNQ_SLCR_ERR_DEBUG #define ZYNQ_SLCR_ERR_DEBUG 0 @@ -36,138 +37,135 @@ #define XILINX_LOCK_KEY 0x767b #define XILINX_UNLOCK_KEY 0xdf0d -#define R_PSS_RST_CTRL_SOFT_RST 0x1 - -enum { - SCL = 0x000 / 4, - LOCK, - UNLOCK, - LOCKSTA, - - ARM_PLL_CTRL = 0x100 / 4, - DDR_PLL_CTRL, - IO_PLL_CTRL, - PLL_STATUS, - ARM_PLL_CFG, - DDR_PLL_CFG, - IO_PLL_CFG, - - ARM_CLK_CTRL = 0x120 / 4, - DDR_CLK_CTRL, - DCI_CLK_CTRL, - APER_CLK_CTRL, - USB0_CLK_CTRL, - USB1_CLK_CTRL, - GEM0_RCLK_CTRL, - GEM1_RCLK_CTRL, - GEM0_CLK_CTRL, - GEM1_CLK_CTRL, - SMC_CLK_CTRL, - LQSPI_CLK_CTRL, - SDIO_CLK_CTRL, - UART_CLK_CTRL, - SPI_CLK_CTRL, - CAN_CLK_CTRL, - CAN_MIOCLK_CTRL, - DBG_CLK_CTRL, - PCAP_CLK_CTRL, - TOPSW_CLK_CTRL, +REG32(SCL, 0x000) +REG32(LOCK, 0x004) +REG32(UNLOCK, 0x008) +REG32(LOCKSTA, 0x00c) + +REG32(ARM_PLL_CTRL, 0x100) +REG32(DDR_PLL_CTRL, 0x104) +REG32(IO_PLL_CTRL, 0x108) +REG32(PLL_STATUS, 0x10c) +REG32(ARM_PLL_CFG, 0x110) +REG32(DDR_PLL_CFG, 0x114) +REG32(IO_PLL_CFG, 0x118) + +REG32(ARM_CLK_CTRL, 0x120) +REG32(DDR_CLK_CTRL, 0x124) +REG32(DCI_CLK_CTRL, 0x128) +REG32(APER_CLK_CTRL, 0x12c) +REG32(USB0_CLK_CTRL, 0x130) +REG32(USB1_CLK_CTRL, 0x134) +REG32(GEM0_RCLK_CTRL, 0x138) +REG32(GEM1_RCLK_CTRL, 0x13c) +REG32(GEM0_CLK_CTRL, 0x140) +REG32(GEM1_CLK_CTRL, 0x144) +REG32(SMC_CLK_CTRL, 0x148) +REG32(LQSPI_CLK_CTRL, 0x14c) +REG32(SDIO_CLK_CTRL, 0x150) +REG32(UART_CLK_CTRL, 0x154) +REG32(SPI_CLK_CTRL, 0x158) +REG32(CAN_CLK_CTRL, 0x15c) +REG32(CAN_MIOCLK_CTRL, 0x160) +REG32(DBG_CLK_CTRL, 0x164) +REG32(PCAP_CLK_CTRL, 0x168) +REG32(TOPSW_CLK_CTRL, 0x16c) #define FPGA_CTRL_REGS(n, start) \ - FPGA ## n ## _CLK_CTRL = (start) / 4, \ - FPGA ## n ## _THR_CTRL, \ - FPGA ## n ## _THR_CNT, \ - FPGA ## n ## _THR_STA, - FPGA_CTRL_REGS(0, 0x170) - FPGA_CTRL_REGS(1, 0x180) - FPGA_CTRL_REGS(2, 0x190) - FPGA_CTRL_REGS(3, 0x1a0) - - BANDGAP_TRIP = 0x1b8 / 4, - PLL_PREDIVISOR = 0x1c0 / 4, - CLK_621_TRUE, - - PSS_RST_CTRL = 0x200 / 4, - DDR_RST_CTRL, - TOPSW_RESET_CTRL, - DMAC_RST_CTRL, - USB_RST_CTRL, - GEM_RST_CTRL, - SDIO_RST_CTRL, - SPI_RST_CTRL, - CAN_RST_CTRL, - I2C_RST_CTRL, - UART_RST_CTRL, - GPIO_RST_CTRL, - LQSPI_RST_CTRL, - SMC_RST_CTRL, - OCM_RST_CTRL, - FPGA_RST_CTRL = 0x240 / 4, - A9_CPU_RST_CTRL, - - RS_AWDT_CTRL = 0x24c / 4, - RST_REASON, - - REBOOT_STATUS = 0x258 / 4, - BOOT_MODE, - - APU_CTRL = 0x300 / 4, - WDT_CLK_SEL, - - TZ_DMA_NS = 0x440 / 4, - TZ_DMA_IRQ_NS, - TZ_DMA_PERIPH_NS, - - PSS_IDCODE = 0x530 / 4, - - DDR_URGENT = 0x600 / 4, - DDR_CAL_START = 0x60c / 4, - DDR_REF_START = 0x614 / 4, - DDR_CMD_STA, - DDR_URGENT_SEL, - DDR_DFI_STATUS, - - MIO = 0x700 / 4, + REG32(FPGA ## n ## _CLK_CTRL, (start)) \ + REG32(FPGA ## n ## _THR_CTRL, (start) + 0x4)\ + REG32(FPGA ## n ## _THR_CNT, (start) + 0x8)\ + REG32(FPGA ## n ## _THR_STA, (start) + 0xc) +FPGA_CTRL_REGS(0, 0x170) +FPGA_CTRL_REGS(1, 0x180) +FPGA_CTRL_REGS(2, 0x190) +FPGA_CTRL_REGS(3, 0x1a0) + +REG32(BANDGAP_TRIP, 0x1b8) +REG32(PLL_PREDIVISOR, 0x1c0) +REG32(CLK_621_TRUE, 0x1c4) + +REG32(PSS_RST_CTRL, 0x200) + FIELD(PSS_RST_CTRL, SOFT_RST, 0, 1) +REG32(DDR_RST_CTRL, 0x204) +REG32(TOPSW_RESET_CTRL, 0x208) +REG32(DMAC_RST_CTRL, 0x20c) +REG32(USB_RST_CTRL, 0x210) +REG32(GEM_RST_CTRL, 0x214) +REG32(SDIO_RST_CTRL, 0x218) +REG32(SPI_RST_CTRL, 0x21c) +REG32(CAN_RST_CTRL, 0x220) +REG32(I2C_RST_CTRL, 0x224) +REG32(UART_RST_CTRL, 0x228) +REG32(GPIO_RST_CTRL, 0x22c) +REG32(LQSPI_RST_CTRL, 0x230) +REG32(SMC_RST_CTRL, 0x234) +REG32(OCM_RST_CTRL, 0x238) +REG32(FPGA_RST_CTRL, 0x240) +REG32(A9_CPU_RST_CTRL, 0x244) + +REG32(RS_AWDT_CTRL, 0x24c) +REG32(RST_REASON, 0x250) + +REG32(REBOOT_STATUS, 0x258) +REG32(BOOT_MODE, 0x25c) + +REG32(APU_CTRL, 0x300) +REG32(WDT_CLK_SEL, 0x304) + +REG32(TZ_DMA_NS, 0x440) +REG32(TZ_DMA_IRQ_NS, 0x444) +REG32(TZ_DMA_PERIPH_NS, 0x448) + +REG32(PSS_IDCODE, 0x530) + +REG32(DDR_URGENT, 0x600) +REG32(DDR_CAL_START, 0x60c) +REG32(DDR_REF_START, 0x614) +REG32(DDR_CMD_STA, 0x618) +REG32(DDR_URGENT_SEL, 0x61c) +REG32(DDR_DFI_STATUS, 0x620) + +REG32(MIO, 0x700) #define MIO_LENGTH 54 - MIO_LOOPBACK = 0x804 / 4, - MIO_MST_TRI0, - MIO_MST_TRI1, +REG32(MIO_LOOPBACK, 0x804) +REG32(MIO_MST_TRI0, 0x808) +REG32(MIO_MST_TRI1, 0x80c) - SD0_WP_CD_SEL = 0x830 / 4, - SD1_WP_CD_SEL, +REG32(SD0_WP_CD_SEL, 0x830) +REG32(SD1_WP_CD_SEL, 0x834) - LVL_SHFTR_EN = 0x900 / 4, - OCM_CFG = 0x910 / 4, +REG32(LVL_SHFTR_EN, 0x900) +REG32(OCM_CFG, 0x910) - CPU_RAM = 0xa00 / 4, +REG32(CPU_RAM, 0xa00) - IOU = 0xa30 / 4, +REG32(IOU, 0xa30) - DMAC_RAM = 0xa50 / 4, +REG32(DMAC_RAM, 0xa50) - AFI0 = 0xa60 / 4, - AFI1 = AFI0 + 3, - AFI2 = AFI1 + 3, - AFI3 = AFI2 + 3, +REG32(AFI0, 0xa60) +REG32(AFI1, 0xa6c) +REG32(AFI2, 0xa78) +REG32(AFI3, 0xa84) #define AFI_LENGTH 3 - OCM = 0xa90 / 4, +REG32(OCM, 0xa90) - DEVCI_RAM = 0xaa0 / 4, +REG32(DEVCI_RAM, 0xaa0) - CSG_RAM = 0xab0 / 4, +REG32(CSG_RAM, 0xab0) - GPIOB_CTRL = 0xb00 / 4, - GPIOB_CFG_CMOS18, - GPIOB_CFG_CMOS25, - GPIOB_CFG_CMOS33, - GPIOB_CFG_HSTL = 0xb14 / 4, - GPIOB_DRVR_BIAS_CTRL, +REG32(GPIOB_CTRL, 0xb00) +REG32(GPIOB_CFG_CMOS18, 0xb04) +REG32(GPIOB_CFG_CMOS25, 0xb08) +REG32(GPIOB_CFG_CMOS33, 0xb0c) +REG32(GPIOB_CFG_HSTL, 0xb14) +REG32(GPIOB_DRVR_BIAS_CTRL, 0xb18) - DDRIOB = 0xb40 / 4, +REG32(DDRIOB, 0xb40) #define DDRIOB_LENGTH 14 -}; #define ZYNQ_SLCR_MMIO_SIZE 0x1000 #define ZYNQ_SLCR_NUM_REGS (ZYNQ_SLCR_MMIO_SIZE / 4) @@ -190,150 +188,152 @@ static void zynq_slcr_reset(DeviceState *d) DB_PRINT("RESET\n"); - s->regs[LOCKSTA] = 1; + s->regs[R_LOCKSTA] = 1; /* 0x100 - 0x11C */ - s->regs[ARM_PLL_CTRL] = 0x0001A008; - s->regs[DDR_PLL_CTRL] = 0x0001A008; - s->regs[IO_PLL_CTRL] = 0x0001A008; - s->regs[PLL_STATUS] = 0x0000003F; - s->regs[ARM_PLL_CFG] = 0x00014000; - s->regs[DDR_PLL_CFG] = 0x00014000; - s->regs[IO_PLL_CFG] = 0x00014000; + s->regs[R_ARM_PLL_CTRL] = 0x0001A008; + s->regs[R_DDR_PLL_CTRL] = 0x0001A008; + s->regs[R_IO_PLL_CTRL] = 0x0001A008; + s->regs[R_PLL_STATUS] = 0x0000003F; + s->regs[R_ARM_PLL_CFG] = 0x00014000; + s->regs[R_DDR_PLL_CFG] = 0x00014000; + s->regs[R_IO_PLL_CFG] = 0x00014000; /* 0x120 - 0x16C */ - s->regs[ARM_CLK_CTRL] = 0x1F000400; - s->regs[DDR_CLK_CTRL] = 0x18400003; - s->regs[DCI_CLK_CTRL] = 0x01E03201; - s->regs[APER_CLK_CTRL] = 0x01FFCCCD; - s->regs[USB0_CLK_CTRL] = s->regs[USB1_CLK_CTRL] = 0x00101941; - s->regs[GEM0_RCLK_CTRL] = s->regs[GEM1_RCLK_CTRL] = 0x00000001; - s->regs[GEM0_CLK_CTRL] = s->regs[GEM1_CLK_CTRL] = 0x00003C01; - s->regs[SMC_CLK_CTRL] = 0x00003C01; - s->regs[LQSPI_CLK_CTRL] = 0x00002821; - s->regs[SDIO_CLK_CTRL] = 0x00001E03; - s->regs[UART_CLK_CTRL] = 0x00003F03; - s->regs[SPI_CLK_CTRL] = 0x00003F03; - s->regs[CAN_CLK_CTRL] = 0x00501903; - s->regs[DBG_CLK_CTRL] = 0x00000F03; - s->regs[PCAP_CLK_CTRL] = 0x00000F01; + s->regs[R_ARM_CLK_CTRL] = 0x1F000400; + s->regs[R_DDR_CLK_CTRL] = 0x18400003; + s->regs[R_DCI_CLK_CTRL] = 0x01E03201; + s->regs[R_APER_CLK_CTRL] = 0x01FFCCCD; + s->regs[R_USB0_CLK_CTRL] = s->regs[R_USB1_CLK_CTRL] = 0x00101941; + s->regs[R_GEM0_RCLK_CTRL] = s->regs[R_GEM1_RCLK_CTRL] = 0x00000001; + s->regs[R_GEM0_CLK_CTRL] = s->regs[R_GEM1_CLK_CTRL] = 0x00003C01; + s->regs[R_SMC_CLK_CTRL] = 0x00003C01; + s->regs[R_LQSPI_CLK_CTRL] = 0x00002821; + s->regs[R_SDIO_CLK_CTRL] = 0x00001E03; + s->regs[R_UART_CLK_CTRL] = 0x00003F03; + s->regs[R_SPI_CLK_CTRL] = 0x00003F03; + s->regs[R_CAN_CLK_CTRL] = 0x00501903; + s->regs[R_DBG_CLK_CTRL] = 0x00000F03; + s->regs[R_PCAP_CLK_CTRL] = 0x00000F01; /* 0x170 - 0x1AC */ - s->regs[FPGA0_CLK_CTRL] = s->regs[FPGA1_CLK_CTRL] = s->regs[FPGA2_CLK_CTRL] - = s->regs[FPGA3_CLK_CTRL] = 0x00101800; - s->regs[FPGA0_THR_STA] = s->regs[FPGA1_THR_STA] = s->regs[FPGA2_THR_STA] - = s->regs[FPGA3_THR_STA] = 0x00010000; + s->regs[R_FPGA0_CLK_CTRL] = s->regs[R_FPGA1_CLK_CTRL] + = s->regs[R_FPGA2_CLK_CTRL] + = s->regs[R_FPGA3_CLK_CTRL] = 0x00101800; + s->regs[R_FPGA0_THR_STA] = s->regs[R_FPGA1_THR_STA] + = s->regs[R_FPGA2_THR_STA] + = s->regs[R_FPGA3_THR_STA] = 0x00010000; /* 0x1B0 - 0x1D8 */ - s->regs[BANDGAP_TRIP] = 0x0000001F; - s->regs[PLL_PREDIVISOR] = 0x00000001; - s->regs[CLK_621_TRUE] = 0x00000001; + s->regs[R_BANDGAP_TRIP] = 0x0000001F; + s->regs[R_PLL_PREDIVISOR] = 0x00000001; + s->regs[R_CLK_621_TRUE] = 0x00000001; /* 0x200 - 0x25C */ - s->regs[FPGA_RST_CTRL] = 0x01F33F0F; - s->regs[RST_REASON] = 0x00000040; + s->regs[R_FPGA_RST_CTRL] = 0x01F33F0F; + s->regs[R_RST_REASON] = 0x00000040; - s->regs[BOOT_MODE] = 0x00000001; + s->regs[R_BOOT_MODE] = 0x00000001; /* 0x700 - 0x7D4 */ for (i = 0; i < 54; i++) { - s->regs[MIO + i] = 0x00001601; + s->regs[R_MIO + i] = 0x00001601; } for (i = 2; i <= 8; i++) { - s->regs[MIO + i] = 0x00000601; + s->regs[R_MIO + i] = 0x00000601; } - s->regs[MIO_MST_TRI0] = s->regs[MIO_MST_TRI1] = 0xFFFFFFFF; + s->regs[R_MIO_MST_TRI0] = s->regs[R_MIO_MST_TRI1] = 0xFFFFFFFF; - s->regs[CPU_RAM + 0] = s->regs[CPU_RAM + 1] = s->regs[CPU_RAM + 3] - = s->regs[CPU_RAM + 4] = s->regs[CPU_RAM + 7] - = 0x00010101; - s->regs[CPU_RAM + 2] = s->regs[CPU_RAM + 5] = 0x01010101; - s->regs[CPU_RAM + 6] = 0x00000001; + s->regs[R_CPU_RAM + 0] = s->regs[R_CPU_RAM + 1] = s->regs[R_CPU_RAM + 3] + = s->regs[R_CPU_RAM + 4] = s->regs[R_CPU_RAM + 7] + = 0x00010101; + s->regs[R_CPU_RAM + 2] = s->regs[R_CPU_RAM + 5] = 0x01010101; + s->regs[R_CPU_RAM + 6] = 0x00000001; - s->regs[IOU + 0] = s->regs[IOU + 1] = s->regs[IOU + 2] = s->regs[IOU + 3] - = 0x09090909; - s->regs[IOU + 4] = s->regs[IOU + 5] = 0x00090909; - s->regs[IOU + 6] = 0x00000909; + s->regs[R_IOU + 0] = s->regs[R_IOU + 1] = s->regs[R_IOU + 2] + = s->regs[R_IOU + 3] = 0x09090909; + s->regs[R_IOU + 4] = s->regs[R_IOU + 5] = 0x00090909; + s->regs[R_IOU + 6] = 0x00000909; - s->regs[DMAC_RAM] = 0x00000009; + s->regs[R_DMAC_RAM] = 0x00000009; - s->regs[AFI0 + 0] = s->regs[AFI0 + 1] = 0x09090909; - s->regs[AFI1 + 0] = s->regs[AFI1 + 1] = 0x09090909; - s->regs[AFI2 + 0] = s->regs[AFI2 + 1] = 0x09090909; - s->regs[AFI3 + 0] = s->regs[AFI3 + 1] = 0x09090909; - s->regs[AFI0 + 2] = s->regs[AFI1 + 2] = s->regs[AFI2 + 2] - = s->regs[AFI3 + 2] = 0x00000909; + s->regs[R_AFI0 + 0] = s->regs[R_AFI0 + 1] = 0x09090909; + s->regs[R_AFI1 + 0] = s->regs[R_AFI1 + 1] = 0x09090909; + s->regs[R_AFI2 + 0] = s->regs[R_AFI2 + 1] = 0x09090909; + s->regs[R_AFI3 + 0] = s->regs[R_AFI3 + 1] = 0x09090909; + s->regs[R_AFI0 + 2] = s->regs[R_AFI1 + 2] = s->regs[R_AFI2 + 2] + = s->regs[R_AFI3 + 2] = 0x00000909; - s->regs[OCM + 0] = 0x01010101; - s->regs[OCM + 1] = s->regs[OCM + 2] = 0x09090909; + s->regs[R_OCM + 0] = 0x01010101; + s->regs[R_OCM + 1] = s->regs[R_OCM + 2] = 0x09090909; - s->regs[DEVCI_RAM] = 0x00000909; - s->regs[CSG_RAM] = 0x00000001; + s->regs[R_DEVCI_RAM] = 0x00000909; + s->regs[R_CSG_RAM] = 0x00000001; - s->regs[DDRIOB + 0] = s->regs[DDRIOB + 1] = s->regs[DDRIOB + 2] - = s->regs[DDRIOB + 3] = 0x00000e00; - s->regs[DDRIOB + 4] = s->regs[DDRIOB + 5] = s->regs[DDRIOB + 6] - = 0x00000e00; - s->regs[DDRIOB + 12] = 0x00000021; + s->regs[R_DDRIOB + 0] = s->regs[R_DDRIOB + 1] = s->regs[R_DDRIOB + 2] + = s->regs[R_DDRIOB + 3] = 0x00000e00; + s->regs[R_DDRIOB + 4] = s->regs[R_DDRIOB + 5] = s->regs[R_DDRIOB + 6] + = 0x00000e00; + s->regs[R_DDRIOB + 12] = 0x00000021; } static bool zynq_slcr_check_offset(hwaddr offset, bool rnw) { switch (offset) { - case LOCK: - case UNLOCK: - case DDR_CAL_START: - case DDR_REF_START: + case R_LOCK: + case R_UNLOCK: + case R_DDR_CAL_START: + case R_DDR_REF_START: return !rnw; /* Write only */ - case LOCKSTA: - case FPGA0_THR_STA: - case FPGA1_THR_STA: - case FPGA2_THR_STA: - case FPGA3_THR_STA: - case BOOT_MODE: - case PSS_IDCODE: - case DDR_CMD_STA: - case DDR_DFI_STATUS: - case PLL_STATUS: + case R_LOCKSTA: + case R_FPGA0_THR_STA: + case R_FPGA1_THR_STA: + case R_FPGA2_THR_STA: + case R_FPGA3_THR_STA: + case R_BOOT_MODE: + case R_PSS_IDCODE: + case R_DDR_CMD_STA: + case R_DDR_DFI_STATUS: + case R_PLL_STATUS: return rnw;/* read only */ - case SCL: - case ARM_PLL_CTRL ... IO_PLL_CTRL: - case ARM_PLL_CFG ... IO_PLL_CFG: - case ARM_CLK_CTRL ... TOPSW_CLK_CTRL: - case FPGA0_CLK_CTRL ... FPGA0_THR_CNT: - case FPGA1_CLK_CTRL ... FPGA1_THR_CNT: - case FPGA2_CLK_CTRL ... FPGA2_THR_CNT: - case FPGA3_CLK_CTRL ... FPGA3_THR_CNT: - case BANDGAP_TRIP: - case PLL_PREDIVISOR: - case CLK_621_TRUE: - case PSS_RST_CTRL ... A9_CPU_RST_CTRL: - case RS_AWDT_CTRL: - case RST_REASON: - case REBOOT_STATUS: - case APU_CTRL: - case WDT_CLK_SEL: - case TZ_DMA_NS ... TZ_DMA_PERIPH_NS: - case DDR_URGENT: - case DDR_URGENT_SEL: - case MIO ... MIO + MIO_LENGTH - 1: - case MIO_LOOPBACK ... MIO_MST_TRI1: - case SD0_WP_CD_SEL: - case SD1_WP_CD_SEL: - case LVL_SHFTR_EN: - case OCM_CFG: - case CPU_RAM: - case IOU: - case DMAC_RAM: - case AFI0 ... AFI3 + AFI_LENGTH - 1: - case OCM: - case DEVCI_RAM: - case CSG_RAM: - case GPIOB_CTRL ... GPIOB_CFG_CMOS33: - case GPIOB_CFG_HSTL: - case GPIOB_DRVR_BIAS_CTRL: - case DDRIOB ... DDRIOB + DDRIOB_LENGTH - 1: + case R_SCL: + case R_ARM_PLL_CTRL ... R_IO_PLL_CTRL: + case R_ARM_PLL_CFG ... R_IO_PLL_CFG: + case R_ARM_CLK_CTRL ... R_TOPSW_CLK_CTRL: + case R_FPGA0_CLK_CTRL ... R_FPGA0_THR_CNT: + case R_FPGA1_CLK_CTRL ... R_FPGA1_THR_CNT: + case R_FPGA2_CLK_CTRL ... R_FPGA2_THR_CNT: + case R_FPGA3_CLK_CTRL ... R_FPGA3_THR_CNT: + case R_BANDGAP_TRIP: + case R_PLL_PREDIVISOR: + case R_CLK_621_TRUE: + case R_PSS_RST_CTRL ... R_A9_CPU_RST_CTRL: + case R_RS_AWDT_CTRL: + case R_RST_REASON: + case R_REBOOT_STATUS: + case R_APU_CTRL: + case R_WDT_CLK_SEL: + case R_TZ_DMA_NS ... R_TZ_DMA_PERIPH_NS: + case R_DDR_URGENT: + case R_DDR_URGENT_SEL: + case R_MIO ... R_MIO + MIO_LENGTH - 1: + case R_MIO_LOOPBACK ... R_MIO_MST_TRI1: + case R_SD0_WP_CD_SEL: + case R_SD1_WP_CD_SEL: + case R_LVL_SHFTR_EN: + case R_OCM_CFG: + case R_CPU_RAM: + case R_IOU: + case R_DMAC_RAM: + case R_AFI0 ... R_AFI3 + AFI_LENGTH - 1: + case R_OCM: + case R_DEVCI_RAM: + case R_CSG_RAM: + case R_GPIOB_CTRL ... R_GPIOB_CFG_CMOS33: + case R_GPIOB_CFG_HSTL: + case R_GPIOB_DRVR_BIAS_CTRL: + case R_DDRIOB ... R_DDRIOB + DDRIOB_LENGTH - 1: return true; default: return false; @@ -371,24 +371,24 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, } switch (offset) { - case SCL: - s->regs[SCL] = val & 0x1; + case R_SCL: + s->regs[R_SCL] = val & 0x1; return; - case LOCK: + case R_LOCK: if ((val & 0xFFFF) == XILINX_LOCK_KEY) { DB_PRINT("XILINX LOCK 0xF8000000 + 0x%x <= 0x%x\n", (int)offset, (unsigned)val & 0xFFFF); - s->regs[LOCKSTA] = 1; + s->regs[R_LOCKSTA] = 1; } else { DB_PRINT("WRONG XILINX LOCK KEY 0xF8000000 + 0x%x <= 0x%x\n", (int)offset, (unsigned)val & 0xFFFF); } return; - case UNLOCK: + case R_UNLOCK: if ((val & 0xFFFF) == XILINX_UNLOCK_KEY) { DB_PRINT("XILINX UNLOCK 0xF8000000 + 0x%x <= 0x%x\n", (int)offset, (unsigned)val & 0xFFFF); - s->regs[LOCKSTA] = 0; + s->regs[R_LOCKSTA] = 0; } else { DB_PRINT("WRONG XILINX UNLOCK KEY 0xF8000000 + 0x%x <= 0x%x\n", (int)offset, (unsigned)val & 0xFFFF); @@ -396,7 +396,7 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, return; } - if (s->regs[LOCKSTA]) { + if (s->regs[R_LOCKSTA]) { qemu_log_mask(LOG_GUEST_ERROR, "SCLR registers are locked. Unlock them first\n"); return; @@ -404,8 +404,8 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, s->regs[offset] = val; switch (offset) { - case PSS_RST_CTRL: - if (val & R_PSS_RST_CTRL_SOFT_RST) { + case R_PSS_RST_CTRL: + if (FIELD_EX32(val, PSS_RST_CTRL, SOFT_RST)) { qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); } break; From patchwork Mon Jul 29 14:56:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11064017 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EF8321398 for ; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D97BA22A2A for ; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CA4D2284C9; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1E9CF22A2A for ; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) Received: from localhost ([::1]:53594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7SD-00047r-AD for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:20:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39847) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79E-0007Vr-Qs for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79C-0006fi-TC for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:12 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49068) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZI-5J; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 9260497064; Mon, 29 Jul 2019 14:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N5wnMQEiMoszMl9iY43hRAj3emLdaJgse3RhUORv7mA=; b=Ea3nNUHBhop4jRADSkdTGq8pqTrpXz8GjNAW2XOEMWXYWs4wr6y+Azhd+x6TyzmtaUIa0f fgu1C6oh+49Zae93jKY13Chv48FFAG3Hs8IcWm1SPNlfFxrUNTNdC2Y2qBXqIs5eoB5Aql U8JHbKOijurENUbWe5wZMFcIbObAerg= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:51 +0200 Message-Id: <20190729145654.14644-31-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N5wnMQEiMoszMl9iY43hRAj3emLdaJgse3RhUORv7mA=; b=WvAtHFZsfTFPAyXrEStEy1QIY3iaOPPwetox0EZF1ouGR0iZA29+tV6sRjebYFOKLBM57J ERM5gqfvLMean5HO212vrYh/lF0WaUMObYwSA6zV0lo4Lujk1Y4YMrytvg7FPQJZD2FcFs x4N1AhQyvYa7aPdtUtQX/lfy7Hiuxb4= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412372; a=rsa-sha256; cv=none; b=yqKxTNzhj6/OkXaMKs3th7yRmN8RS62X4Voqti9rlDfKpu/d7N7Kgr3wUUWvZGqQx7x4hi l52Z15Xyv0LQzYmMskkshTZNNPaqY3YL/Bt+Bc5Tx19zVqit+2xIay0hRixEs7vchqGlf2 Cas3a3jnxOwoJBCjeOsNz1N+84QeNVE= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 30/33] convert cadence_uart to 3-phases reset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Split the existing reset procedure into 3 phases. Test the resetting flag to discard register accesses and character reception. Also adds a active high reset io. Signed-off-by: Damien Hedde --- hw/char/cadence_uart.c | 77 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index fa25fe24da..d7bacc44fe 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -39,6 +39,18 @@ #define DB_PRINT(...) #endif +#define CADENCE_UART_CLASS(class) \ + OBJECT_CLASS_CHECK(CadenceUartClass, (class), TYPE_CADENCE_UART) +#define CADENCE_UART_GET_CLASS(obj) \ + OBJECT_GET_CLASS(CadenceUartClass, (obj), TYPE_CADENCE_UART) + +typedef struct CadenceUartClass { + /*< private >*/ + SysBusDeviceClass parent_class; + + struct ResettablePhases parent_reset_phases; +} CadenceUartClass; + #define UART_SR_INTR_RTRIG 0x00000001 #define UART_SR_INTR_REMPTY 0x00000002 #define UART_SR_INTR_RFUL 0x00000004 @@ -223,6 +235,10 @@ static int uart_can_receive(void *opaque) int ret = MAX(CADENCE_UART_RX_FIFO_SIZE, CADENCE_UART_TX_FIFO_SIZE); uint32_t ch_mode = s->r[R_MR] & UART_MR_CHMODE; + if (device_is_resetting((DeviceState *) opaque)) { + return 0; + } + if (ch_mode == NORMAL_MODE || ch_mode == ECHO_MODE) { ret = MIN(ret, CADENCE_UART_RX_FIFO_SIZE - s->rx_count); } @@ -338,6 +354,10 @@ static void uart_receive(void *opaque, const uint8_t *buf, int size) CadenceUARTState *s = opaque; uint32_t ch_mode = s->r[R_MR] & UART_MR_CHMODE; + if (device_is_resetting((DeviceState *) opaque)) { + return; + } + if (ch_mode == NORMAL_MODE || ch_mode == ECHO_MODE) { uart_write_rx_fifo(opaque, buf, size); } @@ -351,6 +371,10 @@ static void uart_event(void *opaque, int event) CadenceUARTState *s = opaque; uint8_t buf = '\0'; + if (device_is_resetting((DeviceState *) opaque)) { + return; + } + if (event == CHR_EVENT_BREAK) { uart_write_rx_fifo(opaque, &buf, 1); } @@ -383,6 +407,10 @@ static void uart_write(void *opaque, hwaddr offset, { CadenceUARTState *s = opaque; + if (device_is_resetting((DeviceState *)opaque)) { + return; + } + DB_PRINT(" offset:%x data:%08x\n", (unsigned)offset, (unsigned)value); offset >>= 2; if (offset >= CADENCE_UART_R_MAX) { @@ -441,6 +469,10 @@ static uint64_t uart_read(void *opaque, hwaddr offset, CadenceUARTState *s = opaque; uint32_t c = 0; + if (device_is_resetting((DeviceState *)opaque)) { + return 0; + } + offset >>= 2; if (offset >= CADENCE_UART_R_MAX) { c = 0; @@ -460,9 +492,14 @@ static const MemoryRegionOps uart_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static void cadence_uart_reset(DeviceState *dev) +static void cadence_uart_reset_init(Object *obj) { - CadenceUARTState *s = CADENCE_UART(dev); + CadenceUARTState *s = CADENCE_UART(obj); + CadenceUartClass *cc = CADENCE_UART_GET_CLASS(obj); + + if (cc->parent_reset_phases.init) { + cc->parent_reset_phases.init(obj); + } s->r[R_CR] = 0x00000128; s->r[R_IMR] = 0; @@ -471,6 +508,28 @@ static void cadence_uart_reset(DeviceState *dev) s->r[R_BRGR] = 0x0000028B; s->r[R_BDIV] = 0x0000000F; s->r[R_TTRIG] = 0x00000020; +} + +static void cadence_uart_reset_hold(Object *obj) +{ + CadenceUARTState *s = CADENCE_UART(obj); + CadenceUartClass *cc = CADENCE_UART_GET_CLASS(obj); + + if (cc->parent_reset_phases.hold) { + cc->parent_reset_phases.hold(obj); + } + + qemu_set_irq(s->irq, 0); +} + +static void cadence_uart_reset_exit(Object *obj) +{ + CadenceUARTState *s = CADENCE_UART(obj); + CadenceUartClass *cc = CADENCE_UART_GET_CLASS(obj); + + if (cc->parent_reset_phases.exit) { + cc->parent_reset_phases.exit(obj); + } uart_rx_reset(s); uart_tx_reset(s); @@ -499,6 +558,8 @@ static void cadence_uart_init(Object *obj) sysbus_init_irq(sbd, &s->irq); s->char_tx_time = (NANOSECONDS_PER_SECOND / 9600) * 10; + + qdev_init_warm_reset_gpio(DEVICE(obj), "rst", DEVICE_RESET_ACTIVE_HIGH); } static int cadence_uart_post_load(void *opaque, int version_id) @@ -544,12 +605,19 @@ static Property cadence_uart_properties[] = { static void cadence_uart_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); + CadenceUartClass *cc = CADENCE_UART_CLASS(klass); dc->realize = cadence_uart_realize; dc->vmsd = &vmstate_cadence_uart; - dc->reset = cadence_uart_reset; dc->props = cadence_uart_properties; - } + + resettable_class_set_parent_reset_phases(rc, + cadence_uart_reset_init, + cadence_uart_reset_hold, + cadence_uart_reset_exit, + &cc->parent_reset_phases); +} static const TypeInfo cadence_uart_info = { .name = TYPE_CADENCE_UART, @@ -557,6 +625,7 @@ static const TypeInfo cadence_uart_info = { .instance_size = sizeof(CadenceUARTState), .instance_init = cadence_uart_init, .class_init = cadence_uart_class_init, + .class_size = sizeof(CadenceUartClass), }; static void cadence_uart_register_types(void) From patchwork Mon Jul 29 14:56:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063989 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8478714DB for ; Mon, 29 Jul 2019 15:15:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7384320069 for ; Mon, 29 Jul 2019 15:15:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 66744262F2; Mon, 29 Jul 2019 15:15:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EE3F120069 for ; Mon, 29 Jul 2019 15:15:49 +0000 (UTC) Received: from localhost ([::1]:53366 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7NN-0002Xf-8H for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:15:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39697) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79B-0007N1-I2 for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs799-0006am-QU for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:09 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49074) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005ZN-6n; Mon, 29 Jul 2019 11:00:55 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 0256197067; Mon, 29 Jul 2019 14:59:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aThNjuVE1UXty0oi0ItEPUL3pO9Pqai4sg44CRrS3k=; b=7a1I6G6whT1mF+2/EfRGbkcY9k7EMHus3Rgcr5vPaC30jIvzfiDS4QZWk75/JqJgTgfZr5 G0o8Xv82b9hJziFrvdCWQ0bR+/Vuhsm2kM8pyjbXzznARos9ZPCMl+5BuVGpsD4eX3VZok pQ3luNhiAkMNRF9uXsVgdVDjK+6hisQ= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:52 +0200 Message-Id: <20190729145654.14644-32-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6aThNjuVE1UXty0oi0ItEPUL3pO9Pqai4sg44CRrS3k=; b=ICBNHhSKdGk82y1XxC8KFIBj0ewRXUFpgW4t1LKIC1Z6L7DsxYNoqPNTucX2lc5dxnSD1u VWOr7ILxPpK6p4yG3SC64vC9E4G8FspmDl2mtr8mEi5ZwQXGBVLfg3hof3ctnovto8QU7r OxrC1prTKRFL/ni1w4gMYDZ0+NOtVL8= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412374; a=rsa-sha256; cv=none; b=MGMsrLscgJR4Mg0EWT3LnAkICNh7DuOWC6gz1apLHMwcOeHxwjkHNFWn+WhJWgYjJNZid/ f51UnZ/O8rHxUD8R7oui17iHVY8FQ4c0E04yXwsud2k8guRCE+BAn9r95RlJmr0fmSTsbJ /CGwjP8+fzbfG7/LMFPHqi+AFv0yG+E= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 31/33] Convert zynq's slcr to 3-phases reset X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Change the legacy reset function into the init phase and test the resetting flag in register accesses. Signed-off-by: Damien Hedde --- hw/misc/zynq_slcr.c | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index dd766a6779..6fcdbce4f0 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -172,6 +172,17 @@ REG32(DDRIOB, 0xb40) #define TYPE_ZYNQ_SLCR "xilinx,zynq_slcr" #define ZYNQ_SLCR(obj) OBJECT_CHECK(ZynqSLCRState, (obj), TYPE_ZYNQ_SLCR) +#define ZYNQ_SLCR_CLASS(class) \ + OBJECT_CLASS_CHECK(ZynqSLCRClass, (class), TYPE_ZYNQ_SLCR) +#define ZYNQ_SLCR_GET_CLASS(obj) \ + OBJECT_GET_CLASS(ZynqSLCRClass, (obj), TYPE_ZYNQ_SLCR) + +typedef struct ZynqSLCRClass { + /*< private >*/ + SysBusDeviceClass parent_class; + + struct ResettablePhases parent_reset_phases; +} ZynqSLCRClass; typedef struct ZynqSLCRState { SysBusDevice parent_obj; @@ -181,13 +192,18 @@ typedef struct ZynqSLCRState { uint32_t regs[ZYNQ_SLCR_NUM_REGS]; } ZynqSLCRState; -static void zynq_slcr_reset(DeviceState *d) +static void zynq_slcr_reset_init(Object *obj) { - ZynqSLCRState *s = ZYNQ_SLCR(d); + ZynqSLCRState *s = ZYNQ_SLCR(obj); + ZynqSLCRClass *zc = ZYNQ_SLCR_GET_CLASS(obj); int i; DB_PRINT("RESET\n"); + if (zc->parent_reset_phases.init) { + zc->parent_reset_phases.init(obj); + } + s->regs[R_LOCKSTA] = 1; /* 0x100 - 0x11C */ s->regs[R_ARM_PLL_CTRL] = 0x0001A008; @@ -277,7 +293,6 @@ static void zynq_slcr_reset(DeviceState *d) s->regs[R_DDRIOB + 12] = 0x00000021; } - static bool zynq_slcr_check_offset(hwaddr offset, bool rnw) { switch (offset) { @@ -347,6 +362,10 @@ static uint64_t zynq_slcr_read(void *opaque, hwaddr offset, offset /= 4; uint32_t ret = s->regs[offset]; + if (device_is_resetting((DeviceState *) opaque)) { + return 0; + } + if (!zynq_slcr_check_offset(offset, true)) { qemu_log_mask(LOG_GUEST_ERROR, "zynq_slcr: Invalid read access to " " addr %" HWADDR_PRIx "\n", offset * 4); @@ -362,6 +381,10 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, ZynqSLCRState *s = (ZynqSLCRState *)opaque; offset /= 4; + if (device_is_resetting((DeviceState *) opaque)) { + return; + } + DB_PRINT("addr: %08" HWADDR_PRIx " data: %08" PRIx64 "\n", offset * 4, val); if (!zynq_slcr_check_offset(offset, false)) { @@ -440,9 +463,16 @@ static const VMStateDescription vmstate_zynq_slcr = { static void zynq_slcr_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); + ZynqSLCRClass *zc = ZYNQ_SLCR_CLASS(klass); dc->vmsd = &vmstate_zynq_slcr; - dc->reset = zynq_slcr_reset; + + resettable_class_set_parent_reset_phases(rc, + zynq_slcr_reset_init, + NULL, + NULL, + &zc->parent_reset_phases); } static const TypeInfo zynq_slcr_info = { @@ -451,6 +481,7 @@ static const TypeInfo zynq_slcr_info = { .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(ZynqSLCRState), .instance_init = zynq_slcr_init, + .class_size = sizeof(ZynqSLCRClass), }; static void zynq_slcr_register_types(void) From patchwork Mon Jul 29 14:56:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11064019 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 133F6912 for ; Mon, 29 Jul 2019 15:20:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0389422A2A for ; Mon, 29 Jul 2019 15:20:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DFA7228520; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7D29F27F10 for ; Mon, 29 Jul 2019 15:20:50 +0000 (UTC) Received: from localhost ([::1]:53596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7SD-00048y-Rq for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:20:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39906) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79G-0007ZR-BZ for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79E-0006i4-EP for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:14 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49076) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005a0-SV; Mon, 29 Jul 2019 11:00:56 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id 63F0997069; Mon, 29 Jul 2019 14:59:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fki3DuRgk6JFE9a+j7+oWH+U0r34bgS+MNXGIekQZnU=; b=dLSGNwEpQa/20qyXIqWQDLdcESAX96U400gNwEvfr9wsyJaqlZ1ZFDYmyXCnomRQRkaJuX pVXUXsUeCJAysigd1Zp0xXi4EQ/RxGRA1VoD+coayzrqG9GP4INO3Py4NyuqorliAO3RQY XbJ321Te7+zsfFU8YdjTaUZ0zgo9aI4= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:53 +0200 Message-Id: <20190729145654.14644-33-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fki3DuRgk6JFE9a+j7+oWH+U0r34bgS+MNXGIekQZnU=; b=D3Ba5CNsHloxQE/7q2Fo6MTt+nJj9RM2dg4sE5BGFGVQ4quJWStDjweXmmpYueaNXYRmPP WZfiJ34rcbt1bxEDxidnnAf1pJJ7WHPdM6Q9Oita8ymDVlSf+R5C0eysA8ra7G4hhVeefb ph/qxeiId+jQ+W+dvuJPNsPJKDrPZyU= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412375; a=rsa-sha256; cv=none; b=T73fGYf+yfutNEO7kxdcE9AfaozDM7e+6TvG0gA00+Aa6/ONj7WYHbUZhIoFyBFWV6ueG1 9jZgB5qBJSSZBDRKT68BGnv4oS3f+mPYhlYOSodCU/FXkObcTKrcRypku/dqrarlzGm2HZ rUtQrp4q4sQU8zwI4DknmdWMvgvhicw= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 32/33] Add uart reset support in zynq_slcr X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Add two gpio outputs to control the uart resets. Signed-off-by: Damien Hedde --- hw/misc/zynq_slcr.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/hw/misc/zynq_slcr.c b/hw/misc/zynq_slcr.c index 6fcdbce4f0..b6c9a281c2 100644 --- a/hw/misc/zynq_slcr.c +++ b/hw/misc/zynq_slcr.c @@ -97,6 +97,10 @@ REG32(SPI_RST_CTRL, 0x21c) REG32(CAN_RST_CTRL, 0x220) REG32(I2C_RST_CTRL, 0x224) REG32(UART_RST_CTRL, 0x228) + FIELD(UART_RST_CTRL, UART0_CPU1X_RST, 0, 1) + FIELD(UART_RST_CTRL, UART1_CPU1X_RST, 1, 1) + FIELD(UART_RST_CTRL, UART0_REF_RST, 2, 1) + FIELD(UART_RST_CTRL, UART1_REF_RST, 3, 1) REG32(GPIO_RST_CTRL, 0x22c) REG32(LQSPI_RST_CTRL, 0x230) REG32(SMC_RST_CTRL, 0x234) @@ -190,8 +194,14 @@ typedef struct ZynqSLCRState { MemoryRegion iomem; uint32_t regs[ZYNQ_SLCR_NUM_REGS]; + + qemu_irq uart0_rst; + qemu_irq uart1_rst; } ZynqSLCRState; +#define ZYNQ_SLCR_REGFIELD_TO_OUT(state, irq, reg, field) \ + qemu_set_irq((state)->irq, ARRAY_FIELD_EX32((state)->regs, reg, field) != 0) + static void zynq_slcr_reset_init(Object *obj) { ZynqSLCRState *s = ZYNQ_SLCR(obj); @@ -293,6 +303,24 @@ static void zynq_slcr_reset_init(Object *obj) s->regs[R_DDRIOB + 12] = 0x00000021; } +static void zynq_slcr_compute_uart_reset(ZynqSLCRState *s) +{ + ZYNQ_SLCR_REGFIELD_TO_OUT(s, uart0_rst, UART_RST_CTRL, UART0_REF_RST); + ZYNQ_SLCR_REGFIELD_TO_OUT(s, uart1_rst, UART_RST_CTRL, UART1_REF_RST); +} + +static void zynq_slcr_reset_hold(Object *obj) +{ + ZynqSLCRState *s = ZYNQ_SLCR(obj); + ZynqSLCRClass *zc = ZYNQ_SLCR_GET_CLASS(obj); + + if (zc->parent_reset_phases.hold) { + zc->parent_reset_phases.hold(obj); + } + + zynq_slcr_compute_uart_reset(s); +} + static bool zynq_slcr_check_offset(hwaddr offset, bool rnw) { switch (offset) { @@ -432,6 +460,9 @@ static void zynq_slcr_write(void *opaque, hwaddr offset, qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); } break; + case R_UART_RST_CTRL: + zynq_slcr_compute_uart_reset(s); + break; } } @@ -448,6 +479,9 @@ static void zynq_slcr_init(Object *obj) memory_region_init_io(&s->iomem, obj, &slcr_ops, s, "slcr", ZYNQ_SLCR_MMIO_SIZE); sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->iomem); + + qdev_init_gpio_out_named(DEVICE(obj), &s->uart0_rst, "uart0_rst", 1); + qdev_init_gpio_out_named(DEVICE(obj), &s->uart1_rst, "uart1_rst", 1); } static const VMStateDescription vmstate_zynq_slcr = { @@ -470,7 +504,7 @@ static void zynq_slcr_class_init(ObjectClass *klass, void *data) resettable_class_set_parent_reset_phases(rc, zynq_slcr_reset_init, - NULL, + zynq_slcr_reset_hold, NULL, &zc->parent_reset_phases); } From patchwork Mon Jul 29 14:56:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Hedde X-Patchwork-Id: 11063997 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C89D91399 for ; Mon, 29 Jul 2019 15:17:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B75EB262FF for ; Mon, 29 Jul 2019 15:17:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AA8E228524; Mon, 29 Jul 2019 15:17:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 46E3B262FF for ; Mon, 29 Jul 2019 15:17:31 +0000 (UTC) Received: from localhost ([::1]:53468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs7P0-0005t3-J6 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Jul 2019 11:17:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39966) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hs79H-0007eV-Pg for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hs79G-0006kf-EA for qemu-devel@nongnu.org; Mon, 29 Jul 2019 11:01:15 -0400 Received: from beetle.greensocs.com ([5.135.226.135]:49078) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hs78x-0005Zz-SH; Mon, 29 Jul 2019 11:00:56 -0400 Received: from kouign-amann.bar.greensocs.com (unknown [172.16.11.117]) by beetle.greensocs.com (Postfix) with ESMTPS id C54EF97082; Mon, 29 Jul 2019 14:59:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8VM1iJKivn2M3c7C3sqBxBOTVwxONCMfs1SbQ7OUKqo=; b=JFhI1VWmw5aW8DhY6yb1HIbEVBPBLHw6o1FXIo1pOtJMjb4Xy8DJdCAbQh1UmRMUg71FYP RcDS1xWqPob4GrDhF7a0SnXgkbLerqE7w/5H84k7ZikohwRXTH6l4NTKvd3xD33RNJMueE Piu8+CwJ6aHwS/QvVlz5y0OsSO2Nc/Y= From: Damien Hedde To: qemu-devel@nongnu.org Date: Mon, 29 Jul 2019 16:56:54 +0200 Message-Id: <20190729145654.14644-34-damien.hedde@greensocs.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190729145654.14644-1-damien.hedde@greensocs.com> References: <20190729145654.14644-1-damien.hedde@greensocs.com> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=greensocs.com; s=mail; t=1564412377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8VM1iJKivn2M3c7C3sqBxBOTVwxONCMfs1SbQ7OUKqo=; b=tPylVglyjK9gj7L05jvLEdTjQdzcShhevAGcpugN9tKGnnRPmDnIjLzVb0aFa3aj8BGmvY Krc4+SDcg2GkvqAoQU4jqYpy+T1qBajDRwazVHrA/46oVUVLoAY208vaCoChQ6m+8FJIoP H6/nIGQbxl+AnBVOLYWYyrYOViGJzJM= ARC-Seal: i=1; s=mail; d=greensocs.com; t=1564412377; a=rsa-sha256; cv=none; b=Rt9UvrTi1HwN2iK14uquO2Uf7oQ7gOVVHwpz1BIj2a6c1vFEbRwjiRfBD9EaWmjBNWcTr4 6HvjLFVtH1ncBizrQ2fKV84IZNrmDFc8NkM7JR7Y+4RPx3k5+iDv4rzOYqCoAbHI0rhWwd yICqDgcfj4q+45phrH4/8Tspiz7VeSk= ARC-Authentication-Results: i=1; beetle.greensocs.com; none X-Spam: Yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 5.135.226.135 Subject: [Qemu-devel] [PATCH v3 33/33] Connect the uart reset gpios in the zynq platform X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: fam@euphon.net, peter.maydell@linaro.org, walling@linux.ibm.com, dmitry.fleytman@gmail.com, mst@redhat.com, mark.cave-ayland@ilande.co.uk, kraxel@redhat.com, edgar.iglesias@xilinx.com, hare@suse.com, qemu-block@nongnu.org, david@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, marcandre.lureau@redhat.com, rth@twiddle.net, thuth@redhat.com, ehabkost@redhat.com, alistair@alistair23.me, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, clg@kaod.org, jsnow@redhat.com, david@gibson.dropbear.id.au, Damien Hedde , berrange@redhat.com, cohuck@redhat.com, mark.burton@greensocs.com, qemu-ppc@nongnu.org, pbonzini@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Connect the two uart reset inputs to the slcr corresponding outputs. Signed-off-by: Damien Hedde --- hw/arm/xilinx_zynq.c | 14 ++++++++------ include/hw/char/cadence_uart.h | 10 +++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 89da34808b..bb56f1e03c 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -165,7 +165,7 @@ static void zynq_init(MachineState *machine) MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ext_ram = g_new(MemoryRegion, 1); MemoryRegion *ocm_ram = g_new(MemoryRegion, 1); - DeviceState *dev; + DeviceState *dev, *slcr; SysBusDevice *busdev; qemu_irq pic[64]; int n; @@ -210,9 +210,9 @@ static void zynq_init(MachineState *machine) 1, 0x0066, 0x0022, 0x0000, 0x0000, 0x0555, 0x2aa, 0); - dev = qdev_create(NULL, "xilinx,zynq_slcr"); - qdev_init_nofail(dev); - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0xF8000000); + slcr = qdev_create(NULL, "xilinx,zynq_slcr"); + qdev_init_nofail(slcr); + sysbus_mmio_map(SYS_BUS_DEVICE(slcr), 0, 0xF8000000); dev = qdev_create(NULL, TYPE_A9MPCORE_PRIV); qdev_prop_set_uint32(dev, "num-cpu", 1); @@ -233,8 +233,10 @@ static void zynq_init(MachineState *machine) sysbus_create_simple("xlnx,ps7-usb", 0xE0002000, pic[53-IRQ_OFFSET]); sysbus_create_simple("xlnx,ps7-usb", 0xE0003000, pic[76-IRQ_OFFSET]); - cadence_uart_create(0xE0000000, pic[59 - IRQ_OFFSET], serial_hd(0)); - cadence_uart_create(0xE0001000, pic[82 - IRQ_OFFSET], serial_hd(1)); + cadence_uart_create(0xE0000000, pic[59 - IRQ_OFFSET], serial_hd(0), + slcr, "uart0_rst", 0); + cadence_uart_create(0xE0001000, pic[82 - IRQ_OFFSET], serial_hd(1), + slcr, "uart1_rst", 0); sysbus_create_varargs("cadence_ttc", 0xF8001000, pic[42-IRQ_OFFSET], pic[43-IRQ_OFFSET], pic[44-IRQ_OFFSET], NULL); diff --git a/include/hw/char/cadence_uart.h b/include/hw/char/cadence_uart.h index e1cf33e94c..c03c61a1f2 100644 --- a/include/hw/char/cadence_uart.h +++ b/include/hw/char/cadence_uart.h @@ -52,7 +52,10 @@ typedef struct { static inline DeviceState *cadence_uart_create(hwaddr addr, qemu_irq irq, - Chardev *chr) + Chardev *chr, + DeviceState *rst_dev, + const char *rst_name, + int rst_n) { DeviceState *dev; SysBusDevice *s; @@ -64,6 +67,11 @@ static inline DeviceState *cadence_uart_create(hwaddr addr, sysbus_mmio_map(s, 0, addr); sysbus_connect_irq(s, 0, irq); + if (rst_dev) { + qdev_connect_gpio_out_named(rst_dev, rst_name, rst_n, + qdev_get_gpio_in_named(dev, "rst", 0)); + } + return dev; }