aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen
diff options
context:
space:
mode:
authorDhananjay Phadke <dhananjay@netxen.com>2009-02-12 19:41:14 -0500
committerDavid S. Miller <davem@davemloft.net>2009-02-12 19:41:14 -0500
commitacdb602fb3b7e13f3ffd2098549fab1bbfccba2f (patch)
tree0d72a4bd470625d9188f23902fbee217f75c42a3 /drivers/net/netxen
parentcff71e89a8bd1175962b603f88f333883726b851 (diff)
netxen: remove pcie workaround
Remove workaround for pcie bug in early revisions of NX3031 (rev 41 or earlier). This is taken care of during firmware init. The workaround required writing pcie config reg of every pcie function on a card, not all of which are enabled. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen')
-rw-r--r--drivers/net/netxen/netxen_nic_main.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 3b17a793614..e02fe5ad215 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -372,67 +372,6 @@ static void netxen_set_port_mode(struct netxen_adapter *adapter)
372 } 372 }
373} 373}
374 374
375#define PCI_CAP_ID_GEN 0x10
376
377static void netxen_pcie_strap_init(struct netxen_adapter *adapter)
378{
379 u32 pdevfuncsave;
380 u32 c8c9value = 0;
381 u32 chicken = 0;
382 u32 control = 0;
383 int i, pos;
384 struct pci_dev *pdev;
385
386 pdev = adapter->pdev;
387
388 adapter->hw_read_wx(adapter,
389 NETXEN_PCIE_REG(PCIE_CHICKEN3), &chicken, 4);
390 /* clear chicken3.25:24 */
391 chicken &= 0xFCFFFFFF;
392 /*
393 * if gen1 and B0, set F1020 - if gen 2, do nothing
394 * if gen2 set to F1000
395 */
396 pos = pci_find_capability(pdev, PCI_CAP_ID_GEN);
397 if (pos == 0xC0) {
398 pci_read_config_dword(pdev, pos + 0x10, &control);
399 if ((control & 0x000F0000) != 0x00020000) {
400 /* set chicken3.24 if gen1 */
401 chicken |= 0x01000000;
402 }
403 printk(KERN_INFO "%s Gen2 strapping detected\n",
404 netxen_nic_driver_name);
405 c8c9value = 0xF1000;
406 } else {
407 /* set chicken3.24 if gen1 */
408 chicken |= 0x01000000;
409 printk(KERN_INFO "%s Gen1 strapping detected\n",
410 netxen_nic_driver_name);
411 if (adapter->ahw.revision_id == NX_P3_B0)
412 c8c9value = 0xF1020;
413 else
414 c8c9value = 0;
415
416 }
417 adapter->hw_write_wx(adapter,
418 NETXEN_PCIE_REG(PCIE_CHICKEN3), &chicken, 4);
419
420 if (!c8c9value)
421 return;
422
423 pdevfuncsave = pdev->devfn;
424 if (pdevfuncsave & 0x07)
425 return;
426
427 for (i = 0; i < 8; i++) {
428 pci_read_config_dword(pdev, pos + 8, &control);
429 pci_read_config_dword(pdev, pos + 8, &control);
430 pci_write_config_dword(pdev, pos + 8, c8c9value);
431 pdev->devfn++;
432 }
433 pdev->devfn = pdevfuncsave;
434}
435
436static void netxen_set_msix_bit(struct pci_dev *pdev, int enable) 375static void netxen_set_msix_bit(struct pci_dev *pdev, int enable)
437{ 376{
438 u32 control; 377 u32 control;
@@ -812,9 +751,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
812 } 751 }
813 netxen_load_firmware(adapter); 752 netxen_load_firmware(adapter);
814 753
815 if (NX_IS_REVISION_P3(revision_id))
816 netxen_pcie_strap_init(adapter);
817
818 if (NX_IS_REVISION_P2(revision_id)) { 754 if (NX_IS_REVISION_P2(revision_id)) {
819 755
820 /* Initialize multicast addr pool owners */ 756 /* Initialize multicast addr pool owners */