aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic_init.c
diff options
context:
space:
mode:
authorAmit Kumar Salecha <amit@netxen.com>2009-10-13 01:31:41 -0400
committerDavid S. Miller <davem@davemloft.net>2009-10-13 14:48:19 -0400
commit1f5e055db369a5d1c74174571585a4ec2e6c40fb (patch)
treeef35e48957f02d9f1b461bd82bbd36745cf8de63 /drivers/net/netxen/netxen_nic_init.c
parent89d71a66c40d629e3b1285def543ab1425558cd5 (diff)
netxen: remove sub 64-bit mem accesses
Sub 64-bit / unaligned access to oncard memory was only used by old diagnostic tools, causes some intermittent issues when memory controller agent is used. The new access method was added by commit ea6828b8aa3a8ebae8d7740f32f212ba1d2f0742 ("netxen: improve pci memory access"). Firmware init anyway uses 8-byte strides. This also fixes address/offset calculation for NX2031 context memory (SIU). For NX3031, SIU uses same register offsets as packet memory (MIU). Signed-off-by: Amit Kumar Salecha <amit@netxen.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_init.c')
-rw-r--r--drivers/net/netxen/netxen_nic_init.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index 91c2bc61c8eb..424b456c5c82 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -702,7 +702,10 @@ netxen_load_firmware(struct netxen_adapter *adapter)
702 702
703 for (i = 0; i < size; i++) { 703 for (i = 0; i < size; i++) {
704 data = cpu_to_le64(ptr64[i]); 704 data = cpu_to_le64(ptr64[i]);
705 adapter->pci_mem_write(adapter, flashaddr, &data, 8); 705 if (adapter->pci_mem_write(adapter,
706 flashaddr, data))
707 return -EIO;
708
706 flashaddr += 8; 709 flashaddr += 8;
707 } 710 }
708 711
@@ -716,7 +719,7 @@ netxen_load_firmware(struct netxen_adapter *adapter)
716 data = cpu_to_le64(ptr64[i]); 719 data = cpu_to_le64(ptr64[i]);
717 720
718 if (adapter->pci_mem_write(adapter, 721 if (adapter->pci_mem_write(adapter,
719 flashaddr, &data, 8)) 722 flashaddr, data))
720 return -EIO; 723 return -EIO;
721 724
722 flashaddr += 8; 725 flashaddr += 8;
@@ -730,17 +733,17 @@ netxen_load_firmware(struct netxen_adapter *adapter)
730 733
731 for (i = 0; i < size; i++) { 734 for (i = 0; i < size; i++) {
732 if (netxen_rom_fast_read(adapter, 735 if (netxen_rom_fast_read(adapter,
733 flashaddr, &lo) != 0) 736 flashaddr, (int *)&lo) != 0)
734 return -EIO; 737 return -EIO;
735 if (netxen_rom_fast_read(adapter, 738 if (netxen_rom_fast_read(adapter,
736 flashaddr + 4, &hi) != 0) 739 flashaddr + 4, (int *)&hi) != 0)
737 return -EIO; 740 return -EIO;
738 741
739 /* hi, lo are already in host endian byteorder */ 742 /* hi, lo are already in host endian byteorder */
740 data = (((u64)hi << 32) | lo); 743 data = (((u64)hi << 32) | lo);
741 744
742 if (adapter->pci_mem_write(adapter, 745 if (adapter->pci_mem_write(adapter,
743 flashaddr, &data, 8)) 746 flashaddr, data))
744 return -EIO; 747 return -EIO;
745 748
746 flashaddr += 8; 749 flashaddr += 8;