Lines Matching refs:adapter
48 netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter,
50 static int netxen_p3_has_mn(struct netxen_adapter *adapter);
107 void netxen_release_rx_buffers(struct netxen_adapter *adapter) in netxen_release_rx_buffers() argument
114 recv_ctx = &adapter->recv_ctx; in netxen_release_rx_buffers()
115 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_release_rx_buffers()
121 pci_unmap_single(adapter->pdev, in netxen_release_rx_buffers()
131 void netxen_release_tx_buffers(struct netxen_adapter *adapter) in netxen_release_tx_buffers() argument
136 struct nx_host_tx_ring *tx_ring = adapter->tx_ring; in netxen_release_tx_buffers()
138 spin_lock_bh(&adapter->tx_clean_lock); in netxen_release_tx_buffers()
143 pci_unmap_single(adapter->pdev, buffrag->dma, in netxen_release_tx_buffers()
150 pci_unmap_page(adapter->pdev, buffrag->dma, in netxen_release_tx_buffers()
162 spin_unlock_bh(&adapter->tx_clean_lock); in netxen_release_tx_buffers()
165 void netxen_free_sw_resources(struct netxen_adapter *adapter) in netxen_free_sw_resources() argument
172 recv_ctx = &adapter->recv_ctx; in netxen_free_sw_resources()
177 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_free_sw_resources()
185 if (adapter->tx_ring == NULL) in netxen_free_sw_resources()
188 tx_ring = adapter->tx_ring; in netxen_free_sw_resources()
191 adapter->tx_ring = NULL; in netxen_free_sw_resources()
194 int netxen_alloc_sw_resources(struct netxen_adapter *adapter) in netxen_alloc_sw_resources() argument
204 struct net_device *netdev = adapter->netdev; in netxen_alloc_sw_resources()
210 adapter->tx_ring = tx_ring; in netxen_alloc_sw_resources()
212 tx_ring->num_desc = adapter->num_txd; in netxen_alloc_sw_resources()
221 recv_ctx = &adapter->recv_ctx; in netxen_alloc_sw_resources()
223 rds_ring = kcalloc(adapter->max_rds_rings, in netxen_alloc_sw_resources()
230 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_alloc_sw_resources()
234 rds_ring->num_desc = adapter->num_rxd; in netxen_alloc_sw_resources()
235 if (adapter->ahw.cut_through) { in netxen_alloc_sw_resources()
241 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_alloc_sw_resources()
253 rds_ring->num_desc = adapter->num_jumbo_rxd; in netxen_alloc_sw_resources()
254 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_alloc_sw_resources()
261 if (adapter->capabilities & NX_CAP0_HW_LRO) in netxen_alloc_sw_resources()
269 rds_ring->num_desc = adapter->num_lro_rxd; in netxen_alloc_sw_resources()
296 for (ring = 0; ring < adapter->max_sds_rings; ring++) { in netxen_alloc_sw_resources()
298 sds_ring->irq = adapter->msix_entries[ring].vector; in netxen_alloc_sw_resources()
299 sds_ring->adapter = adapter; in netxen_alloc_sw_resources()
300 sds_ring->num_desc = adapter->num_rxd; in netxen_alloc_sw_resources()
309 netxen_free_sw_resources(adapter); in netxen_alloc_sw_resources()
342 static int netxen_wait_rom_done(struct netxen_adapter *adapter) in netxen_wait_rom_done() argument
350 done = NXRD32(adapter, NETXEN_ROMUSB_GLB_STATUS); in netxen_wait_rom_done()
353 dev_err(&adapter->pdev->dev, in netxen_wait_rom_done()
362 static int do_rom_fast_read(struct netxen_adapter *adapter, in do_rom_fast_read() argument
365 NXWR32(adapter, NETXEN_ROMUSB_ROM_ADDRESS, addr); in do_rom_fast_read()
366 NXWR32(adapter, NETXEN_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
367 NXWR32(adapter, NETXEN_ROMUSB_ROM_ABYTE_CNT, 3); in do_rom_fast_read()
368 NXWR32(adapter, NETXEN_ROMUSB_ROM_INSTR_OPCODE, 0xb); in do_rom_fast_read()
369 if (netxen_wait_rom_done(adapter)) { in do_rom_fast_read()
374 NXWR32(adapter, NETXEN_ROMUSB_ROM_ABYTE_CNT, 0); in do_rom_fast_read()
376 NXWR32(adapter, NETXEN_ROMUSB_ROM_DUMMY_BYTE_CNT, 0); in do_rom_fast_read()
378 *valp = NXRD32(adapter, NETXEN_ROMUSB_ROM_RDATA); in do_rom_fast_read()
382 static int do_rom_fast_read_words(struct netxen_adapter *adapter, int addr, in do_rom_fast_read_words() argument
390 ret = do_rom_fast_read(adapter, addridx, &v); in do_rom_fast_read_words()
401 netxen_rom_fast_read_words(struct netxen_adapter *adapter, int addr, in netxen_rom_fast_read_words() argument
406 ret = netxen_rom_lock(adapter); in netxen_rom_fast_read_words()
410 ret = do_rom_fast_read_words(adapter, addr, bytes, size); in netxen_rom_fast_read_words()
412 netxen_rom_unlock(adapter); in netxen_rom_fast_read_words()
416 int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp) in netxen_rom_fast_read() argument
420 if (netxen_rom_lock(adapter) != 0) in netxen_rom_fast_read()
423 ret = do_rom_fast_read(adapter, addr, valp); in netxen_rom_fast_read()
424 netxen_rom_unlock(adapter); in netxen_rom_fast_read()
432 int netxen_pinit_from_rom(struct netxen_adapter *adapter) in netxen_pinit_from_rom() argument
441 netxen_rom_lock(adapter); in netxen_pinit_from_rom()
442 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0xfeffffff); in netxen_pinit_from_rom()
443 netxen_rom_unlock(adapter); in netxen_pinit_from_rom()
445 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
446 if (netxen_rom_fast_read(adapter, 0, &n) != 0 || in netxen_pinit_from_rom()
448 netxen_rom_fast_read(adapter, 4, &n) != 0) { in netxen_pinit_from_rom()
456 if (netxen_rom_fast_read(adapter, 0, &n) != 0 || in netxen_pinit_from_rom()
477 if (netxen_rom_fast_read(adapter, 8*i + 4*offset, &val) != 0 || in netxen_pinit_from_rom()
478 netxen_rom_fast_read(adapter, 8*i + 4*offset + 4, &addr) != 0) { in netxen_pinit_from_rom()
505 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
522 !NX_IS_REVISION_P3P(adapter->ahw.revision_id)) in netxen_pinit_from_rom()
538 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
545 NXWR32(adapter, off, buf[i].data); in netxen_pinit_from_rom()
554 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_pinit_from_rom()
555 val = NXRD32(adapter, NETXEN_ROMUSB_GLB_SW_RESET); in netxen_pinit_from_rom()
556 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, (val & 0xffffff0f)); in netxen_pinit_from_rom()
560 NXWR32(adapter, NETXEN_CRB_PEG_NET_D + 0xec, 0x1e); in netxen_pinit_from_rom()
562 NXWR32(adapter, NETXEN_CRB_PEG_NET_D + 0x4c, 8); in netxen_pinit_from_rom()
564 NXWR32(adapter, NETXEN_CRB_PEG_NET_I + 0x4c, 8); in netxen_pinit_from_rom()
569 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0x8, 0); in netxen_pinit_from_rom()
570 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0xc, 0); in netxen_pinit_from_rom()
572 NXWR32(adapter, NETXEN_CRB_PEG_NET_1 + 0x8, 0); in netxen_pinit_from_rom()
573 NXWR32(adapter, NETXEN_CRB_PEG_NET_1 + 0xc, 0); in netxen_pinit_from_rom()
575 NXWR32(adapter, NETXEN_CRB_PEG_NET_2 + 0x8, 0); in netxen_pinit_from_rom()
576 NXWR32(adapter, NETXEN_CRB_PEG_NET_2 + 0xc, 0); in netxen_pinit_from_rom()
578 NXWR32(adapter, NETXEN_CRB_PEG_NET_3 + 0x8, 0); in netxen_pinit_from_rom()
579 NXWR32(adapter, NETXEN_CRB_PEG_NET_3 + 0xc, 0); in netxen_pinit_from_rom()
605 netxen_nic_validate_header(struct netxen_adapter *adapter) in netxen_nic_validate_header() argument
607 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_header()
609 u32 fw_file_size = adapter->fw->size; in netxen_nic_validate_header()
628 netxen_nic_validate_bootld(struct netxen_adapter *adapter) in netxen_nic_validate_bootld() argument
632 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_bootld()
633 __le32 idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in netxen_nic_validate_bootld()
647 if (adapter->fw->size < tab_size) in netxen_nic_validate_bootld()
656 if (adapter->fw->size < data_size) in netxen_nic_validate_bootld()
663 netxen_nic_validate_fw(struct netxen_adapter *adapter) in netxen_nic_validate_fw() argument
667 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_fw()
668 __le32 idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in netxen_nic_validate_fw()
682 if (adapter->fw->size < tab_size) in netxen_nic_validate_fw()
690 if (adapter->fw->size < data_size) in netxen_nic_validate_fw()
698 netxen_nic_validate_product_offs(struct netxen_adapter *adapter) in netxen_nic_validate_product_offs() argument
701 const u8 *unirom = adapter->fw->data; in netxen_nic_validate_product_offs()
702 int mn_present = (NX_IS_REVISION_P2(adapter->ahw.revision_id)) ? in netxen_nic_validate_product_offs()
703 1 : netxen_p3_has_mn(adapter); in netxen_nic_validate_product_offs()
717 if (adapter->fw->size < tab_size) in netxen_nic_validate_product_offs()
724 u8 chiprev = adapter->ahw.revision_id; in netxen_nic_validate_product_offs()
737 adapter->file_prd_off = offs; in netxen_nic_validate_product_offs()
742 if (mn_present && NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_nic_validate_product_offs()
751 netxen_nic_validate_unified_romimage(struct netxen_adapter *adapter) in netxen_nic_validate_unified_romimage() argument
753 if (netxen_nic_validate_header(adapter)) { in netxen_nic_validate_unified_romimage()
754 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
759 if (netxen_nic_validate_product_offs(adapter)) { in netxen_nic_validate_unified_romimage()
760 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
765 if (netxen_nic_validate_bootld(adapter)) { in netxen_nic_validate_unified_romimage()
766 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
771 if (netxen_nic_validate_fw(adapter)) { in netxen_nic_validate_unified_romimage()
772 dev_err(&adapter->pdev->dev, in netxen_nic_validate_unified_romimage()
780 static struct uni_data_desc *nx_get_data_desc(struct netxen_adapter *adapter, in nx_get_data_desc() argument
783 const u8 *unirom = adapter->fw->data; in nx_get_data_desc()
784 int idx = cpu_to_le32(*((int *)&unirom[adapter->file_prd_off] + in nx_get_data_desc()
801 nx_get_bootld_offs(struct netxen_adapter *adapter) in nx_get_bootld_offs() argument
805 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_bootld_offs()
806 offs = cpu_to_le32((nx_get_data_desc(adapter, in nx_get_bootld_offs()
810 return (u8 *)&adapter->fw->data[offs]; in nx_get_bootld_offs()
814 nx_get_fw_offs(struct netxen_adapter *adapter) in nx_get_fw_offs() argument
818 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_fw_offs()
819 offs = cpu_to_le32((nx_get_data_desc(adapter, in nx_get_fw_offs()
823 return (u8 *)&adapter->fw->data[offs]; in nx_get_fw_offs()
827 nx_get_fw_size(struct netxen_adapter *adapter) in nx_get_fw_size() argument
829 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) in nx_get_fw_size()
830 return cpu_to_le32((nx_get_data_desc(adapter, in nx_get_fw_size()
835 *(u32 *)&adapter->fw->data[NX_FW_SIZE_OFFSET]); in nx_get_fw_size()
839 nx_get_fw_version(struct netxen_adapter *adapter) in nx_get_fw_version() argument
842 const struct firmware *fw = adapter->fw; in nx_get_fw_version()
847 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) { in nx_get_fw_version()
849 fw_data_desc = nx_get_data_desc(adapter, in nx_get_fw_version()
872 nx_get_bios_version(struct netxen_adapter *adapter) in nx_get_bios_version() argument
874 const struct firmware *fw = adapter->fw; in nx_get_bios_version()
875 __le32 bios_ver, prd_off = adapter->file_prd_off; in nx_get_bios_version()
877 if (adapter->fw_type == NX_UNIFIED_ROMIMAGE) { in nx_get_bios_version()
888 netxen_need_fw_reset(struct netxen_adapter *adapter) in netxen_need_fw_reset() argument
896 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_need_fw_reset()
899 if (adapter->need_fw_reset) in netxen_need_fw_reset()
903 if (NXRD32(adapter, CRB_CMDPEG_STATE) == PHAN_INITIALIZE_FAILED) in netxen_need_fw_reset()
906 old_count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); in netxen_need_fw_reset()
912 NXWR32(adapter, CRB_CMDPEG_STATE, in netxen_need_fw_reset()
917 count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); in netxen_need_fw_reset()
927 if (adapter->fw) { in netxen_need_fw_reset()
929 val = nx_get_fw_version(adapter); in netxen_need_fw_reset()
933 major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR); in netxen_need_fw_reset()
934 minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR); in netxen_need_fw_reset()
935 build = NXRD32(adapter, NETXEN_FW_VERSION_SUB); in netxen_need_fw_reset()
941 adapter->fw_type != NX_UNIFIED_ROMIMAGE) { in netxen_need_fw_reset()
943 val = NXRD32(adapter, NETXEN_MIU_MN_CONTROL); in netxen_need_fw_reset()
947 if (adapter->fw_type != fw_type) in netxen_need_fw_reset()
958 netxen_check_flash_fw_compatibility(struct netxen_adapter *adapter) in netxen_check_flash_fw_compatibility() argument
962 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_check_flash_fw_compatibility()
965 if (netxen_rom_fast_read(adapter, in netxen_check_flash_fw_compatibility()
967 dev_err(&adapter->pdev->dev, "Unable to read flash fw" in netxen_check_flash_fw_compatibility()
977 dev_info(&adapter->pdev->dev, "Flash fw[%d.%d.%d] is < min fw supported" in netxen_check_flash_fw_compatibility()
993 netxen_load_firmware(struct netxen_adapter *adapter) in netxen_load_firmware() argument
997 const struct firmware *fw = adapter->fw; in netxen_load_firmware()
998 struct pci_dev *pdev = adapter->pdev; in netxen_load_firmware()
1001 fw_name[adapter->fw_type]); in netxen_load_firmware()
1003 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_load_firmware()
1004 NXWR32(adapter, NETXEN_ROMUSB_GLB_CAS_RST, 1); in netxen_load_firmware()
1011 ptr64 = (u64 *)nx_get_bootld_offs(adapter); in netxen_load_firmware()
1017 if (adapter->pci_mem_write(adapter, flashaddr, data)) in netxen_load_firmware()
1023 size = (__force u32)nx_get_fw_size(adapter) / 8; in netxen_load_firmware()
1025 ptr64 = (u64 *)nx_get_fw_offs(adapter); in netxen_load_firmware()
1031 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1038 size = (__force u32)nx_get_fw_size(adapter) % 8; in netxen_load_firmware()
1042 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1055 if (netxen_rom_fast_read(adapter, in netxen_load_firmware()
1058 if (netxen_rom_fast_read(adapter, in netxen_load_firmware()
1065 if (adapter->pci_mem_write(adapter, in netxen_load_firmware()
1074 if (NX_IS_REVISION_P3P(adapter->ahw.revision_id)) { in netxen_load_firmware()
1075 NXWR32(adapter, NETXEN_CRB_PEG_NET_0 + 0x18, 0x1020); in netxen_load_firmware()
1076 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0x80001e); in netxen_load_firmware()
1077 } else if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_load_firmware()
1078 NXWR32(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 0x80001d); in netxen_load_firmware()
1080 NXWR32(adapter, NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL, 0x3fff); in netxen_load_firmware()
1081 NXWR32(adapter, NETXEN_ROMUSB_GLB_CAS_RST, 0); in netxen_load_firmware()
1088 netxen_validate_firmware(struct netxen_adapter *adapter) in netxen_validate_firmware() argument
1093 struct pci_dev *pdev = adapter->pdev; in netxen_validate_firmware()
1094 const struct firmware *fw = adapter->fw; in netxen_validate_firmware()
1095 u8 fw_type = adapter->fw_type; in netxen_validate_firmware()
1099 if (netxen_nic_validate_unified_romimage(adapter)) in netxen_validate_firmware()
1110 val = nx_get_fw_version(adapter); in netxen_validate_firmware()
1112 if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) in netxen_validate_firmware()
1127 val = nx_get_bios_version(adapter); in netxen_validate_firmware()
1128 netxen_rom_fast_read(adapter, NX_BIOS_VERSION_OFFSET, (int *)&bios); in netxen_validate_firmware()
1135 if (netxen_rom_fast_read(adapter, in netxen_validate_firmware()
1145 NX_IS_REVISION_P3(adapter->ahw.revision_id)) { in netxen_validate_firmware()
1154 if (!netxen_p3_has_mn(adapter) || in netxen_validate_firmware()
1155 NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_validate_firmware()
1163 NXWR32(adapter, NETXEN_CAM_RAM(0x1fc), NETXEN_BDINFO_MAGIC); in netxen_validate_firmware()
1168 nx_get_next_fwtype(struct netxen_adapter *adapter) in nx_get_next_fwtype() argument
1172 switch (adapter->fw_type) { in nx_get_next_fwtype()
1178 if (NX_IS_REVISION_P3P(adapter->ahw.revision_id)) in nx_get_next_fwtype()
1180 else if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in nx_get_next_fwtype()
1182 else if (netxen_p3_has_mn(adapter)) in nx_get_next_fwtype()
1199 adapter->fw_type = fw_type; in nx_get_next_fwtype()
1203 netxen_p3_has_mn(struct netxen_adapter *adapter) in netxen_p3_has_mn() argument
1209 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_p3_has_mn()
1212 netxen_rom_fast_read(adapter, in netxen_p3_has_mn()
1218 capability = NXRD32(adapter, NX_PEG_TUNE_CAPABILITY); in netxen_p3_has_mn()
1225 void netxen_request_firmware(struct netxen_adapter *adapter) in netxen_request_firmware() argument
1227 struct pci_dev *pdev = adapter->pdev; in netxen_request_firmware()
1230 adapter->fw_type = NX_UNKNOWN_ROMIMAGE; in netxen_request_firmware()
1233 nx_get_next_fwtype(adapter); in netxen_request_firmware()
1235 if (adapter->fw_type == NX_FLASH_ROMIMAGE) { in netxen_request_firmware()
1236 adapter->fw = NULL; in netxen_request_firmware()
1238 rc = request_firmware(&adapter->fw, in netxen_request_firmware()
1239 fw_name[adapter->fw_type], &pdev->dev); in netxen_request_firmware()
1243 rc = netxen_validate_firmware(adapter); in netxen_request_firmware()
1245 release_firmware(adapter->fw); in netxen_request_firmware()
1254 netxen_release_firmware(struct netxen_adapter *adapter) in netxen_release_firmware() argument
1256 release_firmware(adapter->fw); in netxen_release_firmware()
1257 adapter->fw = NULL; in netxen_release_firmware()
1260 int netxen_init_dummy_dma(struct netxen_adapter *adapter) in netxen_init_dummy_dma() argument
1265 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_init_dummy_dma()
1268 adapter->dummy_dma.addr = pci_alloc_consistent(adapter->pdev, in netxen_init_dummy_dma()
1270 &adapter->dummy_dma.phys_addr); in netxen_init_dummy_dma()
1271 if (adapter->dummy_dma.addr == NULL) { in netxen_init_dummy_dma()
1272 dev_err(&adapter->pdev->dev, in netxen_init_dummy_dma()
1277 addr = (uint64_t) adapter->dummy_dma.phys_addr; in netxen_init_dummy_dma()
1281 NXWR32(adapter, CRB_HOST_DUMMY_BUF_ADDR_HI, hi); in netxen_init_dummy_dma()
1282 NXWR32(adapter, CRB_HOST_DUMMY_BUF_ADDR_LO, lo); in netxen_init_dummy_dma()
1295 void netxen_free_dummy_dma(struct netxen_adapter *adapter) in netxen_free_dummy_dma() argument
1300 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_free_dummy_dma()
1303 if (!adapter->dummy_dma.addr) in netxen_free_dummy_dma()
1306 ctrl = NXRD32(adapter, NETXEN_DMA_WATCHDOG_CTRL); in netxen_free_dummy_dma()
1308 NXWR32(adapter, NETXEN_DMA_WATCHDOG_CTRL, (ctrl | 0x2)); in netxen_free_dummy_dma()
1314 ctrl = NXRD32(adapter, NETXEN_DMA_WATCHDOG_CTRL); in netxen_free_dummy_dma()
1322 pci_free_consistent(adapter->pdev, in netxen_free_dummy_dma()
1324 adapter->dummy_dma.addr, in netxen_free_dummy_dma()
1325 adapter->dummy_dma.phys_addr); in netxen_free_dummy_dma()
1326 adapter->dummy_dma.addr = NULL; in netxen_free_dummy_dma()
1328 dev_err(&adapter->pdev->dev, "dma_watchdog_shutdown failed\n"); in netxen_free_dummy_dma()
1331 int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val) in netxen_phantom_init() argument
1340 val = NXRD32(adapter, CRB_CMDPEG_STATE); in netxen_phantom_init()
1355 NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_FAILED); in netxen_phantom_init()
1358 dev_warn(&adapter->pdev->dev, "firmware init failed\n"); in netxen_phantom_init()
1363 netxen_receive_peg_ready(struct netxen_adapter *adapter) in netxen_receive_peg_ready() argument
1369 val = NXRD32(adapter, CRB_RCVPEG_STATE); in netxen_receive_peg_ready()
1387 int netxen_init_firmware(struct netxen_adapter *adapter) in netxen_init_firmware() argument
1391 err = netxen_receive_peg_ready(adapter); in netxen_init_firmware()
1395 NXWR32(adapter, CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT); in netxen_init_firmware()
1396 NXWR32(adapter, CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE); in netxen_init_firmware()
1397 NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK); in netxen_init_firmware()
1399 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_init_firmware()
1400 NXWR32(adapter, CRB_NIC_MSI_MODE_HOST, MSI_MODE_MULTIFUNC); in netxen_init_firmware()
1406 netxen_handle_linkevent(struct netxen_adapter *adapter, nx_fw_msg_t *msg) in netxen_handle_linkevent() argument
1412 struct net_device *netdev = adapter->netdev; in netxen_handle_linkevent()
1414 adapter->has_link_events = 1; in netxen_handle_linkevent()
1435 adapter->link_duplex = DUPLEX_FULL; in netxen_handle_linkevent()
1437 adapter->link_duplex = DUPLEX_HALF; in netxen_handle_linkevent()
1438 adapter->module_type = module; in netxen_handle_linkevent()
1439 adapter->link_autoneg = autoneg; in netxen_handle_linkevent()
1440 adapter->link_speed = link_speed; in netxen_handle_linkevent()
1442 netxen_advert_link_change(adapter, link_status); in netxen_handle_linkevent()
1465 netxen_handle_linkevent(sds_ring->adapter, &msg); in netxen_handle_fw_message()
1473 netxen_alloc_rx_skb(struct netxen_adapter *adapter, in netxen_alloc_rx_skb() argument
1479 struct pci_dev *pdev = adapter->pdev; in netxen_alloc_rx_skb()
1481 buffer->skb = netdev_alloc_skb(adapter->netdev, rds_ring->skb_size); in netxen_alloc_rx_skb()
1487 if (!adapter->ahw.cut_through) in netxen_alloc_rx_skb()
1506 static struct sk_buff *netxen_process_rxbuf(struct netxen_adapter *adapter, in netxen_process_rxbuf() argument
1514 pci_unmap_single(adapter->pdev, buffer->dma, rds_ring->dma_size, in netxen_process_rxbuf()
1521 if (likely((adapter->netdev->features & NETIF_F_RXCSUM) in netxen_process_rxbuf()
1523 adapter->stats.csummed++; in netxen_process_rxbuf()
1535 netxen_process_rcv(struct netxen_adapter *adapter, in netxen_process_rcv() argument
1539 struct net_device *netdev = adapter->netdev; in netxen_process_rcv()
1540 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in netxen_process_rcv()
1546 if (unlikely(ring >= adapter->max_rds_rings)) in netxen_process_rcv()
1561 skb = netxen_process_rxbuf(adapter, rds_ring, index, cksum); in netxen_process_rcv()
1578 adapter->stats.rx_pkts++; in netxen_process_rcv()
1579 adapter->stats.rxbytes += length; in netxen_process_rcv()
1589 netxen_process_lro(struct netxen_adapter *adapter, in netxen_process_lro() argument
1593 struct net_device *netdev = adapter->netdev; in netxen_process_lro()
1594 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in netxen_process_lro()
1607 if (unlikely(ring >= adapter->max_rds_rings)) in netxen_process_lro()
1625 skb = netxen_process_rxbuf(adapter, rds_ring, index, STATUS_CKSUM_OK); in netxen_process_lro()
1652 if (adapter->flags & NETXEN_FW_MSS_CAP) in netxen_process_lro()
1657 adapter->stats.lro_pkts++; in netxen_process_lro()
1658 adapter->stats.rxbytes += length; in netxen_process_lro()
1669 struct netxen_adapter *adapter = sds_ring->adapter; in netxen_process_rcv_ring() local
1698 rxbuf = netxen_process_rcv(adapter, sds_ring, in netxen_process_rcv_ring()
1704 rxbuf = netxen_process_lro(adapter, sds_ring, in netxen_process_rcv_ring()
1728 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_process_rcv_ring()
1730 &adapter->recv_ctx.rds_rings[ring]; in netxen_process_rcv_ring()
1736 netxen_alloc_rx_skb(adapter, rds_ring, rxbuf); in netxen_process_rcv_ring()
1744 netxen_post_rx_buffers_nodb(adapter, rds_ring); in netxen_process_rcv_ring()
1749 NXWRIO(adapter, sds_ring->crb_sts_consumer, consumer); in netxen_process_rcv_ring()
1756 int netxen_process_cmd_ring(struct netxen_adapter *adapter) in netxen_process_cmd_ring() argument
1761 struct pci_dev *pdev = adapter->pdev; in netxen_process_cmd_ring()
1762 struct net_device *netdev = adapter->netdev; in netxen_process_cmd_ring()
1765 struct nx_host_tx_ring *tx_ring = adapter->tx_ring; in netxen_process_cmd_ring()
1767 if (!spin_trylock_bh(&adapter->tx_clean_lock)) in netxen_process_cmd_ring()
1787 adapter->stats.xmitfinished++; in netxen_process_cmd_ring()
1805 adapter->tx_timeo_cnt = 0; in netxen_process_cmd_ring()
1822 spin_unlock_bh(&adapter->tx_clean_lock); in netxen_process_cmd_ring()
1828 netxen_post_rx_buffers(struct netxen_adapter *adapter, u32 ringid, in netxen_post_rx_buffers() argument
1845 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer)) in netxen_post_rx_buffers()
1863 NXWRIO(adapter, rds_ring->crb_rcv_producer, in netxen_post_rx_buffers()
1866 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_post_rx_buffers()
1877 netxen_set_msg_ctxid(msg, adapter->portnum); in netxen_post_rx_buffers()
1879 NXWRIO(adapter, DB_NORMALIZE(adapter, in netxen_post_rx_buffers()
1886 netxen_post_rx_buffers_nodb(struct netxen_adapter *adapter, in netxen_post_rx_buffers_nodb() argument
1905 if (netxen_alloc_rx_skb(adapter, rds_ring, buffer)) in netxen_post_rx_buffers_nodb()
1923 NXWRIO(adapter, rds_ring->crb_rcv_producer, in netxen_post_rx_buffers_nodb()
1929 void netxen_nic_clear_stats(struct netxen_adapter *adapter) in netxen_nic_clear_stats() argument
1931 memset(&adapter->stats, 0, sizeof(adapter->stats)); in netxen_nic_clear_stats()