Lines Matching refs:ppd
140 struct qib_pportdata *ppd; in qib_create_ctxts() local
146 ppd = dd->pport + (i % dd->num_pports); in qib_create_ctxts()
148 rcd = qib_create_ctxtdata(ppd, i, dd->assigned_node_id); in qib_create_ctxts()
165 struct qib_ctxtdata *qib_create_ctxtdata(struct qib_pportdata *ppd, u32 ctxt, in qib_create_ctxtdata() argument
168 struct qib_devdata *dd = ppd->dd; in qib_create_ctxtdata()
175 rcd->ppd = ppd; in qib_create_ctxtdata()
220 int qib_init_pportdata(struct qib_pportdata *ppd, struct qib_devdata *dd, in qib_init_pportdata() argument
225 ppd->dd = dd; in qib_init_pportdata()
226 ppd->hw_pidx = hw_pidx; in qib_init_pportdata()
227 ppd->port = port; /* IB port number, not index */ in qib_init_pportdata()
229 spin_lock_init(&ppd->sdma_lock); in qib_init_pportdata()
230 spin_lock_init(&ppd->lflags_lock); in qib_init_pportdata()
231 spin_lock_init(&ppd->cc_shadow_lock); in qib_init_pportdata()
232 init_waitqueue_head(&ppd->state_wait); in qib_init_pportdata()
234 timer_setup(&ppd->symerr_clear_timer, qib_clear_symerror_on_linkup, 0); in qib_init_pportdata()
236 ppd->qib_wq = NULL; in qib_init_pportdata()
237 ppd->ibport_data.pmastats = in qib_init_pportdata()
239 if (!ppd->ibport_data.pmastats) in qib_init_pportdata()
241 ppd->ibport_data.rvp.rc_acks = alloc_percpu(u64); in qib_init_pportdata()
242 ppd->ibport_data.rvp.rc_qacks = alloc_percpu(u64); in qib_init_pportdata()
243 ppd->ibport_data.rvp.rc_delayed_comp = alloc_percpu(u64); in qib_init_pportdata()
244 if (!(ppd->ibport_data.rvp.rc_acks) || in qib_init_pportdata()
245 !(ppd->ibport_data.rvp.rc_qacks) || in qib_init_pportdata()
246 !(ppd->ibport_data.rvp.rc_delayed_comp)) in qib_init_pportdata()
252 ppd->cc_supported_table_entries = min(max_t(int, qib_cc_table_size, in qib_init_pportdata()
255 ppd->cc_max_table_entries = in qib_init_pportdata()
256 ppd->cc_supported_table_entries/IB_CCT_ENTRIES; in qib_init_pportdata()
260 ppd->ccti_entries = kzalloc(size, GFP_KERNEL); in qib_init_pportdata()
261 if (!ppd->ccti_entries) in qib_init_pportdata()
265 ppd->congestion_entries = kzalloc(size, GFP_KERNEL); in qib_init_pportdata()
266 if (!ppd->congestion_entries) in qib_init_pportdata()
270 ppd->ccti_entries_shadow = kzalloc(size, GFP_KERNEL); in qib_init_pportdata()
271 if (!ppd->ccti_entries_shadow) in qib_init_pportdata()
275 ppd->congestion_entries_shadow = kzalloc(size, GFP_KERNEL); in qib_init_pportdata()
276 if (!ppd->congestion_entries_shadow) in qib_init_pportdata()
282 kfree(ppd->ccti_entries_shadow); in qib_init_pportdata()
283 ppd->ccti_entries_shadow = NULL; in qib_init_pportdata()
285 kfree(ppd->congestion_entries); in qib_init_pportdata()
286 ppd->congestion_entries = NULL; in qib_init_pportdata()
288 kfree(ppd->ccti_entries); in qib_init_pportdata()
289 ppd->ccti_entries = NULL; in qib_init_pportdata()
490 dd->f_rcvctrl(rcd->ppd, rcvmask, i); in enable_chip()
579 struct qib_pportdata *ppd; in qib_create_workqueues() local
582 ppd = dd->pport + pidx; in qib_create_workqueues()
583 if (!ppd->qib_wq) { in qib_create_workqueues()
584 ppd->qib_wq = alloc_ordered_workqueue("qib%d_%d", in qib_create_workqueues()
587 if (!ppd->qib_wq) in qib_create_workqueues()
596 ppd = dd->pport + pidx; in qib_create_workqueues()
597 if (ppd->qib_wq) { in qib_create_workqueues()
598 destroy_workqueue(ppd->qib_wq); in qib_create_workqueues()
599 ppd->qib_wq = NULL; in qib_create_workqueues()
605 static void qib_free_pportdata(struct qib_pportdata *ppd) in qib_free_pportdata() argument
607 free_percpu(ppd->ibport_data.pmastats); in qib_free_pportdata()
608 free_percpu(ppd->ibport_data.rvp.rc_acks); in qib_free_pportdata()
609 free_percpu(ppd->ibport_data.rvp.rc_qacks); in qib_free_pportdata()
610 free_percpu(ppd->ibport_data.rvp.rc_delayed_comp); in qib_free_pportdata()
611 ppd->ibport_data.pmastats = NULL; in qib_free_pportdata()
635 struct qib_pportdata *ppd; in qib_init() local
640 ppd = dd->pport + pidx; in qib_init()
641 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_init()
642 ppd->lflags &= ~(QIBL_LINKACTIVE | QIBL_LINKARMED | in qib_init()
645 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_init()
688 ppd = dd->pport + pidx; in qib_init()
695 ppd->init_ibmaxlen = min(mtu > 2048 ? in qib_init()
703 ppd->ibmaxlen = ppd->init_ibmaxlen; in qib_init()
704 qib_set_mtu(ppd, mtu); in qib_init()
706 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_init()
707 ppd->lflags |= QIBL_IB_LINK_DISABLED; in qib_init()
708 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_init()
710 lastfail = dd->f_bringup_serdes(ppd); in qib_init()
713 "Failed to bringup IB port %u\n", ppd->port); in qib_init()
738 ppd = dd->pport + pidx; in qib_init()
743 *ppd->statusp |= QIB_STATUS_CHIP_PRESENT | in qib_init()
745 if (!ppd->link_speed_enabled) in qib_init()
748 ret = qib_setup_sdma(ppd); in qib_init()
749 timer_setup(&ppd->hol_timer, qib_hol_event, 0); in qib_init()
750 ppd->hol_state = QIB_HOL_UP; in qib_init()
795 struct qib_pportdata *ppd; in qib_stop_timers() local
803 ppd = dd->pport + pidx; in qib_stop_timers()
804 if (ppd->hol_timer.function) in qib_stop_timers()
805 del_timer_sync(&ppd->hol_timer); in qib_stop_timers()
806 if (ppd->led_override_timer.function) { in qib_stop_timers()
807 del_timer_sync(&ppd->led_override_timer); in qib_stop_timers()
808 atomic_set(&ppd->led_override_timer_active, 0); in qib_stop_timers()
810 if (ppd->symerr_clear_timer.function) in qib_stop_timers()
811 del_timer_sync(&ppd->symerr_clear_timer); in qib_stop_timers()
826 struct qib_pportdata *ppd; in qib_shutdown_device() local
834 ppd = dd->pport + pidx; in qib_shutdown_device()
836 spin_lock_irq(&ppd->lflags_lock); in qib_shutdown_device()
837 ppd->lflags &= ~(QIBL_LINKDOWN | QIBL_LINKINIT | in qib_shutdown_device()
840 spin_unlock_irq(&ppd->lflags_lock); in qib_shutdown_device()
841 *ppd->statusp &= ~(QIB_STATUS_IB_CONF | QIB_STATUS_IB_READY); in qib_shutdown_device()
849 ppd = dd->pport + pidx; in qib_shutdown_device()
850 dd->f_rcvctrl(ppd, QIB_RCVCTRL_TAILUPD_DIS | in qib_shutdown_device()
858 dd->f_sendctrl(ppd, QIB_SENDCTRL_CLEAR); in qib_shutdown_device()
868 ppd = dd->pport + pidx; in qib_shutdown_device()
869 dd->f_setextled(ppd, 0); /* make sure LEDs are off */ in qib_shutdown_device()
872 qib_teardown_sdma(ppd); in qib_shutdown_device()
874 dd->f_sendctrl(ppd, QIB_SENDCTRL_AVAIL_DIS | in qib_shutdown_device()
880 dd->f_quiet_serdes(ppd); in qib_shutdown_device()
882 if (ppd->qib_wq) { in qib_shutdown_device()
883 destroy_workqueue(ppd->qib_wq); in qib_shutdown_device()
884 ppd->qib_wq = NULL; in qib_shutdown_device()
886 qib_free_pportdata(ppd); in qib_shutdown_device()
1134 struct qib_pportdata *ppd; in qib_disable_after_error() local
1136 ppd = dd->pport + pidx; in qib_disable_after_error()
1138 qib_set_linkstate(ppd, in qib_disable_after_error()
1140 dd->f_setextled(ppd, 0); in qib_disable_after_error()
1142 *ppd->statusp &= ~QIB_STATUS_IB_READY; in qib_disable_after_error()