Lines Matching refs:ppd

97 	struct qib_pportdata *ppd;
106 ppd = dd->pport + pidx;
107 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT |
129 struct qib_pportdata *ppd;
137 ppd = dd->pport + pidx;
138 if (ppd->lid && (ppd->lflags & (QIBL_LINKINIT |
155 * @ppd: the qlogic_ib device
165 int qib_wait_linkstate(struct qib_pportdata *ppd, u32 state, int msecs)
170 spin_lock_irqsave(&ppd->lflags_lock, flags);
171 if (ppd->state_wanted) {
172 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
176 ppd->state_wanted = state;
177 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
178 wait_event_interruptible_timeout(ppd->state_wait,
179 (ppd->lflags & state),
181 spin_lock_irqsave(&ppd->lflags_lock, flags);
182 ppd->state_wanted = 0;
183 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
185 if (!(ppd->lflags & state))
193 int qib_set_linkstate(struct qib_pportdata *ppd, u8 newstate)
197 struct qib_devdata *dd = ppd->dd;
202 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
209 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
216 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
223 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
230 if (ppd->lflags & QIBL_LINKARMED) {
234 if (!(ppd->lflags & (QIBL_LINKINIT | QIBL_LINKACTIVE))) {
244 spin_lock_irqsave(&ppd->lflags_lock, flags);
245 ppd->lflags &= ~QIBL_LINKV;
246 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
247 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
253 if (ppd->lflags & QIBL_LINKACTIVE) {
257 if (!(ppd->lflags & QIBL_LINKARMED)) {
261 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE,
270 ret = qib_wait_linkstate(ppd, lstate, 10);
292 static u32 qib_rcv_hdrerr(struct qib_ctxtdata *rcd, struct qib_pportdata *ppd,
304 struct qib_ibport *ibp = &ppd->ibport_data;
305 struct qib_devdata *dd = ppd->dd;
321 lid &= ~((1 << ppd->lmc) - 1);
322 if (unlikely(lid != ppd->lid))
444 struct qib_pportdata *ppd = rcd->ppd;
509 crcs += qib_rcv_hdrerr(rcd, ppd, rcd->ctxt, eflags, l,
589 * @ppd: the perport data
599 int qib_set_mtu(struct qib_pportdata *ppd, u16 arg)
615 piosize = ppd->ibmaxlen;
616 ppd->ibmtu = arg;
620 if (piosize != ppd->init_ibmaxlen) {
621 if (arg > piosize && arg <= ppd->init_ibmaxlen)
622 piosize = ppd->init_ibmaxlen - 2 * sizeof(u32);
623 ppd->ibmaxlen = piosize;
625 } else if ((arg + QIB_PIO_MAXIBHDR) != ppd->ibmaxlen) {
627 ppd->ibmaxlen = piosize;
630 ppd->dd->f_set_ib_cfg(ppd, QIB_IB_CFG_MTU, 0);
638 int qib_set_lid(struct qib_pportdata *ppd, u32 lid, u8 lmc)
640 struct qib_devdata *dd = ppd->dd;
642 ppd->lid = lid;
643 ppd->lmc = lmc;
645 dd->f_set_ib_cfg(ppd, QIB_IB_CFG_LIDLMC,
649 dd->unit, ppd->port, lid);
668 struct qib_pportdata *ppd = from_timer(ppd, t,
670 struct qib_devdata *dd = ppd->dd;
677 ph_idx = ppd->led_override_phase++ & 1;
678 ppd->led_override = ppd->led_override_vals[ph_idx];
679 timeoff = ppd->led_override_timeoff;
681 dd->f_setextled(ppd, 1);
686 if (ppd->led_override_vals[0] || ppd->led_override_vals[1])
687 mod_timer(&ppd->led_override_timer, jiffies + timeoff);
690 void qib_set_led_override(struct qib_pportdata *ppd, unsigned int val)
692 struct qib_devdata *dd = ppd->dd;
704 ppd->led_override_vals[0] = val & 0xF;
705 ppd->led_override_vals[1] = (val >> 4) & 0xF;
709 ppd->led_override_vals[0] = val & 0xF;
710 ppd->led_override_vals[1] = val & 0xF;
712 ppd->led_override_timeoff = timeoff;
718 if (atomic_inc_return(&ppd->led_override_timer_active) == 1) {
720 timer_setup(&ppd->led_override_timer, qib_run_led_override, 0);
721 ppd->led_override_timer.expires = jiffies + 1;
722 add_timer(&ppd->led_override_timer);
724 if (ppd->led_override_vals[0] || ppd->led_override_vals[1])
725 mod_timer(&ppd->led_override_timer, jiffies + 1);
726 atomic_dec(&ppd->led_override_timer_active);
743 struct qib_pportdata *ppd;
774 ppd = dd->pport + pidx;
775 if (atomic_read(&ppd->led_override_timer_active)) {
777 del_timer_sync(&ppd->led_override_timer);
778 atomic_set(&ppd->led_override_timer_active, 0);
782 ppd->led_override = LED_OVER_BOTH_OFF;
783 dd->f_setextled(ppd, 0);
785 qib_teardown_sdma(ppd);