Lines Matching refs:ppd

96 	struct qib_pportdata *ppd;
105 ppd = dd->pport + pidx;
106 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT |
128 struct qib_pportdata *ppd;
136 ppd = dd->pport + pidx;
137 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT |
164 int qib_wait_linkstate(struct qib_pportdata *ppd, u32 state, int msecs)
169 spin_lock_irqsave(&ppd->lflags_lock, flags);
170 if (ppd->state_wanted) {
171 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
175 ppd->state_wanted = state;
176 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
177 wait_event_interruptible_timeout(ppd->state_wait,
178 (ppd->lflags & state),
180 spin_lock_irqsave(&ppd->lflags_lock, flags);
181 ppd->state_wanted = 0;
182 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
184 if (!(ppd->lflags & state))
192 int qib_set_linkstate(struct qib_pportdata *ppd, u8 newstate)
196 struct qib_devdata *dd = ppd->dd;
201 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
208 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
215 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
222 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
229 if (ppd->lflags & QIBL_LINKARMED) {
233 if (!(ppd->lflags & (QIBL_LINKINIT | QIBL_LINKACTIVE))) {
243 spin_lock_irqsave(&ppd->lflags_lock, flags);
244 ppd->lflags &= ~QIBL_LINKV;
245 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
246 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
252 if (ppd->lflags & QIBL_LINKACTIVE) {
256 if (!(ppd->lflags & QIBL_LINKARMED)) {
260 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
269 ret = qib_wait_linkstate(ppd, lstate, 10);
291 static u32 qib_rcv_hdrerr(struct qib_ctxtdata *rcd, struct qib_pportdata *ppd,
303 struct qib_ibport *ibp = &ppd->ibport_data;
304 struct qib_devdata *dd = ppd->dd;
320 lid &= ~((1 << ppd->lmc) - 1);
321 if (unlikely(lid != ppd->lid))
443 struct qib_pportdata *ppd = rcd->ppd;
508 crcs += qib_rcv_hdrerr(rcd, ppd, rcd->ctxt, eflags, l,
588 * @ppd: the perport data
598 int qib_set_mtu(struct qib_pportdata *ppd, u16 arg)
614 piosize = ppd->ibmaxlen;
615 ppd->ibmtu = arg;
619 if (piosize != ppd->init_ibmaxlen) {
620 if (arg > piosize && arg <= ppd->init_ibmaxlen)
621 piosize = ppd->init_ibmaxlen - 2 * sizeof(u32);
622 ppd->ibmaxlen = piosize;
624 } else if ((arg + QIB_PIO_MAXIBHDR) != ppd->ibmaxlen) {
626 ppd->ibmaxlen = piosize;
629 ppd->dd->f_set_ib_cfg(ppd, QIB_IB_CFG_MTU, 0);
637 int qib_set_lid(struct qib_pportdata *ppd, u32 lid, u8 lmc)
639 struct qib_devdata *dd = ppd->dd;
641 ppd->lid = lid;
642 ppd->lmc = lmc;
644 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LIDLMC,
648 dd->unit, ppd->port, lid);
667 struct qib_pportdata *ppd = from_timer(ppd, t,
669 struct qib_devdata *dd = ppd->dd;
676 ph_idx = ppd->led_override_phase++ & 1;
677 ppd->led_override = ppd->led_override_vals[ph_idx];
678 timeoff = ppd->led_override_timeoff;
680 dd->f_setextled(ppd, 1);
685 if (ppd->led_override_vals[0] || ppd->led_override_vals[1])
686 mod_timer(&ppd->led_override_timer, jiffies + timeoff);
689 void qib_set_led_override(struct qib_pportdata *ppd, unsigned int val)
691 struct qib_devdata *dd = ppd->dd;
703 ppd->led_override_vals[0] = val & 0xF;
704 ppd->led_override_vals[1] = (val >> 4) & 0xF;
708 ppd->led_override_vals[0] = val & 0xF;
709 ppd->led_override_vals[1] = val & 0xF;
711 ppd->led_override_timeoff = timeoff;
717 if (atomic_inc_return(&ppd->led_override_timer_active) == 1) {
719 timer_setup(&ppd->led_override_timer, qib_run_led_override, 0);
720 ppd->led_override_timer.expires = jiffies + 1;
721 add_timer(&ppd->led_override_timer);
723 if (ppd->led_override_vals[0] || ppd->led_override_vals[1])
724 mod_timer(&ppd->led_override_timer, jiffies + 1);
725 atomic_dec(&ppd->led_override_timer_active);
742 struct qib_pportdata *ppd;
773 ppd = dd->pport + pidx;
774 if (atomic_read(&ppd->led_override_timer_active)) {
776 del_timer_sync(&ppd->led_override_timer);
777 atomic_set(&ppd->led_override_timer_active, 0);
781 ppd->led_override = LED_OVER_BOTH_OFF;
782 dd->f_setextled(ppd, 0);
784 qib_teardown_sdma(ppd);