e1000: remove old compatibility code
This code is not needed anymore in the supported machine types. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7191f24c7f
commit
fa4ec9ffda
@ -127,13 +127,9 @@ struct E1000State_st {
|
||||
QEMUTimer *flush_queue_timer;
|
||||
|
||||
/* Compatibility flags for migration to/from qemu 1.3.0 and older */
|
||||
#define E1000_FLAG_AUTONEG_BIT 0
|
||||
#define E1000_FLAG_MIT_BIT 1
|
||||
#define E1000_FLAG_MAC_BIT 2
|
||||
#define E1000_FLAG_TSO_BIT 3
|
||||
#define E1000_FLAG_VET_BIT 4
|
||||
#define E1000_FLAG_AUTONEG (1 << E1000_FLAG_AUTONEG_BIT)
|
||||
#define E1000_FLAG_MIT (1 << E1000_FLAG_MIT_BIT)
|
||||
#define E1000_FLAG_MAC (1 << E1000_FLAG_MAC_BIT)
|
||||
#define E1000_FLAG_TSO (1 << E1000_FLAG_TSO_BIT)
|
||||
#define E1000_FLAG_VET (1 << E1000_FLAG_VET_BIT)
|
||||
@ -180,7 +176,7 @@ e1000_autoneg_done(E1000State *s)
|
||||
static bool
|
||||
have_autoneg(E1000State *s)
|
||||
{
|
||||
return chkflag(AUTONEG) && (s->phy_reg[MII_BMCR] & MII_BMCR_AUTOEN);
|
||||
return (s->phy_reg[MII_BMCR] & MII_BMCR_AUTOEN);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -308,35 +304,34 @@ set_interrupt_cause(E1000State *s, int index, uint32_t val)
|
||||
if (s->mit_timer_on) {
|
||||
return;
|
||||
}
|
||||
if (chkflag(MIT)) {
|
||||
/* Compute the next mitigation delay according to pending
|
||||
* interrupts and the current values of RADV (provided
|
||||
* RDTR!=0), TADV and ITR.
|
||||
* Then rearm the timer.
|
||||
*/
|
||||
mit_delay = 0;
|
||||
if (s->mit_ide &&
|
||||
(pending_ints & (E1000_ICR_TXQE | E1000_ICR_TXDW))) {
|
||||
mit_update_delay(&mit_delay, s->mac_reg[TADV] * 4);
|
||||
}
|
||||
if (s->mac_reg[RDTR] && (pending_ints & E1000_ICS_RXT0)) {
|
||||
mit_update_delay(&mit_delay, s->mac_reg[RADV] * 4);
|
||||
}
|
||||
mit_update_delay(&mit_delay, s->mac_reg[ITR]);
|
||||
|
||||
/*
|
||||
* According to e1000 SPEC, the Ethernet controller guarantees
|
||||
* a maximum observable interrupt rate of 7813 interrupts/sec.
|
||||
* Thus if mit_delay < 500 then the delay should be set to the
|
||||
* minimum delay possible which is 500.
|
||||
*/
|
||||
mit_delay = (mit_delay < 500) ? 500 : mit_delay;
|
||||
|
||||
s->mit_timer_on = 1;
|
||||
timer_mod(s->mit_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) +
|
||||
mit_delay * 256);
|
||||
s->mit_ide = 0;
|
||||
/* Compute the next mitigation delay according to pending
|
||||
* interrupts and the current values of RADV (provided
|
||||
* RDTR!=0), TADV and ITR.
|
||||
* Then rearm the timer.
|
||||
*/
|
||||
mit_delay = 0;
|
||||
if (s->mit_ide &&
|
||||
(pending_ints & (E1000_ICR_TXQE | E1000_ICR_TXDW))) {
|
||||
mit_update_delay(&mit_delay, s->mac_reg[TADV] * 4);
|
||||
}
|
||||
if (s->mac_reg[RDTR] && (pending_ints & E1000_ICS_RXT0)) {
|
||||
mit_update_delay(&mit_delay, s->mac_reg[RADV] * 4);
|
||||
}
|
||||
mit_update_delay(&mit_delay, s->mac_reg[ITR]);
|
||||
|
||||
/*
|
||||
* According to e1000 SPEC, the Ethernet controller guarantees
|
||||
* a maximum observable interrupt rate of 7813 interrupts/sec.
|
||||
* Thus if mit_delay < 500 then the delay should be set to the
|
||||
* minimum delay possible which is 500.
|
||||
*/
|
||||
mit_delay = (mit_delay < 500) ? 500 : mit_delay;
|
||||
|
||||
s->mit_timer_on = 1;
|
||||
timer_mod(s->mit_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) +
|
||||
mit_delay * 256);
|
||||
s->mit_ide = 0;
|
||||
}
|
||||
|
||||
s->mit_irq_level = (pending_ints != 0);
|
||||
@ -1223,9 +1218,6 @@ enum { MAC_ACCESS_PARTIAL = 1, MAC_ACCESS_FLAG_NEEDED = 2 };
|
||||
* n - flag needed
|
||||
* p - partially implenented */
|
||||
static const uint8_t mac_reg_access[0x8000] = {
|
||||
[RDTR] = markflag(MIT), [TADV] = markflag(MIT),
|
||||
[RADV] = markflag(MIT), [ITR] = markflag(MIT),
|
||||
|
||||
[IPAV] = markflag(MAC), [WUC] = markflag(MAC),
|
||||
[IP6AT] = markflag(MAC), [IP4AT] = markflag(MAC),
|
||||
[FFVT] = markflag(MAC), [WUPM] = markflag(MAC),
|
||||
@ -1394,11 +1386,6 @@ static int e1000_post_load(void *opaque, int version_id)
|
||||
E1000State *s = opaque;
|
||||
NetClientState *nc = qemu_get_queue(s->nic);
|
||||
|
||||
if (!chkflag(MIT)) {
|
||||
s->mac_reg[ITR] = s->mac_reg[RDTR] = s->mac_reg[RADV] =
|
||||
s->mac_reg[TADV] = 0;
|
||||
s->mit_irq_level = false;
|
||||
}
|
||||
s->mit_ide = 0;
|
||||
s->mit_timer_on = true;
|
||||
timer_mod(s->mit_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + 1);
|
||||
@ -1432,13 +1419,6 @@ static int e1000_tx_tso_post_load(void *opaque, int version_id)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool e1000_mit_state_needed(void *opaque)
|
||||
{
|
||||
E1000State *s = opaque;
|
||||
|
||||
return chkflag(MIT);
|
||||
}
|
||||
|
||||
static bool e1000_full_mac_needed(void *opaque)
|
||||
{
|
||||
E1000State *s = opaque;
|
||||
@ -1457,7 +1437,6 @@ static const VMStateDescription vmstate_e1000_mit_state = {
|
||||
.name = "e1000/mit_state",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.needed = e1000_mit_state_needed,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32(mac_reg[RDTR], E1000State),
|
||||
VMSTATE_UINT32(mac_reg[RADV], E1000State),
|
||||
@ -1699,10 +1678,6 @@ static void pci_e1000_realize(PCIDevice *pci_dev, Error **errp)
|
||||
|
||||
static Property e1000_properties[] = {
|
||||
DEFINE_NIC_PROPERTIES(E1000State, conf),
|
||||
DEFINE_PROP_BIT("autonegotiation", E1000State,
|
||||
compat_flags, E1000_FLAG_AUTONEG_BIT, true),
|
||||
DEFINE_PROP_BIT("mitigation", E1000State,
|
||||
compat_flags, E1000_FLAG_MIT_BIT, true),
|
||||
DEFINE_PROP_BIT("extra_mac_registers", E1000State,
|
||||
compat_flags, E1000_FLAG_MAC_BIT, true),
|
||||
DEFINE_PROP_BIT("migrate_tso_props", E1000State,
|
||||
|
Loading…
Reference in New Issue
Block a user