Lines Matching refs:iwdev

129 		if (!hdl->iwdev->rf->peer_info)  in irdma_find_handler()
131 if (hdl->iwdev->rf->peer_info->dev == p_dev->dev) { in irdma_find_handler()
156 return hdl->iwdev; in peer_to_iwdev()
289 struct irdma_device *iwdev; in irdma_event_handler() local
295 iwdev = peer_to_iwdev(peer); in irdma_event_handler()
296 if (!iwdev) { in irdma_event_handler()
308 if (iwdev->vsi.mtu != event->mtu) { in irdma_event_handler()
311 irdma_log_invalid_mtu(l2params.mtu, &iwdev->rf->sc_dev); in irdma_event_handler()
312 irdma_change_l2params(&iwdev->vsi, &l2params); in irdma_event_handler()
319 if (event->prep == iwdev->vsi.tc_change_pending) { in irdma_event_handler()
326 if (!atomic_inc_not_zero(&iwdev->rf->dev_ctx.event_rfcnt)) { in irdma_event_handler()
329 atomic_read(&iwdev->rf->dev_ctx.event_rfcnt)); in irdma_event_handler()
333 iwdev->vsi.tc_change_pending = true; in irdma_event_handler()
334 irdma_sc_suspend_resume_qps(&iwdev->vsi, IRDMA_OP_SUSPEND); in irdma_event_handler()
335 wait_event_timeout(iwdev->suspend_wq, in irdma_event_handler()
336 !atomic_read(&iwdev->vsi.qp_suspend_reqs), in irdma_event_handler()
338 irdma_ws_reset(&iwdev->vsi); in irdma_event_handler()
342 irdma_get_qos_info(iwdev->rf, &l2params, &event->port_qos); in irdma_event_handler()
343 if (iwdev->rf->protocol_used != IRDMA_IWARP_PROTOCOL_ONLY) in irdma_event_handler()
344 iwdev->dcb_vlan_mode = l2params.num_tc > 1 && !l2params.dscp_mode; in irdma_event_handler()
346 irdma_check_fc_for_tc_update(&iwdev->vsi, &l2params); in irdma_event_handler()
347 irdma_change_l2params(&iwdev->vsi, &l2params); in irdma_event_handler()
350 atomic_dec(&iwdev->rf->dev_ctx.event_rfcnt); in irdma_event_handler()
357 pe_criterr = readl(iwdev->rf->sc_dev.hw_regs[IRDMA_GLPE_CRITERR]); in irdma_event_handler()
361 iwdev->rf->reset = true; in irdma_event_handler()
363 irdma_dev_warn(to_ibdev(&iwdev->rf->sc_dev), in irdma_event_handler()
369 iwdev->rf->reset = true; in irdma_event_handler()
371 if (iwdev->rf->reset) in irdma_event_handler()
372 iwdev->rf->gen_ops.request_reset(iwdev->rf); in irdma_event_handler()
375 iwdev->rf->reset = true; in irdma_event_handler()
409 struct irdma_device *iwdev = task_arg->iwdev; in irdma_finalize_task() local
410 struct irdma_pci_f *rf = iwdev->rf; in irdma_finalize_task()
416 if (iwdev->iw_status) { in irdma_finalize_task()
421 wait_event_timeout(iwdev->suspend_wq, in irdma_finalize_task()
430 irdma_ib_unregister_device(iwdev); in irdma_finalize_task()
434 irdma_cleanup_dead_qps(&iwdev->vsi); in irdma_finalize_task()
435 irdma_rt_deinit_hw(iwdev); in irdma_finalize_task()
440 irdma_get_qos_info(iwdev->rf, &l2params, &peer->initial_qos_info); in irdma_finalize_task()
441 if (iwdev->rf->protocol_used != IRDMA_IWARP_PROTOCOL_ONLY) in irdma_finalize_task()
442 iwdev->dcb_vlan_mode = l2params.num_tc > 1 && !l2params.dscp_mode; in irdma_finalize_task()
445 status = irdma_rt_init_hw(iwdev, &l2params); in irdma_finalize_task()
448 ib_dealloc_device(&iwdev->ibdev); in irdma_finalize_task()
451 status = irdma_ib_register_device(iwdev); in irdma_finalize_task()
454 irdma_rt_deinit_hw(iwdev); in irdma_finalize_task()
455 ib_dealloc_device(&iwdev->ibdev); in irdma_finalize_task()
504 irdma_fill_device_info(struct irdma_device *iwdev, in irdma_fill_device_info() argument
507 struct irdma_pci_f *rf = iwdev->rf; in irdma_fill_device_info()
535 rf->iwdev = iwdev; in irdma_fill_device_info()
536 iwdev->netdev = peer->ifp; in irdma_fill_device_info()
537 iwdev->init_state = INITIAL_STATE; in irdma_fill_device_info()
538 iwdev->vsi_num = peer->pf_vsi_num; in irdma_fill_device_info()
539 iwdev->rcv_wnd = IRDMA_CM_DEFAULT_RCV_WND_SCALED; in irdma_fill_device_info()
540 iwdev->rcv_wscale = IRDMA_CM_DEFAULT_RCV_WND_SCALE; in irdma_fill_device_info()
541 iwdev->roce_cwnd = IRDMA_ROCE_CWND_DEFAULT; in irdma_fill_device_info()
542 iwdev->roce_ackcreds = IRDMA_ROCE_ACKCREDS_DEFAULT; in irdma_fill_device_info()
543 iwdev->roce_rtomin = 5; in irdma_fill_device_info()
546 iwdev->roce_mode = true; in irdma_fill_device_info()
560 struct irdma_device *iwdev; in irdma_probe() local
577 iwdev = (struct irdma_device *)ib_alloc_device(sizeof(*iwdev)); in irdma_probe()
578 if (!iwdev) { in irdma_probe()
583 iwdev->rf = kzalloc(sizeof(*rf), GFP_KERNEL); in irdma_probe()
584 if (!iwdev->rf) { in irdma_probe()
585 ib_dealloc_device(&iwdev->ibdev); in irdma_probe()
589 hdl->iwdev = iwdev; in irdma_probe()
590 iwdev->hdl = hdl; in irdma_probe()
592 irdma_init_tunable(iwdev->rf, if_getdunit(peer->ifp)); in irdma_probe()
593 irdma_fill_device_info(iwdev, peer); in irdma_probe()
594 rf = iwdev->rf; in irdma_probe()
607 rf->dev_ctx.task_arg.iwdev = iwdev; in irdma_probe()
624 kfree(iwdev->rf); in irdma_probe()
625 ib_dealloc_device(&iwdev->ibdev); in irdma_probe()
642 struct irdma_device *iwdev; in irdma_remove() local
651 iwdev = hdl->iwdev; in irdma_remove()
653 if (iwdev->vsi.tc_change_pending) { in irdma_remove()
654 iwdev->vsi.tc_change_pending = false; in irdma_remove()
655 irdma_sc_suspend_resume_qps(&iwdev->vsi, IRDMA_OP_RESUME); in irdma_remove()
662 hdl->iwdev->rf->dev_ctx.task_arg.iwdev = NULL; in irdma_remove()
663 hdl->iwdev->rf->dev_ctx.task_arg.peer = NULL; in irdma_remove()
665 sysctl_ctx_free(&iwdev->rf->tun_info.irdma_sysctl_ctx); in irdma_remove()
666 hdl->iwdev->rf->tun_info.irdma_sysctl_tree = NULL; in irdma_remove()
667 hdl->iwdev->rf->tun_info.sws_sysctl_tree = NULL; in irdma_remove()
669 irdma_ctrl_deinit_hw(iwdev->rf); in irdma_remove()
671 irdma_dealloc_pcidev(iwdev->rf); in irdma_remove()
673 irdma_del_handler(iwdev->hdl); in irdma_remove()
674 kfree(iwdev->hdl); in irdma_remove()
675 kfree(iwdev->rf); in irdma_remove()
676 ib_dealloc_device(&iwdev->ibdev); in irdma_remove()
693 struct irdma_device *iwdev; in irdma_open() local
696 iwdev = peer_to_iwdev(peer); in irdma_open()
697 if (iwdev) { in irdma_open()
722 struct irdma_device *iwdev; in irdma_close() local
724 iwdev = peer_to_iwdev(peer); in irdma_close()
725 if (iwdev && iwdev->rf->reset) in irdma_close()
745 if (!hdl->iwdev->rf->peer_info) in irdma_prep_for_unregister()
753 IRDMA_CLOSE(hdl->iwdev->rf->peer_info); in irdma_prep_for_unregister()
754 IRDMA_REMOVE(hdl->iwdev->rf->peer_info); in irdma_prep_for_unregister()