diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c index 548bf90a..1bca87bc 100644 --- a/src/drivers/net/intel.c +++ b/src/drivers/net/intel.c @@ -295,7 +295,9 @@ static int intel_reset ( struct intel_nic *intel ) { mdelay ( INTEL_RESET_DELAY_MS ); /* Set a sensible default configuration */ - ctrl |= ( INTEL_CTRL_SLU | INTEL_CTRL_ASDE ); + if ( ! ( intel->flags & INTEL_NO_ASDE ) ) + ctrl |= INTEL_CTRL_ASDE; + ctrl |= INTEL_CTRL_SLU; ctrl &= ~( INTEL_CTRL_LRST | INTEL_CTRL_FRCSPD | INTEL_CTRL_FRCDPLX ); writel ( ctrl, intel->regs + INTEL_CTRL ); mdelay ( INTEL_RESET_DELAY_MS ); @@ -1110,7 +1112,7 @@ static struct pci_device_id intel_nics[] = { PCI_ROM ( 0x8086, 0x1518, "82576ns", "82576NS SerDes", 0 ), PCI_ROM ( 0x8086, 0x1521, "i350", "I350", 0 ), PCI_ROM ( 0x8086, 0x1522, "i350-f", "I350 Fiber", 0 ), - PCI_ROM ( 0x8086, 0x1523, "i350-b", "I350 Backplane", 0 ), + PCI_ROM ( 0x8086, 0x1523, "i350-b", "I350 Backplane", INTEL_NO_ASDE ), PCI_ROM ( 0x8086, 0x1524, "i350-2", "I350", 0 ), PCI_ROM ( 0x8086, 0x1525, "82567v-4", "82567V-4", 0 ), PCI_ROM ( 0x8086, 0x1526, "82576-5", "82576", 0 ), diff --git a/src/drivers/net/intel.h b/src/drivers/net/intel.h index 630eaf84..14877687 100644 --- a/src/drivers/net/intel.h +++ b/src/drivers/net/intel.h @@ -306,6 +306,8 @@ enum intel_flags { INTEL_VMWARE = 0x0002, /** PHY reset is broken */ INTEL_NO_PHY_RST = 0x0004, + /** ASDE is broken */ + INTEL_NO_ASDE = 0x0008, }; /**