From: Bin Meng <bmeng.cn@gmail.com>
To: "Peter Maydell" <peter.maydell@linaro.org>,
"Jean-Christophe Dubois" <jcd@tribudubois.net>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
qemu-arm@nongnu.org, qemu-devel@nongnu.org
Cc: Bin Meng <bin.meng@windriver.com>
Subject: [PATCH v3 3/6] hw/ssi: imx_spi: Remove imx_spi_update_irq() in imx_spi_reset()
Date: Sat, 9 Jan 2021 20:35:42 +0800 [thread overview]
Message-ID: <20210109123545.12001-4-bmeng.cn@gmail.com> (raw)
In-Reply-To: <20210109123545.12001-1-bmeng.cn@gmail.com>
From: Bin Meng <bin.meng@windriver.com>
Usually the approach is that the device on the other end of the line
is going to reset its state anyway, so there's no need to actively
signal an irq line change during the reset hook.
Move imx_spi_update_irq() out of imx_spi_reset(), along with the
disabling of chip selects, to a new function imx_spi_soft_reset()
that is called when the controller is disabled.
Signed-off-by: Bin Meng <bin.meng@windriver.com>
---
Changes in v3:
- new patch: remove imx_spi_update_irq() in imx_spi_reset()
hw/ssi/imx_spi.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c
index 8d429e703f..880939f595 100644
--- a/hw/ssi/imx_spi.c
+++ b/hw/ssi/imx_spi.c
@@ -241,9 +241,20 @@ static void imx_spi_reset(DeviceState *dev)
imx_spi_rxfifo_reset(s);
imx_spi_txfifo_reset(s);
+ s->burst_length = 0;
+}
+
+static void imx_spi_soft_reset(IMXSPIState *s)
+{
+ int i;
+
+ imx_spi_reset(DEVICE(s));
+
imx_spi_update_irq(s);
- s->burst_length = 0;
+ for (i = 0; i < ECSPI_NUM_CS; i++) {
+ qemu_set_irq(s->cs_lines[i], 1);
+ }
}
static uint64_t imx_spi_read(void *opaque, hwaddr offset, unsigned size)
@@ -351,12 +362,8 @@ static void imx_spi_write(void *opaque, hwaddr offset, uint64_t value,
s->regs[ECSPI_CONREG] = value;
if (!imx_spi_is_enabled(s)) {
- /* device is disabled, so this is a reset */
- imx_spi_reset(DEVICE(s));
-
- for (int i = 0; i < ECSPI_NUM_CS; i++) {
- qemu_set_irq(s->cs_lines[i], 1);
- }
+ /* device is disabled, so this is a soft reset */
+ imx_spi_soft_reset(s);
return;
}
--
2.25.1
next prev parent reply other threads:[~2021-01-09 12:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-09 12:35 [PATCH v3 0/6] hw/ssi: imx_spi: Fix various bugs in the imx_spi model Bin Meng
2021-01-09 12:35 ` [PATCH v3 1/6] hw/ssi: imx_spi: Use a macro for number of chip selects supported Bin Meng
2021-01-09 23:45 ` Philippe Mathieu-Daudé
2021-01-09 12:35 ` [PATCH v3 2/6] hw/ssi: imx_spi: Disable chip selects when controller is disabled Bin Meng
2021-01-09 23:48 ` Philippe Mathieu-Daudé
2021-01-09 12:35 ` Bin Meng [this message]
2021-01-09 23:53 ` [PATCH v3 3/6] hw/ssi: imx_spi: Remove imx_spi_update_irq() in imx_spi_reset() Philippe Mathieu-Daudé
2021-01-10 1:41 ` Bin Meng
2021-01-09 12:35 ` [PATCH v3 4/6] hw/ssi: imx_spi: Log unimplemented burst length Bin Meng
2021-01-09 23:55 ` Philippe Mathieu-Daudé
2021-01-09 12:35 ` [PATCH v3 5/6] hw/ssi: imx_spi: Correct the burst length > 32 bit transfer logic Bin Meng
2021-01-09 12:35 ` [PATCH v3 6/6] hw/ssi: imx_spi: Correct tx and rx fifo endianness Bin Meng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210109123545.12001-4-bmeng.cn@gmail.com \
--to=bmeng.cn@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=bin.meng@windriver.com \
--cc=f4bug@amsat.org \
--cc=jcd@tribudubois.net \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).