Lines Matching refs:adapter

30 netxen_poll_rsp(struct netxen_adapter *adapter)  in netxen_poll_rsp()  argument
42 rsp = NXRD32(adapter, NX_CDRP_CRB_OFFSET); in netxen_poll_rsp()
49 netxen_issue_cmd(struct netxen_adapter *adapter, struct netxen_cmd_args *cmd) in netxen_issue_cmd() argument
55 signature = NX_CDRP_SIGNATURE_MAKE(adapter->ahw.pci_func, in netxen_issue_cmd()
58 if (netxen_api_lock(adapter)) in netxen_issue_cmd()
61 NXWR32(adapter, NX_SIGN_CRB_OFFSET, signature); in netxen_issue_cmd()
63 NXWR32(adapter, NX_ARG1_CRB_OFFSET, cmd->req.arg1); in netxen_issue_cmd()
65 NXWR32(adapter, NX_ARG2_CRB_OFFSET, cmd->req.arg2); in netxen_issue_cmd()
67 NXWR32(adapter, NX_ARG3_CRB_OFFSET, cmd->req.arg3); in netxen_issue_cmd()
69 NXWR32(adapter, NX_CDRP_CRB_OFFSET, NX_CDRP_FORM_CMD(cmd->req.cmd)); in netxen_issue_cmd()
71 rsp = netxen_poll_rsp(adapter); in netxen_issue_cmd()
79 rcode = NXRD32(adapter, NX_ARG1_CRB_OFFSET); in netxen_issue_cmd()
86 cmd->rsp.arg2 = NXRD32(adapter, NX_ARG2_CRB_OFFSET); in netxen_issue_cmd()
88 cmd->rsp.arg3 = NXRD32(adapter, NX_ARG3_CRB_OFFSET); in netxen_issue_cmd()
92 cmd->rsp.arg1 = NXRD32(adapter, NX_ARG1_CRB_OFFSET); in netxen_issue_cmd()
94 netxen_api_unlock(adapter); in netxen_issue_cmd()
100 netxen_get_minidump_template_size(struct netxen_adapter *adapter) in netxen_get_minidump_template_size() argument
106 netxen_issue_cmd(adapter, &cmd); in netxen_get_minidump_template_size()
108 dev_info(&adapter->pdev->dev, in netxen_get_minidump_template_size()
112 adapter->mdump.md_template_size = cmd.rsp.arg2; in netxen_get_minidump_template_size()
113 adapter->mdump.md_template_ver = cmd.rsp.arg3; in netxen_get_minidump_template_size()
118 netxen_get_minidump_template(struct netxen_adapter *adapter) in netxen_get_minidump_template() argument
124 size = adapter->mdump.md_template_size; in netxen_get_minidump_template()
127 dev_err(&adapter->pdev->dev, "Can not capture Minidump " in netxen_get_minidump_template()
132 addr = pci_zalloc_consistent(adapter->pdev, size, &md_template_addr); in netxen_get_minidump_template()
134 dev_err(&adapter->pdev->dev, "Unable to allocate dmable memory for template.\n"); in netxen_get_minidump_template()
144 netxen_issue_cmd(adapter, &cmd); in netxen_get_minidump_template()
147 memcpy(adapter->mdump.md_template, addr, size); in netxen_get_minidump_template()
149 dev_err(&adapter->pdev->dev, "Failed to get minidump template, " in netxen_get_minidump_template()
153 pci_free_consistent(adapter->pdev, size, addr, md_template_addr); in netxen_get_minidump_template()
158 netxen_check_template_checksum(struct netxen_adapter *adapter) in netxen_check_template_checksum() argument
161 u32 *buff = adapter->mdump.md_template; in netxen_check_template_checksum()
162 int count = adapter->mdump.md_template_size/sizeof(uint32_t) ; in netxen_check_template_checksum()
173 netxen_setup_minidump(struct netxen_adapter *adapter) in netxen_setup_minidump() argument
178 err = netxen_get_minidump_template_size(adapter); in netxen_setup_minidump()
180 adapter->mdump.fw_supports_md = 0; in netxen_setup_minidump()
183 dev_info(&adapter->pdev->dev, in netxen_setup_minidump()
192 if (!adapter->mdump.md_template_size) { in netxen_setup_minidump()
193 dev_err(&adapter->pdev->dev, "Error : Invalid template size " in netxen_setup_minidump()
197 adapter->mdump.md_template = in netxen_setup_minidump()
198 kmalloc(adapter->mdump.md_template_size, GFP_KERNEL); in netxen_setup_minidump()
200 if (!adapter->mdump.md_template) in netxen_setup_minidump()
203 err = netxen_get_minidump_template(adapter); in netxen_setup_minidump()
206 adapter->mdump.fw_supports_md = 0; in netxen_setup_minidump()
210 if (netxen_check_template_checksum(adapter)) { in netxen_setup_minidump()
211 dev_err(&adapter->pdev->dev, "Minidump template checksum Error\n"); in netxen_setup_minidump()
216 adapter->mdump.md_capture_mask = NX_DUMP_MASK_DEF; in netxen_setup_minidump()
217 tmp_buf = (u32 *) adapter->mdump.md_template; in netxen_setup_minidump()
218 template = (u32 *) adapter->mdump.md_template; in netxen_setup_minidump()
219 for (i = 0; i < adapter->mdump.md_template_size/sizeof(u32); i++) in netxen_setup_minidump()
222 adapter->mdump.md_template; in netxen_setup_minidump()
223 adapter->mdump.md_capture_buff = NULL; in netxen_setup_minidump()
224 adapter->mdump.fw_supports_md = 1; in netxen_setup_minidump()
225 adapter->mdump.md_enabled = 0; in netxen_setup_minidump()
230 kfree(adapter->mdump.md_template); in netxen_setup_minidump()
231 adapter->mdump.md_template = NULL; in netxen_setup_minidump()
237 nx_fw_cmd_set_mtu(struct netxen_adapter *adapter, int mtu) in nx_fw_cmd_set_mtu() argument
240 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in nx_fw_cmd_set_mtu()
250 netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_set_mtu()
259 nx_fw_cmd_set_gbe_port(struct netxen_adapter *adapter, in nx_fw_cmd_set_gbe_port() argument
269 return netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_set_gbe_port()
273 nx_fw_cmd_create_rx_ctx(struct netxen_adapter *adapter) in nx_fw_cmd_create_rx_ctx() argument
295 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in nx_fw_cmd_create_rx_ctx()
297 nrds_rings = adapter->max_rds_rings; in nx_fw_cmd_create_rx_ctx()
298 nsds_rings = adapter->max_sds_rings; in nx_fw_cmd_create_rx_ctx()
305 addr = pci_alloc_consistent(adapter->pdev, in nx_fw_cmd_create_rx_ctx()
311 addr = pci_alloc_consistent(adapter->pdev, in nx_fw_cmd_create_rx_ctx()
324 if (adapter->flags & NETXEN_FW_MSS_CAP) in nx_fw_cmd_create_rx_ctx()
372 err = netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_create_rx_ctx()
387 rds_ring->crb_rcv_producer = netxen_get_ioaddr(adapter, in nx_fw_cmd_create_rx_ctx()
398 sds_ring->crb_sts_consumer = netxen_get_ioaddr(adapter, in nx_fw_cmd_create_rx_ctx()
402 sds_ring->crb_intr_mask = netxen_get_ioaddr(adapter, in nx_fw_cmd_create_rx_ctx()
411 pci_free_consistent(adapter->pdev, rsp_size, prsp, cardrsp_phys_addr); in nx_fw_cmd_create_rx_ctx()
413 pci_free_consistent(adapter->pdev, rq_size, prq, hostrq_phys_addr); in nx_fw_cmd_create_rx_ctx()
418 nx_fw_cmd_destroy_rx_ctx(struct netxen_adapter *adapter) in nx_fw_cmd_destroy_rx_ctx() argument
420 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in nx_fw_cmd_destroy_rx_ctx()
429 if (netxen_issue_cmd(adapter, &cmd)) { in nx_fw_cmd_destroy_rx_ctx()
437 nx_fw_cmd_create_tx_ctx(struct netxen_adapter *adapter) in nx_fw_cmd_create_tx_ctx() argument
448 struct nx_host_tx_ring *tx_ring = adapter->tx_ring; in nx_fw_cmd_create_tx_ctx()
449 struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; in nx_fw_cmd_create_tx_ctx()
453 rq_addr = pci_alloc_consistent(adapter->pdev, in nx_fw_cmd_create_tx_ctx()
459 rsp_addr = pci_alloc_consistent(adapter->pdev, in nx_fw_cmd_create_tx_ctx()
483 prq->dummy_dma_addr = cpu_to_le64(adapter->dummy_dma.phys_addr); in nx_fw_cmd_create_tx_ctx()
499 err = netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_create_tx_ctx()
503 tx_ring->crb_cmd_producer = netxen_get_ioaddr(adapter, in nx_fw_cmd_create_tx_ctx()
506 adapter->tx_state = in nx_fw_cmd_create_tx_ctx()
509 adapter->tx_context_id = in nx_fw_cmd_create_tx_ctx()
517 pci_free_consistent(adapter->pdev, rsp_size, rsp_addr, rsp_phys_addr); in nx_fw_cmd_create_tx_ctx()
520 pci_free_consistent(adapter->pdev, rq_size, rq_addr, rq_phys_addr); in nx_fw_cmd_create_tx_ctx()
526 nx_fw_cmd_destroy_tx_ctx(struct netxen_adapter *adapter) in nx_fw_cmd_destroy_tx_ctx() argument
531 cmd.req.arg1 = adapter->tx_context_id; in nx_fw_cmd_destroy_tx_ctx()
535 if (netxen_issue_cmd(adapter, &cmd)) { in nx_fw_cmd_destroy_tx_ctx()
543 nx_fw_cmd_query_phy(struct netxen_adapter *adapter, u32 reg, u32 *val) in nx_fw_cmd_query_phy() argument
554 rcode = netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_query_phy()
566 nx_fw_cmd_set_phy(struct netxen_adapter *adapter, u32 reg, u32 val) in nx_fw_cmd_set_phy() argument
576 rcode = netxen_issue_cmd(adapter, &cmd); in nx_fw_cmd_set_phy()
701 netxen_init_old_ctx(struct netxen_adapter *adapter) in netxen_init_old_ctx() argument
708 int port = adapter->portnum; in netxen_init_old_ctx()
712 tx_ring = adapter->tx_ring; in netxen_init_old_ctx()
713 recv_ctx = &adapter->recv_ctx; in netxen_init_old_ctx()
720 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_init_old_ctx()
729 for (ring = 0; ring < adapter->max_sds_rings; ring++) { in netxen_init_old_ctx()
740 hwctx->sts_ring_count = cpu_to_le32(adapter->max_sds_rings); in netxen_init_old_ctx()
742 signature = (adapter->max_sds_rings > 1) ? in netxen_init_old_ctx()
745 NXWR32(adapter, CRB_CTX_ADDR_REG_LO(port), in netxen_init_old_ctx()
747 NXWR32(adapter, CRB_CTX_ADDR_REG_HI(port), in netxen_init_old_ctx()
749 NXWR32(adapter, CRB_CTX_SIGNATURE_REG(port), in netxen_init_old_ctx()
754 int netxen_alloc_hw_resources(struct netxen_adapter *adapter) in netxen_alloc_hw_resources() argument
764 struct pci_dev *pdev = adapter->pdev; in netxen_alloc_hw_resources()
765 struct net_device *netdev = adapter->netdev; in netxen_alloc_hw_resources()
766 int port = adapter->portnum; in netxen_alloc_hw_resources()
768 recv_ctx = &adapter->recv_ctx; in netxen_alloc_hw_resources()
769 tx_ring = adapter->tx_ring; in netxen_alloc_hw_resources()
801 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_alloc_hw_resources()
803 addr = pci_alloc_consistent(adapter->pdev, in netxen_alloc_hw_resources()
815 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) in netxen_alloc_hw_resources()
817 netxen_get_ioaddr(adapter, in netxen_alloc_hw_resources()
821 for (ring = 0; ring < adapter->max_sds_rings; ring++) { in netxen_alloc_hw_resources()
824 addr = pci_alloc_consistent(adapter->pdev, in netxen_alloc_hw_resources()
836 if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_alloc_hw_resources()
838 netxen_get_ioaddr(adapter, in netxen_alloc_hw_resources()
842 netxen_get_ioaddr(adapter, in netxen_alloc_hw_resources()
848 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_alloc_hw_resources()
849 if (test_and_set_bit(__NX_FW_ATTACHED, &adapter->state)) in netxen_alloc_hw_resources()
851 err = nx_fw_cmd_create_rx_ctx(adapter); in netxen_alloc_hw_resources()
854 err = nx_fw_cmd_create_tx_ctx(adapter); in netxen_alloc_hw_resources()
858 err = netxen_init_old_ctx(adapter); in netxen_alloc_hw_resources()
867 netxen_free_hw_resources(adapter); in netxen_alloc_hw_resources()
871 void netxen_free_hw_resources(struct netxen_adapter *adapter) in netxen_free_hw_resources() argument
879 int port = adapter->portnum; in netxen_free_hw_resources()
881 if (!NX_IS_REVISION_P2(adapter->ahw.revision_id)) { in netxen_free_hw_resources()
882 if (!test_and_clear_bit(__NX_FW_ATTACHED, &adapter->state)) in netxen_free_hw_resources()
885 nx_fw_cmd_destroy_rx_ctx(adapter); in netxen_free_hw_resources()
886 nx_fw_cmd_destroy_tx_ctx(adapter); in netxen_free_hw_resources()
888 netxen_api_lock(adapter); in netxen_free_hw_resources()
889 NXWR32(adapter, CRB_CTX_SIGNATURE_REG(port), in netxen_free_hw_resources()
891 netxen_api_unlock(adapter); in netxen_free_hw_resources()
898 recv_ctx = &adapter->recv_ctx; in netxen_free_hw_resources()
901 pci_free_consistent(adapter->pdev, in netxen_free_hw_resources()
909 tx_ring = adapter->tx_ring; in netxen_free_hw_resources()
911 pci_free_consistent(adapter->pdev, in netxen_free_hw_resources()
917 for (ring = 0; ring < adapter->max_rds_rings; ring++) { in netxen_free_hw_resources()
921 pci_free_consistent(adapter->pdev, in netxen_free_hw_resources()
929 for (ring = 0; ring < adapter->max_sds_rings; ring++) { in netxen_free_hw_resources()
933 pci_free_consistent(adapter->pdev, in netxen_free_hw_resources()