diff options
author | Michael Davidsaver <mdavidsaver@gmail.com> | 2018-07-12 14:00:52 -0700 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-07-16 11:18:09 +1000 |
commit | fd8e3381a00feb1e9878f6a3e2de11295f041f67 (patch) | |
tree | f203043baa4c09ee0679fbc0702514cb0a3272e0 /hw/net/fsl_etsec/etsec.h | |
parent | b585395b655a6c1f9d9ebf1f0890e76d0708eed6 (diff) |
etsec: fix IRQ (un)masking
Interrupt conditions occurring while masked are not being
signaled when later unmasked.
The fix is to raise/lower IRQs when IMASK is changed.
To avoid problems like this in future, consolidate
IRQ pin update logic in one function.
Also fix probable typo "IEVENT_TXF | IEVENT_TXF",
and update IRQ pins on reset.
Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/net/fsl_etsec/etsec.h')
-rw-r--r-- | hw/net/fsl_etsec/etsec.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/net/fsl_etsec/etsec.h b/hw/net/fsl_etsec/etsec.h index 30c828e241..877988572e 100644 --- a/hw/net/fsl_etsec/etsec.h +++ b/hw/net/fsl_etsec/etsec.h @@ -163,6 +163,8 @@ DeviceState *etsec_create(hwaddr base, qemu_irq rx_irq, qemu_irq err_irq); +void etsec_update_irq(eTSEC *etsec); + void etsec_walk_tx_ring(eTSEC *etsec, int ring_nbr); void etsec_walk_rx_ring(eTSEC *etsec, int ring_nbr); ssize_t etsec_rx_ring_write(eTSEC *etsec, const uint8_t *buf, size_t size); |