From nobody Wed Nov 19 08:23:58 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615333874; cv=none; d=zohomail.com; s=zohoarc; b=MsEayo/ZWimovmxxbzgXbwKKIS2GfS+/+5rBsssbtPb0TwdPBNQ+Sao5zHzGh6y5Kyar0xR+cU4jm5d5VAoXghVUaPbHIzUkOF5V6TJYD0uavT2djPXKBsgUe2erVlH0D2yAb5s2RgXKsMO8Xh92dlhPVsm3E5B2RYUBL0mvXSs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615333874; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=li90BbxJJcTIEYAnFQu9nBy4MfdtLcbjqZ4YJMARg+0=; b=CMU2ZbOwZXIJXfoKOx9gWVemWuo3RARsPxuieubDZmoIPWp58V/UBa3XxuiRrp0ThgT02VT+DGUoBUPg9mIuZptxyy2SED0e4dwXJqF3Z5KAVZWOOtyBmLc1MmP9SKNh38NDiDl+J8cnRYU2VcL790LWlTml4aSg7aNTiXhyd9E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615333874219954.1016024485564; Tue, 9 Mar 2021 15:51:14 -0800 (PST) Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-398-5a6DwaE7OV2HOtv-Zf-Q5Q-1; Tue, 09 Mar 2021 18:51:09 -0500 Received: by mail-ej1-f71.google.com with SMTP id li22so1886641ejb.18 for ; Tue, 09 Mar 2021 15:51:09 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id v8sm265800edx.38.2021.03.09.15.51.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Mar 2021 15:51:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615333873; 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=li90BbxJJcTIEYAnFQu9nBy4MfdtLcbjqZ4YJMARg+0=; b=dHZ7ACy0NQDhfmGmWWG21znqImunDmA+gzrrA4Ckrd8UcA7Uz94FtYoVf8YNcaJwMvM3HO ngNRdofXfZpseJW8AP0EVajZt29PXqw9rsxwYApGVZnaXrFDZgV+XEmanCJsIcSmCxDw+x 36m2a98u5f1EsZH8V/pPMh6nWxe2Zik= X-MC-Unique: 5a6DwaE7OV2HOtv-Zf-Q5Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=li90BbxJJcTIEYAnFQu9nBy4MfdtLcbjqZ4YJMARg+0=; b=mNL/SF+eRRC5ozj07jZdpB9Afw/BQr/eSsWNWsMM5BhAy+y5veE9//sIWmULTOpeq4 MvwsefkWsKwlUWGTRzkW4ytqCW6OKqf3bSLmo3ipVLYfCGPqnrrTBFuinS6TpqE8H5YO gp22adl8xOlWW5AA+G5YkWeOqMfigYFR1L/ajPGwCWvp9l85dBTxIctlLOmKCk/UG0QV Nr2Lq3BHVrg1NwkNXWL/oFQCE/RWP8rU+4WBKbXIeV3X/9GPahU/Xry5OXxQSYNAa/Ag yRL0Jux2czCM6Juxp2mDl6l6xg+vmmHPXZi75WDzUjSytmLfsSp0lmrtbXVOzveG9Qo4 u3tw== X-Gm-Message-State: AOAM533iiH6YPcOeh68D4wj3IT/jpFVzphCABZMkq1+8DcbqO5IeAncd W5sHGynP9BdvlycK8cvZktBGxx/p0KNKZynKxkN52dxwaTA6lrxb2lWnzDX+6dmC0shTbSzskJy LwFFJEXsIKurd5w== X-Received: by 2002:a17:906:565a:: with SMTP id v26mr587643ejr.516.1615333868304; Tue, 09 Mar 2021 15:51:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJy+IyyQQ6BFlk+Lfg5FF1ErQB4WC2WQAbbYLXUgf/CvqTXs0y732CHx0GYeRUqy/0402RiVCw== X-Received: by 2002:a17:906:565a:: with SMTP id v26mr587634ejr.516.1615333868203; Tue, 09 Mar 2021 15:51:08 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alistair Francis , Max Reitz , Kevin Wolf , Stephen Checkoway , David Edmondson , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 7/9] hw/block/pflash_cfi02: Factor out DeviceReset method Date: Wed, 10 Mar 2021 00:50:26 +0100 Message-Id: <20210309235028.912078-8-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210309235028.912078-1-philmd@redhat.com> References: <20210309235028.912078-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) There is multiple places doing a device reset. Factor that out in a common method which matches the DeviceReset prototype, so we can also remove the reset code from the DeviceRealize() handler. Explicit the device is set in "read array" mode on reset. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Edmondson --- hw/block/pflash_cfi02.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 2ba77a0171b..484b056b898 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -193,6 +193,14 @@ static void pflash_mode_read_array(PFlashCFI02 *pfl) memory_region_rom_device_set_romd(&pfl->orig_mem, true); } =20 +static void pflash_cfi02_reset(DeviceState *dev) +{ + PFlashCFI02 *pfl =3D PFLASH_CFI02(dev); + + trace_pflash_reset(); + pflash_mode_read_array(pfl); +} + static size_t pflash_regions_count(PFlashCFI02 *pfl) { return pfl->cfi_table[0x2c]; @@ -330,8 +338,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) default: /* This should never happen : reset state & treat it as a read*/ DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_cfi02_reset(DEVICE(pfl)); /* fall through to the read code */ case 0x80: /* Erase (unlock) */ /* We accept reads during second unlock sequence... */ @@ -710,10 +717,8 @@ static void pflash_write(void *opaque, hwaddr offset, = uint64_t value, =20 /* Reset flash */ reset_flash: - trace_pflash_reset(); pfl->bypass =3D 0; - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_cfi02_reset(DEVICE(pfl)); return; =20 do_bypass: @@ -977,6 +982,7 @@ static void pflash_cfi02_class_init(ObjectClass *klass,= void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->realize =3D pflash_cfi02_realize; + dc->reset =3D pflash_cfi02_reset; dc->unrealize =3D pflash_cfi02_unrealize; device_class_set_props(dc, pflash_cfi02_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); --=20 2.26.2