[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] e1000: Do reset when E1000_CTRL_RST bit is set.
From: |
Anthony PERARD |
Subject: |
[Qemu-devel] [PATCH] e1000: Do reset when E1000_CTRL_RST bit is set. |
Date: |
Fri, 5 Aug 2011 15:36:15 +0100 |
Signed-off-by: Anthony PERARD <address@hidden>
---
hw/e1000.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/hw/e1000.c b/hw/e1000.c
index 96d84f9..a1388e9 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -150,6 +150,8 @@ static const char phy_regcap[0x20] = {
[PHY_ID2] = PHY_R, [M88E1000_PHY_SPEC_STATUS] = PHY_R
};
+static void e1000_reset(void *opaque);
+
static void
ioport_map(PCIDevice *pci_dev, int region_num, pcibus_t addr,
pcibus_t size, int type)
@@ -202,8 +204,12 @@ rxbufsize(uint32_t v)
static void
set_ctrl(E1000State *s, int index, uint32_t val)
{
- /* RST is self clearing */
- s->mac_reg[CTRL] = val & ~E1000_CTRL_RST;
+ DBGOUT(IO, "set ctrl = %08x\n", val);
+ if (val & E1000_CTRL_RST) {
+ e1000_reset(s);
+ return;
+ }
+ s->mac_reg[CTRL] = val;
}
static void
--
Anthony PERARD
- [Qemu-devel] [PATCH] e1000: Do reset when E1000_CTRL_RST bit is set.,
Anthony PERARD <=