From nobody Tue Feb 10 21:59:30 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) client-ip=209.85.208.48; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f48.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1610476578; cv=none; d=zohomail.com; s=zohoarc; b=WOreI6XvYf1waGQ1lvDP9/SP79Illc9ewbA8qNCX62Bc4aKYDdzfQG5DhHbBFxi7WZK1qqOOwkxFnHEyEZdxg5k1AznzBzsYik/nZIRmp9daCBmnZ82Zf2ffupNZnmmwF5ntTcn/nUv3jvoCPMP/U5VUlV/EoL84VwzsU5AwGGg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610476578; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=s5mgKFMjtxL8UOIPFrajTKd7ASiN1mJ6g35FLNPKpAg=; b=fKNg+Yj+vimyOc1PQs3LG36eHzN2PAgtFvHrVKTA1UW55LpcvtWysKMGOsXVatGO2raYpN+/cVVtgdkVbJV9EDJuVI1W8wiITWIJnjzztFXUMKrSa6Kcwglm7mMjg0sT5wfSaFQHztimwSbrDNrb9ryE6daN1+NjwTNrJZuYN4A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by mx.zohomail.com with SMTPS id 1610476578612103.64089971197052; Tue, 12 Jan 2021 10:36:18 -0800 (PST) Received: by mail-ed1-f48.google.com with SMTP id h16so3453270edt.7 for ; Tue, 12 Jan 2021 10:36:18 -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 j9sm1801373eds.66.2021.01.12.10.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jan 2021 10:36:16 -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=s5mgKFMjtxL8UOIPFrajTKd7ASiN1mJ6g35FLNPKpAg=; b=APEjyaBzm/Du1d/Ys5l2VuIvlSxTisLqbzBMDlXcYC/JYhgqGXvmketuAr9kV2yaK+ LUCSHVoMmdD8itt2tRm0Ws9w6PUvVszR6gFABsvuhAZ0NV3YJeK0VOKkwRA/YAQpInAn L8EgFn10Q7FP1TJzVIfU+j7OWy7k1IJF97B9sQOCSoCPDBDGQ7UuTHuky7avtHvEnI4J ZfvV/2Xk21tvefzXWJ3fI3Q5LJInvAs/h4z3x8Ii3XIQyuFcWA+05V0PI8HSzbROcTFu z7lo7G+7KNY6aiEM18l3OnvtU8gcX+Jth4Q8olBJvjMfWPsMavzd+t1nm6V2+sl8bq48 JW/Q== 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=s5mgKFMjtxL8UOIPFrajTKd7ASiN1mJ6g35FLNPKpAg=; b=TwNJcRQV6uifFjQAWGf96IPfgix/2wJ5Dy+h412ilaPuLTDYEbsMxA8qeT5komseue DUD+wSEGUKCRRHpsrHtWiYtWz/2p7ItM5LaNp3IHmrUBoLnvFNBGEgm4tH1TMzuTwWkp nwdmnVS+ddiI+Arl5bkSYtC0vYNHI7C7NW1b45Dk52xV47h4oZtYd0MW1wrmdxDFNCIJ BGj+l+rJsWmCEit5wVhgupmh22vlx15vrg6bsAnoCNr38kQ/y+kw5NhueLrxevgELA6B xPueFYtEvjWgaoQhYoZvGDQzyAKreYni9xOBOLixs3V2xgnO79EgEkXzhCTadt9GoQyp 6UsQ== X-Gm-Message-State: AOAM532UMYfH5eArHR4yExCgQNjxfdMO5IfKZ+HjHh45Iu0CHuDIszAv +yO1Qluvyr/LCUY4ecDKln8= X-Google-Smtp-Source: ABdhPJwkjhG+m1UD4DrA6ECTXBpnxlTrl3X3ceYmb4EKbWvuQJLDMsFTmrgQEqnuto2LXLKicYFZ5w== X-Received: by 2002:a50:d80c:: with SMTP id o12mr364538edj.338.1610476576862; Tue, 12 Jan 2021 10:36:16 -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 06/11] hw/ssi: imx_spi: Rework imx_spi_read() to handle block disabled Date: Tue, 12 Jan 2021 19:35:24 +0100 Message-Id: <20210112183529.2011863-7-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, it stay it is 'internal reset logic' (internal clocks are gated off). Reading any register returns its reset value. Only update this value if the device is enabled. 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 Reviewed-by: Juan Quintela --- hw/ssi/imx_spi.c | 60 +++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c index 96aecc8fa28..7ac9da0f1d2 100644 --- a/hw/ssi/imx_spi.c +++ b/hw/ssi/imx_spi.c @@ -270,42 +270,40 @@ static uint64_t imx_spi_read(void *opaque, hwaddr off= set, unsigned size) return 0; } =20 - switch (index) { - case ECSPI_RXDATA: - if (!imx_spi_is_enabled(s)) { - value =3D 0; - } else if (fifo32_is_empty(&s->rx_fifo)) { - /* value is undefined */ - value =3D 0xdeadbeef; - } else { - /* read from the RX FIFO */ - value =3D fifo32_pop(&s->rx_fifo); + value =3D s->regs[index]; + + if (imx_spi_is_enabled(s)) { + switch (index) { + case ECSPI_RXDATA: + if (fifo32_is_empty(&s->rx_fifo)) { + /* value is undefined */ + value =3D 0xdeadbeef; + } else { + /* read from the RX FIFO */ + value =3D fifo32_pop(&s->rx_fifo); + } + break; + case ECSPI_TXDATA: + qemu_log_mask(LOG_GUEST_ERROR, + "[%s]%s: Trying to read from TX FIFO\n", + TYPE_IMX_SPI, __func__); + + /* Reading from TXDATA gives 0 */ + break; + case ECSPI_MSGDATA: + qemu_log_mask(LOG_GUEST_ERROR, + "[%s]%s: Trying to read from MSG FIFO\n", + TYPE_IMX_SPI, __func__); + /* Reading from MSGDATA gives 0 */ + break; + default: + break; } =20 - break; - case ECSPI_TXDATA: - qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Trying to read from TX FIF= O\n", - TYPE_IMX_SPI, __func__); - - /* Reading from TXDATA gives 0 */ - - break; - case ECSPI_MSGDATA: - qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Trying to read from MSG FI= FO\n", - TYPE_IMX_SPI, __func__); - - /* Reading from MSGDATA gives 0 */ - - break; - default: - value =3D s->regs[index]; - break; + imx_spi_update_irq(s); } - trace_imx_spi_read(index, imx_spi_reg_name(index), value); =20 - imx_spi_update_irq(s); - return (uint64_t)value; } =20 --=20 2.26.2