From nobody Tue Feb 10 07:22:45 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.218.47 as permitted sender) client-ip=209.85.218.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ej1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1610476584; cv=none; d=zohomail.com; s=zohoarc; b=Y3sKrWkasxbsTEVsWdty4tAc0liEc1nJ6JT6mZsCv0BA9nhcWX1KVf0V94JZ2A6tt7SrOjIK7v8OXhv4xKYrE4aAbQ+gVvoIytKZQDkLe+8jP7Utzq8r94CWgNX4c/kmDtYdUohPn1v5K11xWAB5DWiyLaXs3QHgefZJ6svHnfY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610476584; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UUrqq49b0H8vT1YH+cv+uaCjRkYF+aPQPM0uhg4pceE=; b=ZoThmknugmijMJe3OS6VFgTF9We3L2SiviHEFb28eTKOUyEx6APtsPgzU0qiwx69EECkc5h2n/KUCbRKagqTCM+tyhpZZI4x3t09SodC9zDQrSGZWTmKiak1Vfs/cRKn0lbNkC5YD5aCv118SI9FYls1ELSr+cTY+2zdAuIpxFg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by mx.zohomail.com with SMTPS id 1610476584337421.60148768963984; Tue, 12 Jan 2021 10:36:24 -0800 (PST) Received: by mail-ej1-f47.google.com with SMTP id g20so4969397ejb.1 for ; Tue, 12 Jan 2021 10:36:23 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (190.red-83-57-173.dynamicip.rima-tde.net. [83.57.173.190]) by smtp.gmail.com with ESMTPSA id r21sm1779423eds.91.2021.01.12.10.36.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jan 2021 10:36:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UUrqq49b0H8vT1YH+cv+uaCjRkYF+aPQPM0uhg4pceE=; b=EJJMRxbbJxh8UJwD7/C898SYLP5gBXoO4/wgs1dvDaZnTWJuXj2ATH9mQEW4gy7pAW EsE4BG1osS3BWvEDnKmmVpsJlm5PkjrhCkD8pNTcHfG8MpleSoWlNBrG7/fYEuuOkayV p5CGVDXtiB/MWb0JF2hkkau8XqI7lTFAc+TyMJJ5Fwv2XPOR6Skpt3o41isDM7Xt2ztt Egkchq+1lLr1RLF+K7HD/ajsyudnSufvwgtHHm8CqrvXh+r8DgkZ0UdL46srdnOj49lg HHPsdVpRc3tNSz5doC4fHaFD51nIVYrlYbXMJEoM8kWt/Diroi3njSvErLYqO1/0y2iO kujg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=UUrqq49b0H8vT1YH+cv+uaCjRkYF+aPQPM0uhg4pceE=; b=kk0ixTsitQNrZgcvvG//eTSG6+PJ35pcNhyb5UzFW6hVLhyC7Rtc7hBLmZr5EHuipb PSGStc1BoG54V87v3QF4vJU09GiF7WSCK/DHMk9vaQERMf7yAXioCJJz0cbmpEAjXDu0 BBR6I66whNDZIsglSiuukQ5DjOsET5gTEIrwCfwpd+F6MYE+Su32FFJxaCGWMbkEdXpb jLe/D5jhQ0u80gz+MOT4ALZLsxh7QrSmK4TDOX9KnRUjCiNcSvUyZ0rmtO4FRgs1TQdl 2MWiYcf+7N8M4U1Kk6wnXp3dGc6ff7faPP9TC5ktdgo0bChEfDzg1AF2g+FwW+Oi7GA/ hAew== X-Gm-Message-State: AOAM5321QUQJZAHFX1t576QnH7Xq5ENnzbAor7msiH98H0kjHdC7dKBS P06vtbcuHpjs6eyYRIjzx/A= X-Google-Smtp-Source: ABdhPJznm2QYUQ6cpnSpv5X4F2y1tDvJrjYXJC9L5neUa8ZZ7s69gJ6ar8bMbCxEjjQ9D4bPIfPhWA== X-Received: by 2002:a17:906:878d:: with SMTP id za13mr98547ejb.395.1610476582574; Tue, 12 Jan 2021 10:36:22 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Bin Meng , qemu-devel@nongnu.org, Bin Meng Cc: qemu-arm@nongnu.org, Jean-Christophe Dubois , Peter Maydell , Alistair Francis , Peter Chubb , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v6 07/11] hw/ssi: imx_spi: Rework imx_spi_write() to handle block disabled Date: Tue, 12 Jan 2021 19:35:25 +0100 Message-Id: <20210112183529.2011863-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210112183529.2011863-1-f4bug@amsat.org> References: <20210112183529.2011863-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) When the block is disabled, only the ECSPI_CONREG register can be modified. Setting the EN bit enabled the device, clearing it "disables the block and resets the internal logic with the exception of the ECSPI_CONREG" register. Move the imx_spi_is_enabled() check earlier. Ref: i.MX 6DQ Applications Processor Reference Manual (IMX6DQRM), chapter 21.7.3: Control Register (ECSPIx_CONREG) Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/ssi/imx_spi.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c index 7ac9da0f1d2..801daa5cbfa 100644 --- a/hw/ssi/imx_spi.c +++ b/hw/ssi/imx_spi.c @@ -321,6 +321,20 @@ static void imx_spi_write(void *opaque, hwaddr offset,= uint64_t value, =20 trace_imx_spi_write(index, imx_spi_reg_name(index), value); =20 + if (!imx_spi_is_enabled(s)) { + /* Block is disabled */ + if (index !=3D ECSPI_CONREG) { + /* Ignore access */ + return; + } + s->regs[ECSPI_CONREG] =3D value; + if (value & ECSPI_CONREG_EN) { + /* Keep disabled */ + return; + } + /* Enable the block */ + imx_spi_reset(DEVICE(s)); + } =20 switch (index) { case ECSPI_RXDATA: @@ -328,10 +342,7 @@ static void imx_spi_write(void *opaque, hwaddr offset,= uint64_t value, TYPE_IMX_SPI, __func__); break; case ECSPI_TXDATA: - if (!imx_spi_is_enabled(s)) { - /* Ignore writes if device is disabled */ - break; - } else if (fifo32_is_full(&s->tx_fifo)) { + if (fifo32_is_full(&s->tx_fifo)) { /* Ignore writes if queue is full */ break; } @@ -357,12 +368,6 @@ static void imx_spi_write(void *opaque, hwaddr offset,= uint64_t value, case ECSPI_CONREG: s->regs[ECSPI_CONREG] =3D value; =20 - if (!imx_spi_is_enabled(s)) { - /* device is disabled, so this is a reset */ - imx_spi_reset(DEVICE(s)); - return; - } - if (imx_spi_channel_is_master(s)) { uint32_t change_mask =3D s->regs[index] ^ value; int i; --=20 2.26.2