summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Le Goater2020-09-01 14:21:50 +0200
committerCédric Le Goater2020-09-01 14:21:50 +0200
commitcf9f48d323cee4f3fc93ea8c292ecea8115b0eef (patch)
treef47a862913b3743af2d654e952560575989ab906
parentftgmac100: Fix interrupt status "Packet transmitted on ethernet" (diff)
downloadqemu-cf9f48d323cee4f3fc93ea8c292ecea8115b0eef.tar.gz
qemu-cf9f48d323cee4f3fc93ea8c292ecea8115b0eef.tar.xz
qemu-cf9f48d323cee4f3fc93ea8c292ecea8115b0eef.zip
ftgmac100: Fix interrupt status "Packet moved to RX FIFO"
As we don't model the RX or TX FIFO, raise the "Packet moved to RX FIFO" interrupt status bit as soon as we are handling a RX packet. Cc: Frederic Konrad <konrad.frederic@yahoo.fr> Reviewed-by: Joel Stanley <joel@jms.id.au> Message-Id: <20200819100956.2216690-12-clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@kaod.org>
-rw-r--r--hw/net/ftgmac100.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/hw/net/ftgmac100.c b/hw/net/ftgmac100.c
index aa3c05ef98..5c0fe2d8cb 100644
--- a/hw/net/ftgmac100.c
+++ b/hw/net/ftgmac100.c
@@ -950,6 +950,7 @@ static ssize_t ftgmac100_receive(NetClientState *nc, const uint8_t *buf,
break;
}
+ s->isr |= FTGMAC100_INT_RPKT_FIFO;
addr = s->rx_descriptor;
while (size > 0) {
if (!ftgmac100_can_receive(nc)) {
@@ -1001,8 +1002,6 @@ static ssize_t ftgmac100_receive(NetClientState *nc, const uint8_t *buf,
/* Last buffer in frame. */
bd.des0 |= flags | FTGMAC100_RXDES0_LRS;
s->isr |= FTGMAC100_INT_RPKT_BUF;
- } else {
- s->isr |= FTGMAC100_INT_RPKT_FIFO;
}
ftgmac100_write_bd(&bd, addr);
if (bd.des0 & s->rxdes0_edorr) {