Lines Matching full:domain
132 nport->indicator, nport->domain->indicator); in efc_nport_alloc_init_vpi()
207 struct efc_domain *domain, u8 *wwpn) in efc_cmd_nport_alloc() argument
227 if (domain) { in efc_cmd_nport_alloc()
237 /* domain NULL and wwpn non-NULL */ in efc_cmd_nport_alloc()
277 nport->domain->indicator, false); in efc_cmd_nport_attach()
312 efc_domain_get_mbox_status(struct efc_domain *domain, u8 *mqe, int status) in efc_domain_get_mbox_status() argument
314 struct efc *efc = domain->efc; in efc_domain_get_mbox_status()
320 domain->indicator, status, in efc_domain_get_mbox_status()
329 efc_domain_free_resources(struct efc_domain *domain, int evt, void *data) in efc_domain_free_resources() argument
331 struct efc *efc = domain->efc; in efc_domain_free_resources()
334 if (domain->dma.virt) { in efc_domain_free_resources()
336 domain->dma.size, domain->dma.virt, in efc_domain_free_resources()
337 domain->dma.phys); in efc_domain_free_resources()
338 memset(&domain->dma, 0, sizeof(struct efc_dma)); in efc_domain_free_resources()
342 sli_resource_free(efc->sli, SLI4_RSRC_VFI, domain->indicator); in efc_domain_free_resources()
344 efc_domain_cb(efc, evt, domain); in efc_domain_free_resources()
348 efc_domain_send_nport_evt(struct efc_domain *domain, in efc_domain_send_nport_evt() argument
351 struct efc *efc = domain->efc; in efc_domain_send_nport_evt()
354 efc_nport_send_evt(domain->nport, port_evt, NULL); in efc_domain_send_nport_evt()
357 efc_domain_cb(efc, domain_evt, domain); in efc_domain_send_nport_evt()
364 struct efc_domain *domain = arg; in efc_domain_alloc_read_sparm64_cb() local
366 if (efc_domain_get_mbox_status(domain, mqe, status)) { in efc_domain_alloc_read_sparm64_cb()
367 efc_domain_free_resources(domain, in efc_domain_alloc_read_sparm64_cb()
372 efc_domain_send_nport_evt(domain, EFC_EVT_NPORT_ALLOC_OK, in efc_domain_alloc_read_sparm64_cb()
378 efc_domain_alloc_read_sparm64(struct efc_domain *domain) in efc_domain_alloc_read_sparm64() argument
380 struct efc *efc = domain->efc; in efc_domain_alloc_read_sparm64()
384 rc = sli_cmd_read_sparm64(efc->sli, data, &domain->dma, 0); in efc_domain_alloc_read_sparm64()
387 efc_domain_free_resources(domain, in efc_domain_alloc_read_sparm64()
393 efc_domain_alloc_read_sparm64_cb, domain); in efc_domain_alloc_read_sparm64()
396 efc_domain_free_resources(domain, in efc_domain_alloc_read_sparm64()
405 struct efc_domain *domain = arg; in efc_domain_alloc_init_vfi_cb() local
407 if (efc_domain_get_mbox_status(domain, mqe, status)) { in efc_domain_alloc_init_vfi_cb()
408 efc_domain_free_resources(domain, in efc_domain_alloc_init_vfi_cb()
413 efc_domain_alloc_read_sparm64(domain); in efc_domain_alloc_init_vfi_cb()
418 efc_domain_alloc_init_vfi(struct efc_domain *domain) in efc_domain_alloc_init_vfi() argument
420 struct efc *efc = domain->efc; in efc_domain_alloc_init_vfi()
421 struct efc_nport *nport = domain->nport; in efc_domain_alloc_init_vfi()
427 * Copy FCF information into the domain and jump to INIT_VFI. in efc_domain_alloc_init_vfi()
429 domain->fcf_indicator = efc->fcfi; in efc_domain_alloc_init_vfi()
430 rc = sli_cmd_init_vfi(efc->sli, data, domain->indicator, in efc_domain_alloc_init_vfi()
431 domain->fcf_indicator, nport->indicator); in efc_domain_alloc_init_vfi()
434 efc_domain_free_resources(domain, in efc_domain_alloc_init_vfi()
441 efc_domain_alloc_init_vfi_cb, domain); in efc_domain_alloc_init_vfi()
444 efc_domain_free_resources(domain, in efc_domain_alloc_init_vfi()
450 efc_cmd_domain_alloc(struct efc *efc, struct efc_domain *domain, u32 fcf) in efc_cmd_domain_alloc() argument
454 if (!domain || !domain->nport) { in efc_cmd_domain_alloc()
455 efc_log_err(efc, "bad parameter(s) domain=%p nport=%p\n", in efc_cmd_domain_alloc()
456 domain, domain ? domain->nport : NULL); in efc_cmd_domain_alloc()
461 domain->dma.size = EFC_SPARAM_DMA_SZ; in efc_cmd_domain_alloc()
462 domain->dma.virt = dma_alloc_coherent(&efc->pci->dev, in efc_cmd_domain_alloc()
463 domain->dma.size, in efc_cmd_domain_alloc()
464 &domain->dma.phys, GFP_DMA); in efc_cmd_domain_alloc()
465 if (!domain->dma.virt) { in efc_cmd_domain_alloc()
470 domain->fcf = fcf; in efc_cmd_domain_alloc()
471 domain->fcf_indicator = U32_MAX; in efc_cmd_domain_alloc()
472 domain->indicator = U32_MAX; in efc_cmd_domain_alloc()
474 if (sli_resource_alloc(efc->sli, SLI4_RSRC_VFI, &domain->indicator, in efc_cmd_domain_alloc()
479 domain->dma.size, domain->dma.virt, in efc_cmd_domain_alloc()
480 domain->dma.phys); in efc_cmd_domain_alloc()
481 memset(&domain->dma, 0, sizeof(struct efc_dma)); in efc_cmd_domain_alloc()
486 efc_domain_alloc_init_vfi(domain); in efc_cmd_domain_alloc()
494 struct efc_domain *domain = arg; in efc_domain_attach_reg_vfi_cb() local
496 if (efc_domain_get_mbox_status(domain, mqe, status)) { in efc_domain_attach_reg_vfi_cb()
497 efc_domain_free_resources(domain, in efc_domain_attach_reg_vfi_cb()
502 efc_domain_send_nport_evt(domain, EFC_EVT_NPORT_ATTACH_OK, in efc_domain_attach_reg_vfi_cb()
508 efc_cmd_domain_attach(struct efc *efc, struct efc_domain *domain, u32 fc_id) in efc_cmd_domain_attach() argument
513 if (!domain) { in efc_cmd_domain_attach()
514 efc_log_err(efc, "bad param(s) domain=%p\n", domain); in efc_cmd_domain_attach()
518 domain->nport->fc_id = fc_id; in efc_cmd_domain_attach()
520 rc = sli_cmd_reg_vfi(efc->sli, buf, SLI4_BMBX_SIZE, domain->indicator, in efc_cmd_domain_attach()
521 domain->fcf_indicator, domain->dma, in efc_cmd_domain_attach()
522 domain->nport->indicator, domain->nport->sli_wwpn, in efc_cmd_domain_attach()
523 domain->nport->fc_id); in efc_cmd_domain_attach()
530 efc_domain_attach_reg_vfi_cb, domain); in efc_cmd_domain_attach()
539 efc_domain_free_resources(domain, EFC_HW_DOMAIN_ATTACH_FAIL, buf); in efc_cmd_domain_attach()
547 struct efc_domain *domain = arg; in efc_domain_free_unreg_vfi_cb() local
551 rc = efc_domain_get_mbox_status(domain, mqe, status); in efc_domain_free_unreg_vfi_cb()
557 efc_domain_free_resources(domain, evt, mqe); in efc_domain_free_unreg_vfi_cb()
562 efc_domain_free_unreg_vfi(struct efc_domain *domain) in efc_domain_free_unreg_vfi() argument
564 struct efc *efc = domain->efc; in efc_domain_free_unreg_vfi()
568 rc = sli_cmd_unreg_vfi(efc->sli, data, domain->indicator, in efc_domain_free_unreg_vfi()
576 efc_domain_free_unreg_vfi_cb, domain); in efc_domain_free_unreg_vfi()
585 efc_domain_free_resources(domain, EFC_HW_DOMAIN_FREE_FAIL, data); in efc_domain_free_unreg_vfi()
589 efc_cmd_domain_free(struct efc *efc, struct efc_domain *domain) in efc_cmd_domain_free() argument
591 if (!domain) { in efc_cmd_domain_free()
592 efc_log_err(efc, "bad parameter(s) domain=%p\n", domain); in efc_cmd_domain_free()
596 efc_domain_free_unreg_vfi(domain); in efc_cmd_domain_free()