aboutsummaryrefslogtreecommitdiff
path: root/hw/net/fsl_etsec/etsec.h
diff options
context:
space:
mode:
authorMichael Davidsaver <mdavidsaver@gmail.com>2018-07-12 14:00:52 -0700
committerDavid Gibson <david@gibson.dropbear.id.au>2018-07-16 11:18:09 +1000
commitfd8e3381a00feb1e9878f6a3e2de11295f041f67 (patch)
treef203043baa4c09ee0679fbc0702514cb0a3272e0 /hw/net/fsl_etsec/etsec.h
parentb585395b655a6c1f9d9ebf1f0890e76d0708eed6 (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.h2
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);