[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 2/8] hw/i2c: Read FIFO during RXF_CTL change in NPCM7XX SMBus
From: |
Hao Wu |
Subject: |
[PATCH v5 2/8] hw/i2c: Read FIFO during RXF_CTL change in NPCM7XX SMBus |
Date: |
Thu, 14 Jul 2022 11:28:30 -0700 |
Originally we read in from SMBus when RXF_STS is cleared. However,
the driver clears RXF_STS before setting RXF_CTL, causing the SM bus
module to read incorrect amount of bytes in FIFO mode when the number
of bytes read changed. This patch fixes this issue.
Signed-off-by: Hao Wu <wuhaotsh@google.com>
Reviewed-by: Titus Rwantare <titusr@google.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
---
hw/i2c/npcm7xx_smbus.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/i2c/npcm7xx_smbus.c b/hw/i2c/npcm7xx_smbus.c
index f18e311556..1435daea94 100644
--- a/hw/i2c/npcm7xx_smbus.c
+++ b/hw/i2c/npcm7xx_smbus.c
@@ -637,9 +637,6 @@ static void npcm7xx_smbus_write_rxf_sts(NPCM7xxSMBusState
*s, uint8_t value)
{
if (value & NPCM7XX_SMBRXF_STS_RX_THST) {
s->rxf_sts &= ~NPCM7XX_SMBRXF_STS_RX_THST;
- if (s->status == NPCM7XX_SMBUS_STATUS_RECEIVING) {
- npcm7xx_smbus_recv_fifo(s);
- }
}
}
@@ -651,6 +648,9 @@ static void npcm7xx_smbus_write_rxf_ctl(NPCM7xxSMBusState
*s, uint8_t value)
new_ctl = KEEP_OLD_BIT(s->rxf_ctl, new_ctl, NPCM7XX_SMBRXF_CTL_LAST);
}
s->rxf_ctl = new_ctl;
+ if (s->status == NPCM7XX_SMBUS_STATUS_RECEIVING) {
+ npcm7xx_smbus_recv_fifo(s);
+ }
}
static uint64_t npcm7xx_smbus_read(void *opaque, hwaddr offset, unsigned size)
--
2.37.0.170.g444d1eabd0-goog
- [PATCH v5 0/8] Misc NPCM7XX patches, Hao Wu, 2022/07/14
- [PATCH v5 1/8] hw/i2c: Clear ACK bit in NPCM7xx SMBus module, Hao Wu, 2022/07/14
- [PATCH v5 2/8] hw/i2c: Read FIFO during RXF_CTL change in NPCM7XX SMBus,
Hao Wu <=
- [PATCH v5 3/8] hw/adc: Fix CONV bit in NPCM7XX ADC CON register, Hao Wu, 2022/07/14
- [PATCH v5 4/8] hw/adc: Make adci[*] R/W in NPCM7XX ADC, Hao Wu, 2022/07/14
- [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Hao Wu, 2022/07/14
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Markus Armbruster, 2022/07/18
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Thomas Huth, 2022/07/18
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Kevin Wolf, 2022/07/27
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Peter Maydell, 2022/07/28
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Kevin Wolf, 2022/07/28
- Re: [PATCH v5 5/8] blockdev: Add a new IF type IF_OTHER, Peter Maydell, 2022/07/28