Lines Matching refs:iwdev

133 		if (!hdl->iwdev->rf->peer_info)  in irdma_find_handler()
135 if (hdl->iwdev->rf->peer_info->dev == p_dev->dev) { in irdma_find_handler()
160 return hdl->iwdev; in peer_to_iwdev()
293 struct irdma_device *iwdev; in irdma_event_handler() local
299 iwdev = peer_to_iwdev(peer); in irdma_event_handler()
300 if (!iwdev) { in irdma_event_handler()
312 if (iwdev->vsi.mtu != event->mtu) { in irdma_event_handler()
315 irdma_log_invalid_mtu(l2params.mtu, &iwdev->rf->sc_dev); in irdma_event_handler()
316 irdma_change_l2params(&iwdev->vsi, &l2params); in irdma_event_handler()
323 if (event->prep == iwdev->vsi.tc_change_pending) { in irdma_event_handler()
330 if (!atomic_inc_not_zero(&iwdev->rf->dev_ctx.event_rfcnt)) { in irdma_event_handler()
333 atomic_read(&iwdev->rf->dev_ctx.event_rfcnt)); in irdma_event_handler()
337 iwdev->vsi.tc_change_pending = true; in irdma_event_handler()
338 irdma_sc_suspend_resume_qps(&iwdev->vsi, IRDMA_OP_SUSPEND); in irdma_event_handler()
339 wait_event_timeout(iwdev->suspend_wq, in irdma_event_handler()
340 !atomic_read(&iwdev->vsi.qp_suspend_reqs), in irdma_event_handler()
342 irdma_ws_reset(&iwdev->vsi); in irdma_event_handler()
346 irdma_get_qos_info(iwdev->rf, &l2params, &event->port_qos); in irdma_event_handler()
347 if (iwdev->rf->protocol_used != IRDMA_IWARP_PROTOCOL_ONLY) in irdma_event_handler()
348 iwdev->dcb_vlan_mode = l2params.num_tc > 1 && !l2params.dscp_mode; in irdma_event_handler()
350 irdma_check_fc_for_tc_update(&iwdev->vsi, &l2params); in irdma_event_handler()
351 irdma_change_l2params(&iwdev->vsi, &l2params); in irdma_event_handler()
354 atomic_dec(&iwdev->rf->dev_ctx.event_rfcnt); in irdma_event_handler()
361 pe_criterr = readl(iwdev->rf->sc_dev.hw_regs[IRDMA_GLPE_CRITERR]); in irdma_event_handler()
365 iwdev->rf->reset = true; in irdma_event_handler()
367 irdma_dev_warn(to_ibdev(&iwdev->rf->sc_dev), in irdma_event_handler()
373 iwdev->rf->reset = true; in irdma_event_handler()
375 if (iwdev->rf->reset) in irdma_event_handler()
376 iwdev->rf->gen_ops.request_reset(iwdev->rf); in irdma_event_handler()
379 iwdev->rf->reset = true; in irdma_event_handler()
413 struct irdma_device *iwdev = task_arg->iwdev; in irdma_finalize_task() local
414 struct irdma_pci_f *rf = iwdev->rf; in irdma_finalize_task()
420 if (iwdev->iw_status) { in irdma_finalize_task()
426 cancel_delayed_work_sync(&iwdev->rf->dwork_cqp_poll); in irdma_finalize_task()
427 irdma_free_stag(iwdev->rf->iwdev, iwdev->rf->chk_stag); in irdma_finalize_task()
429 wait_event_timeout(iwdev->suspend_wq, in irdma_finalize_task()
438 irdma_ib_unregister_device(iwdev); in irdma_finalize_task()
442 irdma_cleanup_dead_qps(&iwdev->vsi); in irdma_finalize_task()
443 irdma_rt_deinit_hw(iwdev); in irdma_finalize_task()
448 irdma_get_qos_info(iwdev->rf, &l2params, &peer->initial_qos_info); in irdma_finalize_task()
449 if (iwdev->rf->protocol_used != IRDMA_IWARP_PROTOCOL_ONLY) in irdma_finalize_task()
450 iwdev->dcb_vlan_mode = l2params.num_tc > 1 && !l2params.dscp_mode; in irdma_finalize_task()
456 status = irdma_rt_init_hw(iwdev, &l2params); in irdma_finalize_task()
459 ib_dealloc_device(&iwdev->ibdev); in irdma_finalize_task()
462 status = irdma_ib_register_device(iwdev); in irdma_finalize_task()
465 irdma_rt_deinit_hw(iwdev); in irdma_finalize_task()
466 ib_dealloc_device(&iwdev->ibdev); in irdma_finalize_task()
477 rf->chk_stag = irdma_create_stag(rf->iwdev); in irdma_finalize_task()
479 mod_delayed_work(iwdev->cleanup_wq, &rf->dwork_cqp_poll, in irdma_finalize_task()
524 irdma_fill_device_info(struct irdma_device *iwdev, in irdma_fill_device_info() argument
527 struct irdma_pci_f *rf = iwdev->rf; in irdma_fill_device_info()
555 rf->iwdev = iwdev; in irdma_fill_device_info()
556 iwdev->netdev = peer->ifp; in irdma_fill_device_info()
557 iwdev->init_state = INITIAL_STATE; in irdma_fill_device_info()
558 iwdev->vsi_num = peer->pf_vsi_num; in irdma_fill_device_info()
559 iwdev->rcv_wnd = IRDMA_CM_DEFAULT_RCV_WND_SCALED; in irdma_fill_device_info()
560 iwdev->rcv_wscale = IRDMA_CM_DEFAULT_RCV_WND_SCALE; in irdma_fill_device_info()
561 iwdev->roce_cwnd = IRDMA_ROCE_CWND_DEFAULT; in irdma_fill_device_info()
562 iwdev->roce_ackcreds = IRDMA_ROCE_ACKCREDS_DEFAULT; in irdma_fill_device_info()
563 iwdev->roce_rtomin = 5; in irdma_fill_device_info()
566 iwdev->roce_mode = true; in irdma_fill_device_info()
580 struct irdma_device *iwdev; in irdma_probe() local
598 iwdev = (struct irdma_device *)ib_alloc_device(sizeof(*iwdev)); in irdma_probe()
599 if (!iwdev) { in irdma_probe()
604 iwdev->rf = kzalloc(sizeof(*rf), GFP_KERNEL); in irdma_probe()
605 if (!iwdev->rf) { in irdma_probe()
606 ib_dealloc_device(&iwdev->ibdev); in irdma_probe()
610 hdl->iwdev = iwdev; in irdma_probe()
611 iwdev->hdl = hdl; in irdma_probe()
613 irdma_init_tunable(iwdev->rf, if_getdunit(peer->ifp)); in irdma_probe()
614 irdma_fill_device_info(iwdev, peer); in irdma_probe()
615 rf = iwdev->rf; in irdma_probe()
628 rf->dev_ctx.task_arg.iwdev = iwdev; in irdma_probe()
645 kfree(iwdev->rf); in irdma_probe()
646 ib_dealloc_device(&iwdev->ibdev); in irdma_probe()
663 struct irdma_device *iwdev; in irdma_remove() local
672 iwdev = hdl->iwdev; in irdma_remove()
674 if (iwdev->vsi.tc_change_pending) { in irdma_remove()
675 iwdev->vsi.tc_change_pending = false; in irdma_remove()
676 irdma_sc_suspend_resume_qps(&iwdev->vsi, IRDMA_OP_RESUME); in irdma_remove()
683 hdl->iwdev->rf->dev_ctx.task_arg.iwdev = NULL; in irdma_remove()
684 hdl->iwdev->rf->dev_ctx.task_arg.peer = NULL; in irdma_remove()
686 sysctl_ctx_free(&iwdev->rf->tun_info.irdma_sysctl_ctx); in irdma_remove()
687 hdl->iwdev->rf->tun_info.irdma_sysctl_tree = NULL; in irdma_remove()
688 hdl->iwdev->rf->tun_info.qos_sysctl_tree = NULL; in irdma_remove()
689 hdl->iwdev->rf->tun_info.sws_sysctl_tree = NULL; in irdma_remove()
691 irdma_ctrl_deinit_hw(iwdev->rf); in irdma_remove()
693 irdma_dealloc_pcidev(iwdev->rf); in irdma_remove()
695 irdma_del_handler(iwdev->hdl); in irdma_remove()
696 kfree(iwdev->hdl); in irdma_remove()
697 kfree(iwdev->rf); in irdma_remove()
698 ib_dealloc_device(&iwdev->ibdev); in irdma_remove()
715 struct irdma_device *iwdev; in irdma_open() local
718 iwdev = peer_to_iwdev(peer); in irdma_open()
719 if (iwdev) { in irdma_open()
744 struct irdma_device *iwdev; in irdma_close() local
746 iwdev = peer_to_iwdev(peer); in irdma_close()
747 if (iwdev && iwdev->rf->reset) in irdma_close()
767 if (!hdl->iwdev->rf->peer_info) in irdma_prep_for_unregister()
775 IRDMA_CLOSE(hdl->iwdev->rf->peer_info); in irdma_prep_for_unregister()
776 IRDMA_REMOVE(hdl->iwdev->rf->peer_info); in irdma_prep_for_unregister()