aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netxen/netxen_nic_init.c
diff options
context:
space:
mode:
authorDhananjay Phadke <dhananjay@netxen.com>2008-07-21 22:44:03 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-07-22 17:51:44 -0400
commit3ce06a320f8d5a3f16960e63021cc372283efffb (patch)
treecea5b02fc44b8c2367c57d7c249592683edffcc9 /drivers/net/netxen/netxen_nic_init.c
parente4c93c817ce650401db42db6c869cf7688217ff4 (diff)
netxen: add 2MB PCI memory support
New revision of netxen chip has 2MB PCI memory. Older chips had 128MB addressable PCI memory. To retain compatibility, this patch adds function pointers based on pci bar0 size. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/netxen/netxen_nic_init.c')
-rw-r--r--drivers/net/netxen/netxen_nic_init.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index dfde5908209..7323cd7b544 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -124,7 +124,7 @@ int netxen_init_firmware(struct netxen_adapter *adapter)
124 u32 state = 0, loops = 0, err = 0; 124 u32 state = 0, loops = 0, err = 0;
125 125
126 /* Window 1 call */ 126 /* Window 1 call */
127 state = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); 127 state = adapter->pci_read_normalize(adapter, CRB_CMDPEG_STATE);
128 128
129 if (state == PHAN_INITIALIZE_ACK) 129 if (state == PHAN_INITIALIZE_ACK)
130 return 0; 130 return 0;
@@ -132,7 +132,7 @@ int netxen_init_firmware(struct netxen_adapter *adapter)
132 while (state != PHAN_INITIALIZE_COMPLETE && loops < 2000) { 132 while (state != PHAN_INITIALIZE_COMPLETE && loops < 2000) {
133 udelay(100); 133 udelay(100);
134 /* Window 1 call */ 134 /* Window 1 call */
135 state = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); 135 state = adapter->pci_read_normalize(adapter, CRB_CMDPEG_STATE);
136 136
137 loops++; 137 loops++;
138 } 138 }
@@ -143,14 +143,14 @@ int netxen_init_firmware(struct netxen_adapter *adapter)
143 return err; 143 return err;
144 } 144 }
145 /* Window 1 call */ 145 /* Window 1 call */
146 writel(INTR_SCHEME_PERPORT, 146 adapter->pci_write_normalize(adapter,
147 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_HOST)); 147 CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT);
148 writel(MSI_MODE_MULTIFUNC, 148 adapter->pci_write_normalize(adapter,
149 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_HOST)); 149 CRB_NIC_MSI_MODE_HOST, MSI_MODE_MULTIFUNC);
150 writel(MPORT_MULTI_FUNCTION_MODE, 150 adapter->pci_write_normalize(adapter,
151 NETXEN_CRB_NORMALIZE(adapter, CRB_MPORT_MODE)); 151 CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE);
152 writel(PHAN_INITIALIZE_ACK, 152 adapter->pci_write_normalize(adapter,
153 NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); 153 CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK);
154 154
155 return err; 155 return err;
156} 156}
@@ -811,7 +811,7 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose)
811 buf[i].data = NETXEN_NIC_XDMA_RESET; 811 buf[i].data = NETXEN_NIC_XDMA_RESET;
812 } 812 }
813 813
814 netxen_nic_hw_write_wx(adapter, off, &buf[i].data, 4); 814 adapter->hw_write_wx(adapter, off, &buf[i].data, 4);
815 815
816 if (init_delay == 1) { 816 if (init_delay == 1) {
817 msleep(1000); 817 msleep(1000);
@@ -824,7 +824,7 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose)
824 /* disable_peg_cache_all */ 824 /* disable_peg_cache_all */
825 825
826 /* unreset_net_cache */ 826 /* unreset_net_cache */
827 netxen_nic_hw_read_wx(adapter, NETXEN_ROMUSB_GLB_SW_RESET, &val, 827 adapter->hw_read_wx(adapter, NETXEN_ROMUSB_GLB_SW_RESET, &val,
828 4); 828 4);
829 netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 829 netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET,
830 (val & 0xffffff0f)); 830 (val & 0xffffff0f));
@@ -884,8 +884,8 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter)
884 hi = (addr >> 32) & 0xffffffff; 884 hi = (addr >> 32) & 0xffffffff;
885 lo = addr & 0xffffffff; 885 lo = addr & 0xffffffff;
886 886
887 writel(hi, NETXEN_CRB_NORMALIZE(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI)); 887 adapter->pci_write_normalize(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI, hi);
888 writel(lo, NETXEN_CRB_NORMALIZE(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO)); 888 adapter->pci_write_normalize(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO, lo);
889 889
890 return 0; 890 return 0;
891} 891}
@@ -924,10 +924,10 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val)
924 924
925 if (!pegtune_val) { 925 if (!pegtune_val) {
926 do { 926 do {
927 val = readl(NETXEN_CRB_NORMALIZE 927 val = adapter->pci_read_normalize(adapter,
928 (adapter, CRB_CMDPEG_STATE)); 928 CRB_CMDPEG_STATE);
929 pegtune_val = readl(NETXEN_CRB_NORMALIZE 929 pegtune_val = adapter->pci_read_normalize(adapter,
930 (adapter, NETXEN_ROMUSB_GLB_PEGTUNE_DONE)); 930 NETXEN_ROMUSB_GLB_PEGTUNE_DONE);
931 931
932 if (val == PHAN_INITIALIZE_COMPLETE || 932 if (val == PHAN_INITIALIZE_COMPLETE ||
933 val == PHAN_INITIALIZE_ACK) 933 val == PHAN_INITIALIZE_ACK)
@@ -951,7 +951,7 @@ static int netxen_nic_check_temp(struct netxen_adapter *adapter)
951 uint32_t temp, temp_state, temp_val; 951 uint32_t temp, temp_state, temp_val;
952 int rv = 0; 952 int rv = 0;
953 953
954 temp = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_TEMP_STATE)); 954 temp = adapter->pci_read_normalize(adapter, CRB_TEMP_STATE);
955 955
956 temp_state = nx_get_temp_state(temp); 956 temp_state = nx_get_temp_state(temp);
957 temp_val = nx_get_temp_val(temp); 957 temp_val = nx_get_temp_val(temp);
@@ -1119,8 +1119,8 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max)
1119 recv_ctx->status_rx_consumer = consumer; 1119 recv_ctx->status_rx_consumer = consumer;
1120 1120
1121 /* Window = 1 */ 1121 /* Window = 1 */
1122 writel(consumer, NETXEN_CRB_NORMALIZE(adapter, 1122 adapter->pci_write_normalize(adapter,
1123 recv_ctx->crb_sts_consumer)); 1123 recv_ctx->crb_sts_consumer, consumer);
1124 } 1124 }
1125 1125
1126 return count; 1126 return count;
@@ -1264,9 +1264,9 @@ void netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ctx, u32 ringid)
1264 rcv_desc->begin_alloc = index; 1264 rcv_desc->begin_alloc = index;
1265 rcv_desc->producer = producer; 1265 rcv_desc->producer = producer;
1266 /* Window = 1 */ 1266 /* Window = 1 */
1267 writel((producer - 1) & (rcv_desc->max_rx_desc_count - 1), 1267 adapter->pci_write_normalize(adapter,
1268 NETXEN_CRB_NORMALIZE(adapter, 1268 rcv_desc->crb_rcv_producer,
1269 rcv_desc->crb_rcv_producer)); 1269 (producer-1) & (rcv_desc->max_rx_desc_count-1));
1270 /* 1270 /*
1271 * Write a doorbell msg to tell phanmon of change in 1271 * Write a doorbell msg to tell phanmon of change in
1272 * receive ring producer 1272 * receive ring producer
@@ -1344,9 +1344,9 @@ static void netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
1344 rcv_desc->begin_alloc = index; 1344 rcv_desc->begin_alloc = index;
1345 rcv_desc->producer = producer; 1345 rcv_desc->producer = producer;
1346 /* Window = 1 */ 1346 /* Window = 1 */
1347 writel((producer - 1) & (rcv_desc->max_rx_desc_count - 1), 1347 adapter->pci_write_normalize(adapter,
1348 NETXEN_CRB_NORMALIZE(adapter, 1348 rcv_desc->crb_rcv_producer,
1349 rcv_desc->crb_rcv_producer)); 1349 (producer-1) & (rcv_desc->max_rx_desc_count-1));
1350 wmb(); 1350 wmb();
1351 } 1351 }
1352} 1352}