e1000: conditionally raise irq at the end of MDI cycle

According to the spec:

"When set to 1b by software, it causes an Interrupt to be
asserted to indicate the end of an MDI cycle."

We need check the Interrupt Enable bit and raise irq only when it is
set.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Jason Wang 2012-03-22 18:01:50 +08:00 committed by Michael S. Tsirkin
parent 2e54cc21ad
commit 17fbbb0b3d
1 changed files with 4 additions and 1 deletions

View File

@ -274,7 +274,10 @@ set_mdic(E1000State *s, int index, uint32_t val)
s->phy_reg[addr] = data;
}
s->mac_reg[MDIC] = val | E1000_MDIC_READY;
set_ics(s, 0, E1000_ICR_MDAC);
if (val & E1000_MDIC_INT_EN) {
set_ics(s, 0, E1000_ICR_MDAC);
}
}
static uint32_t