Lines Matching refs:itnim_drv
427 struct bfad_itnim_s **itnim_drv) in bfa_fcb_itnim_alloc() argument
429 *itnim_drv = kzalloc(sizeof(struct bfad_itnim_s), GFP_ATOMIC); in bfa_fcb_itnim_alloc()
430 if (*itnim_drv == NULL) in bfa_fcb_itnim_alloc()
433 (*itnim_drv)->im = bfad->im; in bfa_fcb_itnim_alloc()
434 *itnim = &(*itnim_drv)->fcs_itnim; in bfa_fcb_itnim_alloc()
435 (*itnim_drv)->state = ITNIM_STATE_NONE; in bfa_fcb_itnim_alloc()
440 INIT_WORK(&(*itnim_drv)->itnim_work, bfad_im_itnim_work_handler); in bfa_fcb_itnim_alloc()
450 bfa_fcb_itnim_free(struct bfad_s *bfad, struct bfad_itnim_s *itnim_drv) in bfa_fcb_itnim_free() argument
456 struct bfad_im_s *im = itnim_drv->im; in bfa_fcb_itnim_free()
459 WARN_ON(itnim_drv->state == ITNIM_STATE_ONLINE); in bfa_fcb_itnim_free()
461 itnim_drv->queue_work = 1; in bfa_fcb_itnim_free()
463 if (itnim_drv->state == ITNIM_STATE_OFFLINE_PENDING) in bfa_fcb_itnim_free()
464 itnim_drv->queue_work = 0; in bfa_fcb_itnim_free()
466 itnim_drv->state = ITNIM_STATE_FREE; in bfa_fcb_itnim_free()
467 port = bfa_fcs_itnim_get_drvport(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_free()
468 itnim_drv->im_port = port->im_port; in bfa_fcb_itnim_free()
469 wwpn = bfa_fcs_itnim_get_pwwn(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_free()
470 fcid = bfa_fcs_itnim_get_fcid(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_free()
479 if (itnim_drv->queue_work) in bfa_fcb_itnim_free()
480 queue_work(im->drv_workq, &itnim_drv->itnim_work); in bfa_fcb_itnim_free()
488 bfa_fcb_itnim_online(struct bfad_itnim_s *itnim_drv) in bfa_fcb_itnim_online() argument
491 struct bfad_im_s *im = itnim_drv->im; in bfa_fcb_itnim_online()
493 itnim_drv->bfa_itnim = bfa_fcs_itnim_get_halitn(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_online()
494 port = bfa_fcs_itnim_get_drvport(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_online()
495 itnim_drv->state = ITNIM_STATE_ONLINE; in bfa_fcb_itnim_online()
496 itnim_drv->queue_work = 1; in bfa_fcb_itnim_online()
497 itnim_drv->im_port = port->im_port; in bfa_fcb_itnim_online()
500 if (itnim_drv->queue_work) in bfa_fcb_itnim_online()
501 queue_work(im->drv_workq, &itnim_drv->itnim_work); in bfa_fcb_itnim_online()
509 bfa_fcb_itnim_offline(struct bfad_itnim_s *itnim_drv) in bfa_fcb_itnim_offline() argument
513 struct bfad_im_s *im = itnim_drv->im; in bfa_fcb_itnim_offline()
515 port = bfa_fcs_itnim_get_drvport(&itnim_drv->fcs_itnim); in bfa_fcb_itnim_offline()
519 itnim_drv->state = ITNIM_STATE_OFFLINE; in bfa_fcb_itnim_offline()
522 itnim_drv->im_port = port->im_port; in bfa_fcb_itnim_offline()
523 itnim_drv->state = ITNIM_STATE_OFFLINE_PENDING; in bfa_fcb_itnim_offline()
524 itnim_drv->queue_work = 1; in bfa_fcb_itnim_offline()
527 if (itnim_drv->queue_work) in bfa_fcb_itnim_offline()
528 queue_work(im->drv_workq, &itnim_drv->itnim_work); in bfa_fcb_itnim_offline()