Lines Matching full:adapter

32 netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
34 static int netxen_p3_has_mn(struct netxen_adapter *adapter);
91 void netxen_release_rx_buffers(struct netxen_adapter *adapter) in netxen_release_rx_buffers() argument
98 recv_ctx = &adapter->recv_ctx; in netxen_release_rx_buffers()
99 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_release_rx_buffers()
105 dma_unmap_single(&adapter->pdev->dev, rx_buf->dma, in netxen_release_rx_buffers()
113 void netxen_release_tx_buffers(struct netxen_adapter *adapter) in netxen_release_tx_buffers() argument
118 struct nx_host_tx_ring *tx_ring = adapter->tx_ring; in netxen_release_tx_buffers()
120 spin_lock_bh(&adapter->tx_clean_lock); in netxen_release_tx_buffers()
125 dma_unmap_single(&adapter->pdev->dev, buffrag->dma, in netxen_release_tx_buffers()
132 dma_unmap_page(&adapter->pdev->dev, in netxen_release_tx_buffers()
144 spin_unlock_bh(&adapter->tx_clean_lock); in netxen_release_tx_buffers()
147 void netxen_free_sw_resources(struct netxen_adapter *adapter) in netxen_free_sw_resources() argument
154 recv_ctx = &adapter->recv_ctx; in netxen_free_sw_resources()
159 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_free_sw_resources()
167 if (adapter->tx_ring == NULL) in netxen_free_sw_resources()
170 tx_ring = adapter->tx_ring; in netxen_free_sw_resources()
173 adapter->tx_ring = NULL; in netxen_free_sw_resources()
176 int netxen_alloc_sw_resources(struct netxen_adapter *adapter) in netxen_alloc_sw_resources() argument
186 struct net_device *netdev = adapter->netdev; in netxen_alloc_sw_resources()
192 adapter->tx_ring = tx_ring; in netxen_alloc_sw_resources()
194 tx_ring->num_desc = adapter->num_txd; in netxen_alloc_sw_resources()
203 recv_ctx = &adapter->recv_ctx; in netxen_alloc_sw_resources()
205 rds_ring = kcalloc(adapter->max_rds_rings, in netxen_alloc_sw_resources()
212 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_alloc_sw_resources()
216 rds_ring->num_desc = adapter->num_rxd; in netxen_alloc_sw_resources()
217 if (adapter->ahw.cut_through) { in netxen_alloc_sw_resources()
223 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_alloc_sw_resources()
235 rds_ring->num_desc = adapter->num_jumbo_rxd; in netxen_alloc_sw_resources()
236 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_alloc_sw_resources()
243 if (adapter->capabilities & NX_CAP0_HW_LRO) in netxen_alloc_sw_resources()
251 rds_ring->num_desc = adapter->num_lro_rxd; in netxen_alloc_sw_resources()
278 for (ring = 0; ring < adapter->max_sds_rings; ring++) { in netxen_alloc_sw_resources()
280 sds_ring->irq = adapter->msix_entries[ring].vector; in netxen_alloc_sw_resources()
281 sds_ring->adapter = adapter; in netxen_alloc_sw_resources()
282 sds_ring->num_desc = adapter->num_rxd; in netxen_alloc_sw_resources()
291 netxen_free_sw_resources(adapter); in netxen_alloc_sw_resources()
324 static int netxen_wait_rom_done(struct netxen_adapter *adapter) in netxen_wait_rom_done() argument
332 done = NXRD32(adapter, NETXEN_ROMUSB_GLB_STATUS); in netxen_wait_rom_done()
335 dev_err(&adapter->pdev->dev, in netxen_wait_rom_done()
344 static int do_rom_fast_read(struct netxen_adapter *adapter, in do_rom_fast_read() argument
347 NXWR32(adapter, NETXEN_ROMUSB_ROM_ADDRESS, addr); in do_rom_fast_read()
348 NXWR32(adapter, NETXEN_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
349 NXWR32(adapter, NETXEN_ROMUSB_ROM_ABYTE_CNT, 3); in do_rom_fast_read()
350 NXWR32(adapter, NETXEN_ROMUSB_ROM_INSTR_OPCODE, 0xb); in do_rom_fast_read()
351 if (netxen_wait_rom_done(adapter)) { in do_rom_fast_read()
356 NXWR32(adapter, NETXEN_ROMUSB_ROM_ABYTE_CNT, 0); in do_rom_fast_read()
358 NXWR32(adapter, NETXEN_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
360 *valp = NXRD32(adapter, NETXEN_ROMUSB_ROM_RDATA); in do_rom_fast_read()
364 static int do_rom_fast_read_words(struct netxen_adapter *adapter, int addr, in do_rom_fast_read_words() argument
372 ret = do_rom_fast_read(adapter, addridx, &v); in do_rom_fast_read_words()
383 netxen_rom_fast_read_words(struct netxen_adapter *adapter, int addr, in netxen_rom_fast_read_words() argument
388 ret = netxen_rom_lock(adapter); in netxen_rom_fast_read_words()
392 ret = do_rom_fast_read_words(adapter, addr, bytes, size); in netxen_rom_fast_read_words()
394 netxen_rom_unlock(adapter); in netxen_rom_fast_read_words()
398 int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp) in netxen_rom_fast_read() argument
402 if (netxen_rom_lock(adapter) != 0) in netxen_rom_fast_read()
405 ret = do_rom_fast_read(adapter, addr, valp); in netxen_rom_fast_read()
406 netxen_rom_unlock(adapter); in netxen_rom_fast_read()
414 int netxen_pinit_from_rom(struct netxen_adapter *adapter) in netxen_pinit_from_rom() argument
423 netxen_rom_lock(adapter); in netxen_pinit_from_rom()
424 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0xfeffffff); in netxen_pinit_from_rom()
425 netxen_rom_unlock(adapter); in netxen_pinit_from_rom()
427 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
428 if (netxen_rom_fast_read(adapter, 0, &n) != 0 || in netxen_pinit_from_rom()
430 netxen_rom_fast_read(adapter, 4, &n) != 0) { in netxen_pinit_from_rom()
438 if (netxen_rom_fast_read(adapter, 0, &n) != 0 || in netxen_pinit_from_rom()
459 if (netxen_rom_fast_read(adapter, 8*i + 4*offset, &val) != 0 || in netxen_pinit_from_rom()
460 netxen_rom_fast_read(adapter, 8*i + 4*offset + 4, &addr) != 0) { in netxen_pinit_from_rom()
487 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
504 !NX_IS_REVISION_P3P(adapter->ahw.revision_id)) in netxen_pinit_from_rom()
520 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
527 NXWR32(adapter, off, buf[i].data); in netxen_pinit_from_rom()
536 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
537 val = NXRD32(adapter, NETXEN_ROMUSB_GLB_SW_RESET); in netxen_pinit_from_rom()
538 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, (val & 0xffffff0f)); in netxen_pinit_from_rom()
542 NXWR32(adapter, NETXEN_CRB_PEG_NET_D + 0xec, 0x1e); in netxen_pinit_from_rom()
544 NXWR32(adapter, NETXEN_CRB_PEG_NET_D + 0x4c, 8); in netxen_pinit_from_rom()
546 NXWR32(adapter, NETXEN_CRB_PEG_NET_I + 0x4c, 8); in netxen_pinit_from_rom()
551 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0x8, 0); in netxen_pinit_from_rom()
552 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0xc, 0); in netxen_pinit_from_rom()
554 NXWR32(adapter, NETXEN_CRB_PEG_NET_1 + 0x8, 0); in netxen_pinit_from_rom()
555 NXWR32(adapter, NETXEN_CRB_PEG_NET_1 + 0xc, 0); in netxen_pinit_from_rom()
557 NXWR32(adapter, NETXEN_CRB_PEG_NET_2 + 0x8, 0); in netxen_pinit_from_rom()
558 NXWR32(adapter, NETXEN_CRB_PEG_NET_2 + 0xc, 0); in netxen_pinit_from_rom()
560 NXWR32(adapter, NETXEN_CRB_PEG_NET_3 + 0x8, 0); in netxen_pinit_from_rom()
561 NXWR32(adapter, NETXEN_CRB_PEG_NET_3 + 0xc, 0); in netxen_pinit_from_rom()
587 netxen_nic_validate_header(struct netxen_adapter *adapter) in netxen_nic_validate_header() argument
589 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_header()
591 u32 fw_file_size = adapter->fw->size; in netxen_nic_validate_header()
610 netxen_nic_validate_bootld(struct netxen_adapter *adapter) in netxen_nic_validate_bootld() argument
614 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_bootld()
615 __le32 idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in netxen_nic_validate_bootld()
629 if (adapter->fw->size < tab_size) in netxen_nic_validate_bootld()
638 if (adapter->fw->size < data_size) in netxen_nic_validate_bootld()
645 netxen_nic_validate_fw(struct netxen_adapter *adapter) in netxen_nic_validate_fw() argument
649 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_fw()
650 __le32 idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in netxen_nic_validate_fw()
664 if (adapter->fw->size < tab_size) in netxen_nic_validate_fw()
672 if (adapter->fw->size < data_size) in netxen_nic_validate_fw()
680 netxen_nic_validate_product_offs(struct netxen_adapter *adapter) in netxen_nic_validate_product_offs() argument
683 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_product_offs()
684 int mn_present = (NX_IS_REVISION_P2(adapter->ahw.revision_id)) ? in netxen_nic_validate_product_offs()
685 1 : netxen_p3_has_mn(adapter); in netxen_nic_validate_product_offs()
699 if (adapter->fw->size < tab_size) in netxen_nic_validate_product_offs()
706 u8 chiprev = adapter->ahw.revision_id; in netxen_nic_validate_product_offs()
719 adapter->file_prd_off = offs; in netxen_nic_validate_product_offs()
724 if (mn_present && NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_nic_validate_product_offs()
733 netxen_nic_validate_unified_romimage(struct netxen_adapter *adapter) in netxen_nic_validate_unified_romimage() argument
735 if (netxen_nic_validate_header(adapter)) { in netxen_nic_validate_unified_romimage()
736 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
741 if (netxen_nic_validate_product_offs(adapter)) { in netxen_nic_validate_unified_romimage()
742 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
747 if (netxen_nic_validate_bootld(adapter)) { in netxen_nic_validate_unified_romimage()
748 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
753 if (netxen_nic_validate_fw(adapter)) { in netxen_nic_validate_unified_romimage()
754 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
762 static struct uni_data_desc *nx_get_data_desc(struct netxen_adapter *adapter, in nx_get_data_desc() argument
765 const u8 *unirom = adapter->fw->data; in nx_get_data_desc()
766 int idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in nx_get_data_desc()
783 nx_get_bootld_offs(struct netxen_adapter *adapter) in nx_get_bootld_offs() argument
787 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_bootld_offs()
788 offs = cpu_to_le32((nx_get_data_desc(adapter, in nx_get_bootld_offs()
792 return (u8 *)&adapter->fw->data[offs]; in nx_get_bootld_offs()
796 nx_get_fw_offs(struct netxen_adapter *adapter) in nx_get_fw_offs() argument
800 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_fw_offs()
801 offs = cpu_to_le32((nx_get_data_desc(adapter, in nx_get_fw_offs()
805 return (u8 *)&adapter->fw->data[offs]; in nx_get_fw_offs()
809 nx_get_fw_size(struct netxen_adapter *adapter) in nx_get_fw_size() argument
811 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_fw_size()
812 return cpu_to_le32((nx_get_data_desc(adapter, in nx_get_fw_size()
817 *(u32 *)&adapter->fw->data[NX_FW_SIZE_OFFSET]); in nx_get_fw_size()
821 nx_get_fw_version(struct netxen_adapter *adapter) in nx_get_fw_version() argument
824 const struct firmware *fw = adapter->fw; in nx_get_fw_version()
829 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) { in nx_get_fw_version()
831 fw_data_desc = nx_get_data_desc(adapter, in nx_get_fw_version()
854 nx_get_bios_version(struct netxen_adapter *adapter) in nx_get_bios_version() argument
856 const struct firmware *fw = adapter->fw; in nx_get_bios_version()
857 __le32 bios_ver, prd_off = adapter->file_prd_off; in nx_get_bios_version()
859 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) { in nx_get_bios_version()
870 netxen_need_fw_reset(struct netxen_adapter *adapter) in netxen_need_fw_reset() argument
878 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_need_fw_reset()
881 if (adapter->need_fw_reset) in netxen_need_fw_reset()
885 if (NXRD32(adapter, CRB_CMDPEG_STATE) == PHAN_INITIALIZE_FAILED) in netxen_need_fw_reset()
888 old_count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); in netxen_need_fw_reset()
894 NXWR32(adapter, CRB_CMDPEG_STATE, in netxen_need_fw_reset()
899 count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); in netxen_need_fw_reset()
909 if (adapter->fw) { in netxen_need_fw_reset()
911 val = nx_get_fw_version(adapter); in netxen_need_fw_reset()
915 major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR); in netxen_need_fw_reset()
916 minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR); in netxen_need_fw_reset()
917 build = NXRD32(adapter, NETXEN_FW_VERSION_SUB); in netxen_need_fw_reset()
923 adapter->fw_type != NX_UNIFIED_ROMIMAGE) { in netxen_need_fw_reset()
925 val = NXRD32(adapter, NETXEN_MIU_MN_CONTROL); in netxen_need_fw_reset()
929 if (adapter->fw_type != fw_type) in netxen_need_fw_reset()
940 netxen_check_flash_fw_compatibility(struct netxen_adapter *adapter) in netxen_check_flash_fw_compatibility() argument
944 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_check_flash_fw_compatibility()
947 if (netxen_rom_fast_read(adapter, in netxen_check_flash_fw_compatibility()
949 dev_err(&adapter->pdev->dev, "Unable to read flash fw" in netxen_check_flash_fw_compatibility()
959 dev_info(&adapter->pdev->dev, "Flash fw[%d.%d.%d] is < min fw supported" in netxen_check_flash_fw_compatibility()
975 netxen_load_firmware(struct netxen_adapter *adapter) in netxen_load_firmware() argument
979 const struct firmware *fw = adapter->fw; in netxen_load_firmware()
980 struct pci_dev *pdev = adapter->pdev; in netxen_load_firmware()
983 fw_name[adapter->fw_type]); in netxen_load_firmware()
985 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_load_firmware()
986 NXWR32(adapter, NETXEN_ROMUSB_GLB_CAS_RST, 1); in netxen_load_firmware()
993 ptr64 = (u64 *)nx_get_bootld_offs(adapter); in netxen_load_firmware()
999 if (adapter->pci_mem_write(adapter, flashaddr, data)) in netxen_load_firmware()
1005 size = (__force u32)nx_get_fw_size(adapter) / 8; in netxen_load_firmware()
1007 ptr64 = (u64 *)nx_get_fw_offs(adapter); in netxen_load_firmware()
1013 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1020 size = (__force u32)nx_get_fw_size(adapter) % 8; in netxen_load_firmware()
1024 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1037 if (netxen_rom_fast_read(adapter, in netxen_load_firmware()
1040 if (netxen_rom_fast_read(adapter, in netxen_load_firmware()
1047 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1056 if (NX_IS_REVISION_P3P(adapter->ahw.revision_id)) { in netxen_load_firmware()
1057 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0x18, 0x1020); in netxen_load_firmware()
1058 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0x80001e); in netxen_load_firmware()
1059 } else if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_load_firmware()
1060 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0x80001d); in netxen_load_firmware()
1062 NXWR32(adapter, NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL, 0x3fff); in netxen_load_firmware()
1063 NXWR32(adapter, NETXEN_ROMUSB_GLB_CAS_RST, 0); in netxen_load_firmware()
1070 netxen_validate_firmware(struct netxen_adapter *adapter) in netxen_validate_firmware() argument
1075 struct pci_dev *pdev = adapter->pdev; in netxen_validate_firmware()
1076 const struct firmware *fw = adapter->fw; in netxen_validate_firmware()
1077 u8 fw_type = adapter->fw_type; in netxen_validate_firmware()
1081 if (netxen_nic_validate_unified_romimage(adapter)) in netxen_validate_firmware()
1092 val = nx_get_fw_version(adapter); in netxen_validate_firmware()
1094 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_validate_firmware()
1109 val = nx_get_bios_version(adapter); in netxen_validate_firmware()
1110 if (netxen_rom_fast_read(adapter, NX_BIOS_VERSION_OFFSET, (int *)&bios)) in netxen_validate_firmware()
1118 if (netxen_rom_fast_read(adapter, in netxen_validate_firmware()
1128 NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_validate_firmware()
1137 if (!netxen_p3_has_mn(adapter) || in netxen_validate_firmware()
1138 NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_validate_firmware()
1146 NXWR32(adapter, NETXEN_CAM_RAM(0x1fc), NETXEN_BDINFO_MAGIC); in netxen_validate_firmware()
1151 nx_get_next_fwtype(struct netxen_adapter *adapter) in nx_get_next_fwtype() argument
1155 switch (adapter->fw_type) { in nx_get_next_fwtype()
1161 if (NX_IS_REVISION_P3P(adapter->ahw.revision_id)) in nx_get_next_fwtype()
1163 else if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in nx_get_next_fwtype()
1165 else if (netxen_p3_has_mn(adapter)) in nx_get_next_fwtype()
1182 adapter->fw_type = fw_type; in nx_get_next_fwtype()
1186 netxen_p3_has_mn(struct netxen_adapter *adapter) in netxen_p3_has_mn() argument
1191 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_p3_has_mn()
1194 netxen_rom_fast_read(adapter, in netxen_p3_has_mn()
1199 capability = NXRD32(adapter, NX_PEG_TUNE_CAPABILITY); in netxen_p3_has_mn()
1206 void netxen_request_firmware(struct netxen_adapter *adapter) in netxen_request_firmware() argument
1208 struct pci_dev *pdev = adapter->pdev; in netxen_request_firmware()
1211 adapter->fw_type = NX_UNKNOWN_ROMIMAGE; in netxen_request_firmware()
1214 nx_get_next_fwtype(adapter); in netxen_request_firmware()
1216 if (adapter->fw_type == NX_FLASH_ROMIMAGE) { in netxen_request_firmware()
1217 adapter->fw = NULL; in netxen_request_firmware()
1219 rc = request_firmware(&adapter->fw, in netxen_request_firmware()
1220 fw_name[adapter->fw_type], &pdev->dev); in netxen_request_firmware()
1224 rc = netxen_validate_firmware(adapter); in netxen_request_firmware()
1226 release_firmware(adapter->fw); in netxen_request_firmware()
1235 netxen_release_firmware(struct netxen_adapter *adapter) in netxen_release_firmware() argument
1237 release_firmware(adapter->fw); in netxen_release_firmware()
1238 adapter->fw = NULL; in netxen_release_firmware()
1241 int netxen_init_dummy_dma(struct netxen_adapter *adapter) in netxen_init_dummy_dma() argument
1246 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_init_dummy_dma()
1249 adapter->dummy_dma.addr = dma_alloc_coherent(&adapter->pdev->dev, in netxen_init_dummy_dma()
1251 &adapter->dummy_dma.phys_addr, in netxen_init_dummy_dma()
1253 if (adapter->dummy_dma.addr == NULL) { in netxen_init_dummy_dma()
1254 dev_err(&adapter->pdev->dev, in netxen_init_dummy_dma()
1259 addr = (uint64_t) adapter->dummy_dma.phys_addr; in netxen_init_dummy_dma()
1263 NXWR32(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI, hi); in netxen_init_dummy_dma()
1264 NXWR32(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO, lo); in netxen_init_dummy_dma()
1277 void netxen_free_dummy_dma(struct netxen_adapter *adapter) in netxen_free_dummy_dma() argument
1282 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_free_dummy_dma()
1285 if (!adapter->dummy_dma.addr) in netxen_free_dummy_dma()
1288 ctrl = NXRD32(adapter, NETXEN_DMA_WATCHDOG_CTRL); in netxen_free_dummy_dma()
1290 NXWR32(adapter, NETXEN_DMA_WATCHDOG_CTRL, (ctrl | 0x2)); in netxen_free_dummy_dma()
1296 ctrl = NXRD32(adapter, NETXEN_DMA_WATCHDOG_CTRL); in netxen_free_dummy_dma()
1304 dma_free_coherent(&adapter->pdev->dev, in netxen_free_dummy_dma()
1306 adapter->dummy_dma.addr, in netxen_free_dummy_dma()
1307 adapter->dummy_dma.phys_addr); in netxen_free_dummy_dma()
1308 adapter->dummy_dma.addr = NULL; in netxen_free_dummy_dma()
1310 dev_err(&adapter->pdev->dev, "dma_watchdog_shutdown failed\n"); in netxen_free_dummy_dma()
1313 int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val) in netxen_phantom_init() argument
1322 val = NXRD32(adapter, CRB_CMDPEG_STATE); in netxen_phantom_init()
1337 NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_FAILED); in netxen_phantom_init()
1340 dev_warn(&adapter->pdev->dev, "firmware init failed\n"); in netxen_phantom_init()
1345 netxen_receive_peg_ready(struct netxen_adapter *adapter) in netxen_receive_peg_ready() argument
1351 val = NXRD32(adapter, CRB_RCVPEG_STATE); in netxen_receive_peg_ready()
1364 int netxen_init_firmware(struct netxen_adapter *adapter) in netxen_init_firmware() argument
1368 err = netxen_receive_peg_ready(adapter); in netxen_init_firmware()
1372 NXWR32(adapter, CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT); in netxen_init_firmware()
1373 NXWR32(adapter, CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE); in netxen_init_firmware()
1374 NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK); in netxen_init_firmware()
1376 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_init_firmware()
1377 NXWR32(adapter, CRB_NIC_MSI_MODE_HOST, MSI_MODE_MULTIFUNC); in netxen_init_firmware()
1383 netxen_handle_linkevent(struct netxen_adapter *adapter, nx_fw_msg_t *msg) in netxen_handle_linkevent() argument
1389 struct net_device *netdev = adapter->netdev; in netxen_handle_linkevent()
1391 adapter->has_link_events = 1; in netxen_handle_linkevent()
1412 adapter->link_duplex = DUPLEX_FULL; in netxen_handle_linkevent()
1414 adapter->link_duplex = DUPLEX_HALF; in netxen_handle_linkevent()
1415 adapter->module_type = module; in netxen_handle_linkevent()
1416 adapter->link_autoneg = autoneg; in netxen_handle_linkevent()
1417 adapter->link_speed = link_speed; in netxen_handle_linkevent()
1419 netxen_advert_link_change(adapter, link_status); in netxen_handle_linkevent()
1442 netxen_handle_linkevent(sds_ring->adapter, &msg); in netxen_handle_fw_message()
1450 netxen_alloc_rx_skb(struct netxen_adapter *adapter, in netxen_alloc_rx_skb() argument
1456 struct pci_dev *pdev = adapter->pdev; in netxen_alloc_rx_skb()
1458 buffer->skb = netdev_alloc_skb(adapter->netdev, rds_ring->skb_size); in netxen_alloc_rx_skb()
1464 if (!adapter->ahw.cut_through) in netxen_alloc_rx_skb()
1483 static struct sk_buff *netxen_process_rxbuf(struct netxen_adapter *adapter, in netxen_process_rxbuf() argument
1491 dma_unmap_single(&adapter->pdev->dev, buffer->dma, rds_ring->dma_size, in netxen_process_rxbuf()
1498 if (likely((adapter->netdev->features & NETIF_F_RXCSUM) in netxen_process_rxbuf()
1500 adapter->stats.csummed++; in netxen_process_rxbuf()
1512 netxen_process_rcv(struct netxen_adapter *adapter, in netxen_process_rcv() argument
1516 struct net_device *netdev = adapter->netdev; in netxen_process_rcv()
1517 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in netxen_process_rcv()
1523 if (unlikely(ring >= adapter->max_rds_rings)) in netxen_process_rcv()
1538 skb = netxen_process_rxbuf(adapter, rds_ring, index, cksum); in netxen_process_rcv()
1555 adapter->stats.rx_pkts++; in netxen_process_rcv()
1556 adapter->stats.rxbytes += length; in netxen_process_rcv()
1566 netxen_process_lro(struct netxen_adapter *adapter, in netxen_process_lro() argument
1570 struct net_device *netdev = adapter->netdev; in netxen_process_lro()
1571 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in netxen_process_lro()
1584 if (unlikely(ring >= adapter->max_rds_rings)) in netxen_process_lro()
1602 skb = netxen_process_rxbuf(adapter, rds_ring, index, STATUS_CKSUM_OK); in netxen_process_lro()
1629 if (adapter->flags & NETXEN_FW_MSS_CAP) in netxen_process_lro()
1634 adapter->stats.lro_pkts++; in netxen_process_lro()
1635 adapter->stats.rxbytes += length; in netxen_process_lro()
1646 struct netxen_adapter *adapter = sds_ring->adapter; in netxen_process_rcv_ring() local
1675 rxbuf = netxen_process_rcv(adapter, sds_ring, in netxen_process_rcv_ring()
1681 rxbuf = netxen_process_lro(adapter, sds_ring, in netxen_process_rcv_ring()
1706 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_process_rcv_ring()
1708 &adapter->recv_ctx.rds_rings[ring]; in netxen_process_rcv_ring()
1714 netxen_alloc_rx_skb(adapter, rds_ring, rxbuf); in netxen_process_rcv_ring()
1722 netxen_post_rx_buffers_nodb(adapter, rds_ring); in netxen_process_rcv_ring()
1727 NXWRIO(adapter, sds_ring->crb_sts_consumer, consumer); in netxen_process_rcv_ring()
1734 int netxen_process_cmd_ring(struct netxen_adapter *adapter) in netxen_process_cmd_ring() argument
1739 struct pci_dev *pdev = adapter->pdev; in netxen_process_cmd_ring()
1740 struct net_device *netdev = adapter->netdev; in netxen_process_cmd_ring()
1743 struct nx_host_tx_ring *tx_ring = adapter->tx_ring; in netxen_process_cmd_ring()
1745 if (!spin_trylock_bh(&adapter->tx_clean_lock)) in netxen_process_cmd_ring()
1765 adapter->stats.xmitfinished++; in netxen_process_cmd_ring()
1783 adapter->tx_timeo_cnt = 0; in netxen_process_cmd_ring()
1800 spin_unlock_bh(&adapter->tx_clean_lock); in netxen_process_cmd_ring()
1806 netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ringid, in netxen_post_rx_buffers() argument
1823 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer)) in netxen_post_rx_buffers()
1841 NXWRIO(adapter, rds_ring->crb_rcv_producer, in netxen_post_rx_buffers()
1844 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_post_rx_buffers()
1855 netxen_set_msg_ctxid(msg, adapter->portnum); in netxen_post_rx_buffers()
1857 NXWRIO(adapter, DB_NORMALIZE(adapter, in netxen_post_rx_buffers()
1864 netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter, in netxen_post_rx_buffers_nodb() argument
1883 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer)) in netxen_post_rx_buffers_nodb()
1901 NXWRIO(adapter, rds_ring->crb_rcv_producer, in netxen_post_rx_buffers_nodb()
1907 void netxen_nic_clear_stats(struct netxen_adapter *adapter) in netxen_nic_clear_stats() argument
1909 memset(&adapter->stats, 0, sizeof(adapter->stats)); in netxen_nic_clear_stats()