Lines Matching refs:nport

13 efc_nport_free_resources(struct efc_nport *nport, int evt, void *data)  in efc_nport_free_resources()  argument
15 struct efc *efc = nport->efc; in efc_nport_free_resources()
18 nport->attached = false; in efc_nport_free_resources()
21 if (nport->dma.virt) { in efc_nport_free_resources()
22 dma_free_coherent(&efc->pci->dev, nport->dma.size, in efc_nport_free_resources()
23 nport->dma.virt, nport->dma.phys); in efc_nport_free_resources()
24 memset(&nport->dma, 0, sizeof(struct efc_dma)); in efc_nport_free_resources()
28 sli_resource_free(efc->sli, SLI4_RSRC_VPI, nport->indicator); in efc_nport_free_resources()
30 efc_nport_cb(efc, evt, nport); in efc_nport_free_resources()
34 efc_nport_get_mbox_status(struct efc_nport *nport, u8 *mqe, int status) in efc_nport_get_mbox_status() argument
36 struct efc *efc = nport->efc; in efc_nport_get_mbox_status()
42 nport->indicator, status, le16_to_cpu(hdr->status)); in efc_nport_get_mbox_status()
52 struct efc_nport *nport = arg; in efc_nport_free_unreg_vpi_cb() local
56 rc = efc_nport_get_mbox_status(nport, mqe, status); in efc_nport_free_unreg_vpi_cb()
60 efc_nport_free_resources(nport, evt, mqe); in efc_nport_free_unreg_vpi_cb()
65 efc_nport_free_unreg_vpi(struct efc_nport *nport) in efc_nport_free_unreg_vpi() argument
67 struct efc *efc = nport->efc; in efc_nport_free_unreg_vpi()
71 rc = sli_cmd_unreg_vpi(efc->sli, data, nport->indicator, in efc_nport_free_unreg_vpi()
75 efc_nport_free_resources(nport, EFC_EVT_NPORT_FREE_FAIL, data); in efc_nport_free_unreg_vpi()
80 efc_nport_free_unreg_vpi_cb, nport); in efc_nport_free_unreg_vpi()
83 efc_nport_free_resources(nport, EFC_EVT_NPORT_FREE_FAIL, data); in efc_nport_free_unreg_vpi()
88 efc_nport_send_evt(struct efc_nport *nport, int evt, void *data) in efc_nport_send_evt() argument
90 struct efc *efc = nport->efc; in efc_nport_send_evt()
93 efc_nport_cb(efc, evt, nport); in efc_nport_send_evt()
97 nport->attached = true; in efc_nport_send_evt()
100 if (nport->free_req_pending) in efc_nport_send_evt()
101 efc_nport_free_unreg_vpi(nport); in efc_nport_send_evt()
107 struct efc_nport *nport = arg; in efc_nport_alloc_init_vpi_cb() local
109 if (efc_nport_get_mbox_status(nport, mqe, status)) { in efc_nport_alloc_init_vpi_cb()
110 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, mqe); in efc_nport_alloc_init_vpi_cb()
114 efc_nport_send_evt(nport, EFC_EVT_NPORT_ALLOC_OK, mqe); in efc_nport_alloc_init_vpi_cb()
119 efc_nport_alloc_init_vpi(struct efc_nport *nport) in efc_nport_alloc_init_vpi() argument
121 struct efc *efc = nport->efc; in efc_nport_alloc_init_vpi()
126 if (nport->free_req_pending) { in efc_nport_alloc_init_vpi()
127 efc_nport_free_resources(nport, EFC_EVT_NPORT_FREE_OK, data); in efc_nport_alloc_init_vpi()
132 nport->indicator, nport->domain->indicator); in efc_nport_alloc_init_vpi()
135 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, data); in efc_nport_alloc_init_vpi()
140 efc_nport_alloc_init_vpi_cb, nport); in efc_nport_alloc_init_vpi()
143 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, data); in efc_nport_alloc_init_vpi()
150 struct efc_nport *nport = arg; in efc_nport_alloc_read_sparm64_cb() local
153 if (efc_nport_get_mbox_status(nport, mqe, status)) { in efc_nport_alloc_read_sparm64_cb()
154 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, mqe); in efc_nport_alloc_read_sparm64_cb()
158 payload = nport->dma.virt; in efc_nport_alloc_read_sparm64_cb()
160 memcpy(&nport->sli_wwpn, payload + SLI4_READ_SPARM64_WWPN_OFFSET, in efc_nport_alloc_read_sparm64_cb()
161 sizeof(nport->sli_wwpn)); in efc_nport_alloc_read_sparm64_cb()
162 memcpy(&nport->sli_wwnn, payload + SLI4_READ_SPARM64_WWNN_OFFSET, in efc_nport_alloc_read_sparm64_cb()
163 sizeof(nport->sli_wwnn)); in efc_nport_alloc_read_sparm64_cb()
165 dma_free_coherent(&efc->pci->dev, nport->dma.size, nport->dma.virt, in efc_nport_alloc_read_sparm64_cb()
166 nport->dma.phys); in efc_nport_alloc_read_sparm64_cb()
167 memset(&nport->dma, 0, sizeof(struct efc_dma)); in efc_nport_alloc_read_sparm64_cb()
168 efc_nport_alloc_init_vpi(nport); in efc_nport_alloc_read_sparm64_cb()
173 efc_nport_alloc_read_sparm64(struct efc *efc, struct efc_nport *nport) in efc_nport_alloc_read_sparm64() argument
179 nport->dma.size = EFC_SPARAM_DMA_SZ; in efc_nport_alloc_read_sparm64()
180 nport->dma.virt = dma_alloc_coherent(&efc->pci->dev, in efc_nport_alloc_read_sparm64()
181 nport->dma.size, &nport->dma.phys, in efc_nport_alloc_read_sparm64()
183 if (!nport->dma.virt) { in efc_nport_alloc_read_sparm64()
185 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, data); in efc_nport_alloc_read_sparm64()
190 &nport->dma, nport->indicator); in efc_nport_alloc_read_sparm64()
193 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, data); in efc_nport_alloc_read_sparm64()
198 efc_nport_alloc_read_sparm64_cb, nport); in efc_nport_alloc_read_sparm64()
201 efc_nport_free_resources(nport, EFC_EVT_NPORT_ALLOC_FAIL, data); in efc_nport_alloc_read_sparm64()
206 efc_cmd_nport_alloc(struct efc *efc, struct efc_nport *nport, in efc_cmd_nport_alloc() argument
211 nport->indicator = U32_MAX; in efc_cmd_nport_alloc()
212 nport->free_req_pending = false; in efc_cmd_nport_alloc()
215 memcpy(&nport->sli_wwpn, wwpn, sizeof(nport->sli_wwpn)); in efc_cmd_nport_alloc()
222 &nport->indicator, &index)) { in efc_cmd_nport_alloc()
233 efc_nport_alloc_read_sparm64(efc, nport); in efc_cmd_nport_alloc()
235 efc_nport_alloc_init_vpi(nport); in efc_cmd_nport_alloc()
239 sli_resource_free(efc->sli, SLI4_RSRC_VPI, nport->indicator); in efc_cmd_nport_alloc()
250 struct efc_nport *nport = arg; in efc_nport_attach_reg_vpi_cb() local
252 nport->attaching = false; in efc_nport_attach_reg_vpi_cb()
253 if (efc_nport_get_mbox_status(nport, mqe, status)) { in efc_nport_attach_reg_vpi_cb()
254 efc_nport_free_resources(nport, EFC_EVT_NPORT_ATTACH_FAIL, mqe); in efc_nport_attach_reg_vpi_cb()
258 efc_nport_send_evt(nport, EFC_EVT_NPORT_ATTACH_OK, mqe); in efc_nport_attach_reg_vpi_cb()
263 efc_cmd_nport_attach(struct efc *efc, struct efc_nport *nport, u32 fc_id) in efc_cmd_nport_attach() argument
268 if (!nport) { in efc_cmd_nport_attach()
269 efc_log_err(efc, "bad param(s) nport=%p\n", nport); in efc_cmd_nport_attach()
273 nport->fc_id = fc_id; in efc_cmd_nport_attach()
276 rc = sli_cmd_reg_vpi(efc->sli, buf, nport->fc_id, in efc_cmd_nport_attach()
277 nport->sli_wwpn, nport->indicator, in efc_cmd_nport_attach()
278 nport->domain->indicator, false); in efc_cmd_nport_attach()
281 efc_nport_free_resources(nport, EFC_EVT_NPORT_ATTACH_FAIL, buf); in efc_cmd_nport_attach()
286 efc_nport_attach_reg_vpi_cb, nport); in efc_cmd_nport_attach()
289 efc_nport_free_resources(nport, EFC_EVT_NPORT_ATTACH_FAIL, buf); in efc_cmd_nport_attach()
291 nport->attaching = true; in efc_cmd_nport_attach()
298 efc_cmd_nport_free(struct efc *efc, struct efc_nport *nport) in efc_cmd_nport_free() argument
300 if (!nport) { in efc_cmd_nport_free()
301 efc_log_err(efc, "bad parameter(s) nport=%p\n", nport); in efc_cmd_nport_free()
306 if (nport->attached) in efc_cmd_nport_free()
307 efc_nport_free_unreg_vpi(nport); in efc_cmd_nport_free()
308 else if (nport->attaching) in efc_cmd_nport_free()
309 nport->free_req_pending = true; in efc_cmd_nport_free()
311 efc_sm_post_event(&nport->sm, EFC_EVT_NPORT_FREE_OK, NULL); in efc_cmd_nport_free()
359 efc_nport_send_evt(domain->nport, port_evt, NULL); in efc_domain_send_nport_evt()
426 struct efc_nport *nport = domain->nport; in efc_domain_alloc_init_vfi() local
436 domain->fcf_indicator, nport->indicator); in efc_domain_alloc_init_vfi()
459 if (!domain || !domain->nport) { in efc_cmd_domain_alloc()
461 domain, domain ? domain->nport : NULL); in efc_cmd_domain_alloc()
523 domain->nport->fc_id = fc_id; in efc_cmd_domain_attach()
527 domain->nport->indicator, domain->nport->sli_wwpn, in efc_cmd_domain_attach()
528 domain->nport->fc_id); in efc_cmd_domain_attach()
607 struct efc_nport *nport) in efc_cmd_node_alloc() argument
618 rnode->nport = NULL; in efc_cmd_node_alloc()
628 rnode->nport = nport; in efc_cmd_node_alloc()
680 rnode->nport->indicator, rnode->fc_id, sparms, 0, 0)) in efc_cmd_node_attach()
697 if (rnode->nport) { in efc_node_free_resources()
764 if (rnode->nport) { in efc_cmd_node_detach()