Lines Matching refs:ppd
99 struct qib_pportdata *ppd; in qib_count_active_units() local
108 ppd = dd->pport + pidx; in qib_count_active_units()
109 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT | in qib_count_active_units()
131 struct qib_pportdata *ppd; in qib_count_units() local
140 ppd = dd->pport + pidx; in qib_count_units()
141 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT | in qib_count_units()
169 int qib_wait_linkstate(struct qib_pportdata *ppd, u32 state, int msecs) in qib_wait_linkstate() argument
174 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_wait_linkstate()
175 if (ppd->state_wanted) { in qib_wait_linkstate()
176 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_wait_linkstate()
180 ppd->state_wanted = state; in qib_wait_linkstate()
181 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_wait_linkstate()
182 wait_event_interruptible_timeout(ppd->state_wait, in qib_wait_linkstate()
183 (ppd->lflags & state), in qib_wait_linkstate()
185 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_wait_linkstate()
186 ppd->state_wanted = 0; in qib_wait_linkstate()
187 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_wait_linkstate()
189 if (!(ppd->lflags & state)) in qib_wait_linkstate()
197 int qib_set_linkstate(struct qib_pportdata *ppd, u8 newstate) in qib_set_linkstate() argument
201 struct qib_devdata *dd = ppd->dd; in qib_set_linkstate()
206 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
213 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
220 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
227 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
234 if (ppd->lflags & QIBL_LINKARMED) { in qib_set_linkstate()
238 if (!(ppd->lflags & (QIBL_LINKINIT | QIBL_LINKACTIVE))) { in qib_set_linkstate()
248 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_set_linkstate()
249 ppd->lflags &= ~QIBL_LINKV; in qib_set_linkstate()
250 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_set_linkstate()
251 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
257 if (ppd->lflags & QIBL_LINKACTIVE) { in qib_set_linkstate()
261 if (!(ppd->lflags & QIBL_LINKARMED)) { in qib_set_linkstate()
265 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, in qib_set_linkstate()
274 ret = qib_wait_linkstate(ppd, lstate, 10); in qib_set_linkstate()
296 static u32 qib_rcv_hdrerr(struct qib_ctxtdata *rcd, struct qib_pportdata *ppd, in qib_rcv_hdrerr() argument
308 struct qib_ibport *ibp = &ppd->ibport_data; in qib_rcv_hdrerr()
323 lid &= ~((1 << ppd->lmc) - 1); in qib_rcv_hdrerr()
324 if (unlikely(lid != ppd->lid)) in qib_rcv_hdrerr()
449 struct qib_pportdata *ppd = rcd->ppd; in qib_kreceive() local
514 crcs += qib_rcv_hdrerr(rcd, ppd, rcd->ctxt, eflags, l, in qib_kreceive()
614 int qib_set_mtu(struct qib_pportdata *ppd, u16 arg) in qib_set_mtu() argument
630 piosize = ppd->ibmaxlen; in qib_set_mtu()
631 ppd->ibmtu = arg; in qib_set_mtu()
635 if (piosize != ppd->init_ibmaxlen) { in qib_set_mtu()
636 if (arg > piosize && arg <= ppd->init_ibmaxlen) in qib_set_mtu()
637 piosize = ppd->init_ibmaxlen - 2 * sizeof(u32); in qib_set_mtu()
638 ppd->ibmaxlen = piosize; in qib_set_mtu()
640 } else if ((arg + QIB_PIO_MAXIBHDR) != ppd->ibmaxlen) { in qib_set_mtu()
642 ppd->ibmaxlen = piosize; in qib_set_mtu()
645 ppd->dd->f_set_ib_cfg(ppd, QIB_IB_CFG_MTU, 0); in qib_set_mtu()
653 int qib_set_lid(struct qib_pportdata *ppd, u32 lid, u8 lmc) in qib_set_lid() argument
655 struct qib_devdata *dd = ppd->dd; in qib_set_lid()
657 ppd->lid = lid; in qib_set_lid()
658 ppd->lmc = lmc; in qib_set_lid()
660 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LIDLMC, in qib_set_lid()
664 dd->unit, ppd->port, lid); in qib_set_lid()
683 struct qib_pportdata *ppd = (struct qib_pportdata *)opaque; in qib_run_led_override() local
684 struct qib_devdata *dd = ppd->dd; in qib_run_led_override()
691 ph_idx = ppd->led_override_phase++ & 1; in qib_run_led_override()
692 ppd->led_override = ppd->led_override_vals[ph_idx]; in qib_run_led_override()
693 timeoff = ppd->led_override_timeoff; in qib_run_led_override()
695 dd->f_setextled(ppd, 1); in qib_run_led_override()
700 if (ppd->led_override_vals[0] || ppd->led_override_vals[1]) in qib_run_led_override()
701 mod_timer(&ppd->led_override_timer, jiffies + timeoff); in qib_run_led_override()
704 void qib_set_led_override(struct qib_pportdata *ppd, unsigned int val) in qib_set_led_override() argument
706 struct qib_devdata *dd = ppd->dd; in qib_set_led_override()
718 ppd->led_override_vals[0] = val & 0xF; in qib_set_led_override()
719 ppd->led_override_vals[1] = (val >> 4) & 0xF; in qib_set_led_override()
723 ppd->led_override_vals[0] = val & 0xF; in qib_set_led_override()
724 ppd->led_override_vals[1] = val & 0xF; in qib_set_led_override()
726 ppd->led_override_timeoff = timeoff; in qib_set_led_override()
732 if (atomic_inc_return(&ppd->led_override_timer_active) == 1) { in qib_set_led_override()
734 init_timer(&ppd->led_override_timer); in qib_set_led_override()
735 ppd->led_override_timer.function = qib_run_led_override; in qib_set_led_override()
736 ppd->led_override_timer.data = (unsigned long) ppd; in qib_set_led_override()
737 ppd->led_override_timer.expires = jiffies + 1; in qib_set_led_override()
738 add_timer(&ppd->led_override_timer); in qib_set_led_override()
740 if (ppd->led_override_vals[0] || ppd->led_override_vals[1]) in qib_set_led_override()
741 mod_timer(&ppd->led_override_timer, jiffies + 1); in qib_set_led_override()
742 atomic_dec(&ppd->led_override_timer_active); in qib_set_led_override()
759 struct qib_pportdata *ppd; in qib_reset_device() local
790 ppd = dd->pport + pidx; in qib_reset_device()
791 if (atomic_read(&ppd->led_override_timer_active)) { in qib_reset_device()
793 del_timer_sync(&ppd->led_override_timer); in qib_reset_device()
794 atomic_set(&ppd->led_override_timer_active, 0); in qib_reset_device()
798 ppd->led_override = LED_OVER_BOTH_OFF; in qib_reset_device()
799 dd->f_setextled(ppd, 0); in qib_reset_device()
801 qib_teardown_sdma(ppd); in qib_reset_device()