diff options
author | Amit S. Kale <amitkale@netxen.com> | 2007-02-05 10:35:26 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-06 19:08:03 -0500 |
commit | 1fcca1a5fc81689d191b7132318970c969b4b635 (patch) | |
tree | 1145d6760e25c3a94532608d6115c41667921dc6 | |
parent | 8d5ca6ec4e5c7208fe90aaecab9544bf8c08f0dc (diff) |
NetXen: Firmware crb init changes.
NetXen: firmware crb init changes.
Signed-off-by: Amit S. Kale <amitkale@netxen.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/netxen/netxen_nic_init.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index 973af96337a9..00d0524fef13 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
@@ -110,6 +110,7 @@ static void crb_addr_transform_setup(void) | |||
110 | crb_addr_transform(CAM); | 110 | crb_addr_transform(CAM); |
111 | crb_addr_transform(C2C1); | 111 | crb_addr_transform(C2C1); |
112 | crb_addr_transform(C2C0); | 112 | crb_addr_transform(C2C0); |
113 | crb_addr_transform(SMB); | ||
113 | } | 114 | } |
114 | 115 | ||
115 | int netxen_init_firmware(struct netxen_adapter *adapter) | 116 | int netxen_init_firmware(struct netxen_adapter *adapter) |
@@ -543,9 +544,13 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | |||
543 | } | 544 | } |
544 | for (i = 0; i < n; i++) { | 545 | for (i = 0; i < n; i++) { |
545 | 546 | ||
546 | off = | 547 | off = netxen_decode_crb_addr((unsigned long)buf[i].addr); |
547 | netxen_decode_crb_addr((unsigned long)buf[i].addr) + | 548 | if (off == NETXEN_ADDR_ERROR) { |
548 | NETXEN_PCI_CRBSPACE; | 549 | printk(KERN_ERR"CRB init value out of range %lx\n", |
550 | buf[i].addr); | ||
551 | continue; | ||
552 | } | ||
553 | off += NETXEN_PCI_CRBSPACE; | ||
549 | /* skipping cold reboot MAGIC */ | 554 | /* skipping cold reboot MAGIC */ |
550 | if (off == NETXEN_CAM_RAM(0x1fc)) | 555 | if (off == NETXEN_CAM_RAM(0x1fc)) |
551 | continue; | 556 | continue; |
@@ -662,6 +667,7 @@ void netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val) | |||
662 | int loops = 0; | 667 | int loops = 0; |
663 | 668 | ||
664 | if (!pegtune_val) { | 669 | if (!pegtune_val) { |
670 | val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); | ||
665 | while (val != PHAN_INITIALIZE_COMPLETE && loops < 200000) { | 671 | while (val != PHAN_INITIALIZE_COMPLETE && loops < 200000) { |
666 | udelay(100); | 672 | udelay(100); |
667 | schedule(); | 673 | schedule(); |