diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2008-07-21 22:44:01 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-22 17:51:12 -0400 |
commit | 623621b07ebc5b72e0bdfa4a50bbb28f4587de0c (patch) | |
tree | a6e472bfa084e79f912ca1b6dcc06dd61332669f /drivers/net/netxen/netxen_nic_main.c | |
parent | 7830b22cbc5f5e804469b74a3fe0d3a8ed88ca31 (diff) |
netxen: hw multicast filtering
Enable multicast address filtering capabilities in the hardware.
Upto 16 multicast addresses can be programmed for each physical
port. Support "allmulti" mode, if enabled.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_main.c')
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 91b02ebc9a10..0ec6e7ebf90f 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -377,6 +377,8 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
377 | adapter->portnum = pci_func_id; | 377 | adapter->portnum = pci_func_id; |
378 | adapter->status &= ~NETXEN_NETDEV_STATUS; | 378 | adapter->status &= ~NETXEN_NETDEV_STATUS; |
379 | adapter->rx_csum = 1; | 379 | adapter->rx_csum = 1; |
380 | adapter->max_mc_count = 16; | ||
381 | adapter->mc_enabled = 0; | ||
380 | 382 | ||
381 | netdev->open = netxen_nic_open; | 383 | netdev->open = netxen_nic_open; |
382 | netdev->stop = netxen_nic_close; | 384 | netdev->stop = netxen_nic_close; |
@@ -589,6 +591,14 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
589 | msleep(1); | 591 | msleep(1); |
590 | netxen_load_firmware(adapter); | 592 | netxen_load_firmware(adapter); |
591 | netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); | 593 | netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE); |
594 | |||
595 | /* Initialize multicast addr pool owners */ | ||
596 | val = 0x7654; | ||
597 | if (adapter->ahw.board_type == NETXEN_NIC_XGBE) | ||
598 | val |= 0x0f000000; | ||
599 | netxen_crb_writelit_adapter(adapter, | ||
600 | NETXEN_MAC_ADDR_CNTL_REG, val); | ||
601 | |||
592 | } | 602 | } |
593 | 603 | ||
594 | /* clear the register for future unloads/loads */ | 604 | /* clear the register for future unloads/loads */ |