* [net-next PATCH 2/8] igb: remove netif running call from igb_poll
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
@ 2009-03-14 6:40 ` Jeff Kirsher
2009-03-14 6:40 ` [net-next PATCH 3/8] igb: resolve warning of unused adapter struct Jeff Kirsher
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:40 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
The netif_running check in igb poll is a hold over from the use of fake
netdevs to use multiple queues with NAPI prior to 2.6.24. It is no longer
necessary to have the call there and it currently can cause errors if
work_done == budget.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/igb_main.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 230898f..28b22c3 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -4165,7 +4165,6 @@ static int igb_poll(struct napi_struct *napi, int budget)
{
struct igb_ring *rx_ring = container_of(napi, struct igb_ring, napi);
struct igb_adapter *adapter = rx_ring->adapter;
- struct net_device *netdev = adapter->netdev;
int work_done = 0;
#ifdef CONFIG_IGB_DCA
@@ -4184,7 +4183,7 @@ static int igb_poll(struct napi_struct *napi, int budget)
}
/* If not enough Rx work done, exit the polling mode */
- if ((work_done < budget) || !netif_running(netdev)) {
+ if (work_done < budget) {
napi_complete(napi);
igb_rx_irq_enable(rx_ring);
}
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 3/8] igb: resolve warning of unused adapter struct
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
2009-03-14 6:40 ` [net-next PATCH 2/8] igb: remove netif running call from igb_poll Jeff Kirsher
@ 2009-03-14 6:40 ` Jeff Kirsher
2009-03-14 6:41 ` [net-next PATCH 4/8] igb: support wol on second port Jeff Kirsher
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:40 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
If DCA is undefined then the adapter struct becomes unnecessary. To
resolve this issue the DCA calls can simply make a call to the adapter
struct through the rx_ring adapter struct member.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/igb_main.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 28b22c3..d83d30e 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -4164,18 +4164,17 @@ static inline void igb_rx_irq_enable(struct igb_ring *rx_ring)
static int igb_poll(struct napi_struct *napi, int budget)
{
struct igb_ring *rx_ring = container_of(napi, struct igb_ring, napi);
- struct igb_adapter *adapter = rx_ring->adapter;
int work_done = 0;
#ifdef CONFIG_IGB_DCA
- if (adapter->flags & IGB_FLAG_DCA_ENABLED)
+ if (rx_ring->adapter->flags & IGB_FLAG_DCA_ENABLED)
igb_update_rx_dca(rx_ring);
#endif
igb_clean_rx_irq_adv(rx_ring, &work_done, budget);
if (rx_ring->buddy) {
#ifdef CONFIG_IGB_DCA
- if (adapter->flags & IGB_FLAG_DCA_ENABLED)
+ if (rx_ring->adapter->flags & IGB_FLAG_DCA_ENABLED)
igb_update_tx_dca(rx_ring->buddy);
#endif
if (!igb_clean_tx_irq(rx_ring->buddy))
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 4/8] igb: support wol on second port
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
2009-03-14 6:40 ` [net-next PATCH 2/8] igb: remove netif running call from igb_poll Jeff Kirsher
2009-03-14 6:40 ` [net-next PATCH 3/8] igb: resolve warning of unused adapter struct Jeff Kirsher
@ 2009-03-14 6:41 ` Jeff Kirsher
2009-03-14 6:41 ` [net-next PATCH 5/8] igb: add PF to pool Jeff Kirsher
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:41 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
We need to support wol on the second port for situations such as when the
lan ports are on the motherboard itself.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/e1000_defines.h | 1 +
drivers/net/igb/igb_main.c | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/igb/e1000_defines.h b/drivers/net/igb/e1000_defines.h
index 62e378b..ad2d319 100644
--- a/drivers/net/igb/e1000_defines.h
+++ b/drivers/net/igb/e1000_defines.h
@@ -512,6 +512,7 @@
#define NVM_ID_LED_SETTINGS 0x0004
/* For SERDES output amplitude adjustment. */
#define NVM_INIT_CONTROL2_REG 0x000F
+#define NVM_INIT_CONTROL3_PORT_B 0x0014
#define NVM_INIT_CONTROL3_PORT_A 0x0024
#define NVM_ALT_MAC_ADDR_PTR 0x0037
#define NVM_CHECKSUM_REG 0x003F
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index d83d30e..4e2cb82 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -1329,9 +1329,10 @@ static int __devinit igb_probe(struct pci_dev *pdev,
* enable the ACPI Magic Packet filter
*/
- if (hw->bus.func == 0 ||
- hw->device_id == E1000_DEV_ID_82575EB_COPPER)
+ if (hw->bus.func == 0)
hw->nvm.ops.read(hw, NVM_INIT_CONTROL3_PORT_A, 1, &eeprom_data);
+ else if (hw->bus.func == 1)
+ hw->nvm.ops.read(hw, NVM_INIT_CONTROL3_PORT_B, 1, &eeprom_data);
if (eeprom_data & eeprom_apme_mask)
adapter->eeprom_wol |= E1000_WUFC_MAG;
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 5/8] igb: add PF to pool
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
` (2 preceding siblings ...)
2009-03-14 6:41 ` [net-next PATCH 4/8] igb: support wol on second port Jeff Kirsher
@ 2009-03-14 6:41 ` Jeff Kirsher
2009-03-14 6:41 ` [net-next PATCH 6/8] igb: correct typo that was setting vfta mask to 1 Jeff Kirsher
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:41 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
Add Pf to pool if adding a VLVF register value and the VFTA bit is
already set.
This patch addresses the unlikely situation that the PF adds a vlan
entry when the vlvf is full, and a vf later adds the vlan to the vlvf.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/e1000_mac.c | 21 ++++++++++++++-------
drivers/net/igb/e1000_mac.h | 2 +-
drivers/net/igb/igb_main.c | 9 +++++++--
3 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/drivers/net/igb/e1000_mac.c b/drivers/net/igb/e1000_mac.c
index 2804db0..f11592f 100644
--- a/drivers/net/igb/e1000_mac.c
+++ b/drivers/net/igb/e1000_mac.c
@@ -126,19 +126,26 @@ void igb_write_vfta(struct e1000_hw *hw, u32 offset, u32 value)
* Sets or clears a bit in the VLAN filter table array based on VLAN id
* and if we are adding or removing the filter
**/
-void igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add)
+s32 igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add)
{
u32 index = (vid >> E1000_VFTA_ENTRY_SHIFT) & E1000_VFTA_ENTRY_MASK;
u32 mask = 1 < (vid & E1000_VFTA_ENTRY_BIT_SHIFT_MASK);
- u32 vfta;
+ u32 vfta = array_rd32(E1000_VFTA, index);
+ s32 ret_val = 0;
- vfta = array_rd32(E1000_VFTA, index);
- if (add)
- vfta |= mask;
- else
- vfta &= ~mask;
+ /* bit was set/cleared before we started */
+ if ((!!(vfta & mask)) == add) {
+ ret_val = -E1000_ERR_CONFIG;
+ } else {
+ if (add)
+ vfta |= mask;
+ else
+ vfta &= ~mask;
+ }
igb_write_vfta(hw, index, vfta);
+
+ return ret_val;
}
/**
diff --git a/drivers/net/igb/e1000_mac.h b/drivers/net/igb/e1000_mac.h
index eccc353..a34de52 100644
--- a/drivers/net/igb/e1000_mac.h
+++ b/drivers/net/igb/e1000_mac.h
@@ -58,7 +58,7 @@ s32 igb_write_8bit_ctrl_reg(struct e1000_hw *hw, u32 reg,
void igb_clear_hw_cntrs_base(struct e1000_hw *hw);
void igb_clear_vfta(struct e1000_hw *hw);
-void igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add);
+s32 igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add);
void igb_config_collision_dist(struct e1000_hw *hw);
void igb_mta_set(struct e1000_hw *hw, u32 hash_value);
void igb_put_hw_semaphore(struct e1000_hw *hw);
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 4e2cb82..d972f91 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3873,10 +3873,15 @@ static s32 igb_vlvf_set(struct igb_adapter *adapter, u32 vid, bool add, u32 vf)
/* if !enabled we need to set this up in vfta */
if (!(reg & E1000_VLVF_VLANID_ENABLE)) {
- /* add VID to filter table */
- igb_vfta_set(hw, vid, true);
+ /* add VID to filter table, if bit already set
+ * PF must have added it outside of table */
+ if (igb_vfta_set(hw, vid, true))
+ reg |= 1 << (E1000_VLVF_POOLSEL_SHIFT +
+ adapter->vfs_allocated_count);
reg |= E1000_VLVF_VLANID_ENABLE;
}
+ reg &= ~E1000_VLVF_VLANID_MASK;
+ reg |= vid;
wr32(E1000_VLVF(i), reg);
return 0;
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 6/8] igb: correct typo that was setting vfta mask to 1
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
` (3 preceding siblings ...)
2009-03-14 6:41 ` [net-next PATCH 5/8] igb: add PF to pool Jeff Kirsher
@ 2009-03-14 6:41 ` Jeff Kirsher
2009-03-14 6:42 ` [net-next PATCH 7/8] igb: add support for another dual port 82576 non-security nic Jeff Kirsher
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:41 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
This patch corrects a typo that was doing a less than comparison instead of
a left shift due to the fact that I didn't get enough <'s in there.
This resolves an issue in which vlans were not functioning correctly.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/e1000_mac.c | 2 +-
drivers/net/igb/igb_main.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/igb/e1000_mac.c b/drivers/net/igb/e1000_mac.c
index f11592f..f4c315b 100644
--- a/drivers/net/igb/e1000_mac.c
+++ b/drivers/net/igb/e1000_mac.c
@@ -129,7 +129,7 @@ void igb_write_vfta(struct e1000_hw *hw, u32 offset, u32 value)
s32 igb_vfta_set(struct e1000_hw *hw, u32 vid, bool add)
{
u32 index = (vid >> E1000_VFTA_ENTRY_SHIFT) & E1000_VFTA_ENTRY_MASK;
- u32 mask = 1 < (vid & E1000_VFTA_ENTRY_BIT_SHIFT_MASK);
+ u32 mask = 1 << (vid & E1000_VFTA_ENTRY_BIT_SHIFT_MASK);
u32 vfta = array_rd32(E1000_VFTA, index);
s32 ret_val = 0;
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index d972f91..3f505ae 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3806,7 +3806,7 @@ static void igb_restore_vf_multicasts(struct igb_adapter *adapter)
for (i = 0; i < adapter->vfs_allocated_count; i++) {
vf_data = &adapter->vf_data[i];
- for (j = 0; j < vf_data[i].num_vf_mc_hashes; j++)
+ for (j = 0; j < vf_data->num_vf_mc_hashes; j++)
igb_mta_set(hw, vf_data->vf_mc_hashes[j]);
}
}
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 7/8] igb: add support for another dual port 82576 non-security nic
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
` (4 preceding siblings ...)
2009-03-14 6:41 ` [net-next PATCH 6/8] igb: correct typo that was setting vfta mask to 1 Jeff Kirsher
@ 2009-03-14 6:42 ` Jeff Kirsher
2009-03-14 6:42 ` [net-next PATCH 8/8] igb: add support for 82576 quad copper adapter Jeff Kirsher
2009-03-14 19:51 ` [net-next PATCH 1/8] igb: switch to new dca API David Miller
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:42 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
Adding device id to support 82576NS dual port copper
NIC.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/e1000_82575.c | 1 +
drivers/net/igb/e1000_hw.h | 1 +
drivers/net/igb/igb_main.c | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index ea63a21..adfe2e1 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -80,6 +80,7 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
mac->type = e1000_82575;
break;
case E1000_DEV_ID_82576:
+ case E1000_DEV_ID_82576_NS:
case E1000_DEV_ID_82576_FIBER:
case E1000_DEV_ID_82576_SERDES:
mac->type = e1000_82576;
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index d793dca..4db3602 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -40,6 +40,7 @@ struct e1000_hw;
#define E1000_DEV_ID_82576 0x10C9
#define E1000_DEV_ID_82576_FIBER 0x10E6
#define E1000_DEV_ID_82576_SERDES 0x10E7
+#define E1000_DEV_ID_82576_NS 0x150A
#define E1000_DEV_ID_82575EB_COPPER 0x10A7
#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 3f505ae..0997370 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -62,6 +62,7 @@ static const struct e1000_info *igb_info_tbl[] = {
static struct pci_device_id igb_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
^ permalink raw reply related [flat|nested] 9+ messages in thread* [net-next PATCH 8/8] igb: add support for 82576 quad copper adapter
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
` (5 preceding siblings ...)
2009-03-14 6:42 ` [net-next PATCH 7/8] igb: add support for another dual port 82576 non-security nic Jeff Kirsher
@ 2009-03-14 6:42 ` Jeff Kirsher
2009-03-14 19:51 ` [net-next PATCH 1/8] igb: switch to new dca API David Miller
7 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2009-03-14 6:42 UTC (permalink / raw)
To: davem; +Cc: netdev, gospo, Alexander Duyck, Jesse Brandeburg, Jeff Kirsher
From: Alexander Duyck <alexander.h.duyck@intel.com>
Add support for 82576 copper adapter and necessary code to restrict wol for
quad port adapter to first port.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/igb/e1000_82575.c | 1 +
drivers/net/igb/e1000_hw.h | 1 +
drivers/net/igb/igb_ethtool.c | 9 +++++++++
drivers/net/igb/igb_main.c | 11 +++++++++++
4 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index adfe2e1..efd9be2 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -83,6 +83,7 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
case E1000_DEV_ID_82576_NS:
case E1000_DEV_ID_82576_FIBER:
case E1000_DEV_ID_82576_SERDES:
+ case E1000_DEV_ID_82576_QUAD_COPPER:
mac->type = e1000_82576;
break;
default:
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index 4db3602..68aac20 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -40,6 +40,7 @@ struct e1000_hw;
#define E1000_DEV_ID_82576 0x10C9
#define E1000_DEV_ID_82576_FIBER 0x10E6
#define E1000_DEV_ID_82576_SERDES 0x10E7
+#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
#define E1000_DEV_ID_82576_NS 0x150A
#define E1000_DEV_ID_82575EB_COPPER 0x10A7
#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index 34a8a0f..fb09c8a 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -1779,6 +1779,15 @@ static int igb_wol_exclusion(struct igb_adapter *adapter,
/* return success for non excluded adapter ports */
retval = 0;
break;
+ case E1000_DEV_ID_82576_QUAD_COPPER:
+ /* quad port adapters only support WoL on port A */
+ if (!(adapter->flags & IGB_FLAG_QUAD_PORT_A)) {
+ wol->supported = 0;
+ break;
+ }
+ /* return success for non excluded adapter ports */
+ retval = 0;
+ break;
default:
/* dual port cards only support WoL on port A from now on
* unless it was enabled in the eeprom for port B
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 0997370..7c4481b 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -65,6 +65,7 @@ static struct pci_device_id igb_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
+ { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_QUAD_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 },
@@ -1353,6 +1354,16 @@ static int __devinit igb_probe(struct pci_dev *pdev,
if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1)
adapter->eeprom_wol = 0;
break;
+ case E1000_DEV_ID_82576_QUAD_COPPER:
+ /* if quad port adapter, disable WoL on all but port A */
+ if (global_quad_port_a != 0)
+ adapter->eeprom_wol = 0;
+ else
+ adapter->flags |= IGB_FLAG_QUAD_PORT_A;
+ /* Reset for multiple quad port adapters */
+ if (++global_quad_port_a == 4)
+ global_quad_port_a = 0;
+ break;
}
/* initialize the wol settings based on the eeprom settings */
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [net-next PATCH 1/8] igb: switch to new dca API
2009-03-14 6:40 [net-next PATCH 1/8] igb: switch to new dca API Jeff Kirsher
` (6 preceding siblings ...)
2009-03-14 6:42 ` [net-next PATCH 8/8] igb: add support for 82576 quad copper adapter Jeff Kirsher
@ 2009-03-14 19:51 ` David Miller
7 siblings, 0 replies; 9+ messages in thread
From: David Miller @ 2009-03-14 19:51 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, maciej.sosnowski
All 8 patches applied.
^ permalink raw reply [flat|nested] 9+ messages in thread