Lines Matching refs:cpspec

851 	if (!ppd->cpspec->kpregbase || !(ppd->dd->flags & QIB_PRESENT))
853 return readq(&ppd->cpspec->kpregbase[regno]);
859 if (ppd->cpspec && ppd->dd && ppd->cpspec->kpregbase &&
861 writeq(value, &ppd->cpspec->kpregbase[regno]);
899 if (ppd->cpspec && ppd->cpspec->cpregbase &&
901 writeq(value, &ppd->cpspec->cpregbase[regno]);
907 if (!ppd->cpspec || !ppd->cpspec->cpregbase ||
910 return readq(&ppd->cpspec->cpregbase[regno]);
916 if (!ppd->cpspec || !ppd->cpspec->cpregbase ||
919 return readl(&ppd->cpspec->cpregbase[regno]);
1570 err_decode(ppd->cpspec->sdmamsgbuf, sizeof(ppd->cpspec->sdmamsgbuf),
1584 errs, ppd->cpspec->sdmamsgbuf);
1727 ppd->cpspec->chase_timer.expires = 0;
1735 ppd->cpspec->chase_end = 0;
1742 ppd->cpspec->chase_timer.expires = jiffies + QIB_CHASE_DIS_TIME;
1743 add_timer(&ppd->cpspec->chase_timer);
1765 if (ppd->cpspec->chase_end &&
1766 time_after(tnow, ppd->cpspec->chase_end))
1768 else if (!ppd->cpspec->chase_end)
1769 ppd->cpspec->chase_end = tnow + QIB_CHASE_TIME;
1772 ppd->cpspec->chase_end = 0;
1781 ppd->cpspec->qdr_reforce = 1;
1784 } else if (ppd->cpspec->qdr_reforce &&
1812 if (!ppd->cpspec->qdr_dfe_on &&
1814 ppd->cpspec->qdr_dfe_on = 1;
1815 ppd->cpspec->qdr_dfe_time = 0;
1856 msg = ppd->cpspec->epmsgbuf;
1860 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf),
1863 snprintf(msg, sizeof(ppd->cpspec->epmsgbuf),
1877 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf), symptom,
1893 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf),
1909 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf), errs,
1940 if (!(ppd->cpspec->ibcctrl_a &
1947 ppd->cpspec->ibcctrl_a |=
1950 ppd->cpspec->ibcctrl_a);
2269 ppd->cpspec->ibcctrl_a &=
2276 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a |
2334 ppd->cpspec->ibcctrl_a = (ppd->cpspec->ibcctrl_a &
2337 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
2363 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, IBLinkEn);
2364 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
2373 ppd->cpspec->ibdeltainprog = 1;
2374 ppd->cpspec->ibsymsnap = read_7322_creg32_port(ppd,
2376 ppd->cpspec->iblnkerrsnap = read_7322_creg32_port(ppd,
2398 ppd->cpspec->ibcctrl_a = ibc; /* without linkcmd or linkinitcmd! */
2406 if (!ppd->cpspec->ibcctrl_b) {
2413 ppd->cpspec->ibcctrl_b = qib_read_kreg_port(ppd,
2415 ppd->cpspec->ibcctrl_b &= ~(IBA7322_IBC_SPEED_QDR |
2421 ppd->cpspec->ibcctrl_b |=
2426 ppd->cpspec->ibcctrl_b |= (lse == QIB_IB_QDR) ?
2434 ppd->cpspec->ibcctrl_b |= IBA7322_IBC_WIDTH_AUTONEG;
2436 ppd->cpspec->ibcctrl_b |=
2442 ppd->cpspec->ibcctrl_b |= (IBA7322_IBC_RXPOL_MASK |
2445 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
2467 ppd->cpspec->ibcctrl_a |= SYM_MASK(IBCCtrlA_0, IBLinkEn);
2471 val = ppd->cpspec->ibcctrl_a | (QLOGIC_IB_IBCC_LINKINITCMD_DISABLE <<
2476 ppd->cpspec->ibcctrl_a = val & ~SYM_MASK(IBCCtrlA_0, LinkInitCmd);
2508 wake_up(&ppd->cpspec->autoneg_wait);
2509 cancel_delayed_work_sync(&ppd->cpspec->autoneg_work);
2511 cancel_delayed_work_sync(&ppd->cpspec->ipg_work);
2513 ppd->cpspec->chase_end = 0;
2514 if (ppd->cpspec->chase_timer.function) /* if initted */
2515 del_timer_sync(&ppd->cpspec->chase_timer);
2524 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, IBLinkEn);
2531 if (ppd->cpspec->ibsymdelta || ppd->cpspec->iblnkerrdelta ||
2532 ppd->cpspec->ibdeltainprog || ppd->cpspec->iblnkdowndelta) {
2541 if (ppd->cpspec->ibsymdelta || ppd->cpspec->ibdeltainprog) {
2543 if (ppd->cpspec->ibdeltainprog)
2544 val -= val - ppd->cpspec->ibsymsnap;
2545 val -= ppd->cpspec->ibsymdelta;
2548 if (ppd->cpspec->iblnkerrdelta || ppd->cpspec->ibdeltainprog) {
2550 if (ppd->cpspec->ibdeltainprog)
2551 val -= val - ppd->cpspec->iblnkerrsnap;
2552 val -= ppd->cpspec->iblnkerrdelta;
2555 if (ppd->cpspec->iblnkdowndelta) {
2557 val += ppd->cpspec->iblnkdowndelta;
2862 kfree(dd->pport[i].cpspec->portcntrs);
2968 qd = &ppd->cpspec->qsfp_data;
3652 dd->pport->cpspec->ibdeltainprog = 0;
3653 dd->pport->cpspec->ibsymdelta = 0;
3654 dd->pport->cpspec->iblnkerrdelta = 0;
3655 dd->pport->cpspec->ibmalfdelta = 0;
3991 ret = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
3996 ret = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4002 ret = (ppd->cpspec->ibcctrl_a &
4029 ret = (int)((ppd->cpspec->ibcctrl_b >> lsb) & maskr);
4120 maskr = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4123 ppd->cpspec->ibcctrl_a &=
4125 ppd->cpspec->ibcctrl_a |= (u64) val <<
4128 ppd->cpspec->ibcctrl_a);
4134 maskr = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4137 ppd->cpspec->ibcctrl_a &=
4139 ppd->cpspec->ibcctrl_a |= (u64) val <<
4142 ppd->cpspec->ibcctrl_a);
4157 ppd->cpspec->ibcctrl_a &=
4160 ppd->cpspec->ibcctrl_a |=
4162 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
4175 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, MaxPktLen);
4176 ppd->cpspec->ibcctrl_a |= (u64)val <<
4179 ppd->cpspec->ibcctrl_a);
4187 ppd->cpspec->ibmalfusesnap = 1;
4188 ppd->cpspec->ibmalfsnap = read_7322_creg32_port(ppd,
4190 if (!ppd->cpspec->ibdeltainprog &&
4192 ppd->cpspec->ibdeltainprog = 1;
4193 ppd->cpspec->ibsymsnap =
4196 ppd->cpspec->iblnkerrsnap =
4204 if (ppd->cpspec->ibmalfusesnap) {
4205 ppd->cpspec->ibmalfusesnap = 0;
4206 ppd->cpspec->ibmalfdelta +=
4209 ppd->cpspec->ibmalfsnap;
4237 ppd->cpspec->chase_end = 0;
4242 if (ppd->cpspec->chase_timer.expires) {
4243 del_timer_sync(&ppd->cpspec->chase_timer);
4244 ppd->cpspec->chase_timer.expires = 0;
4280 cancel_delayed_work(&ppd->cpspec->ipg_work);
4281 ppd->cpspec->ipg_tries = 0;
4289 ppd->cpspec->ibcctrl_b &= ~(maskr << lsb);
4290 ppd->cpspec->ibcctrl_b |= (((u64) val & maskr) << lsb);
4291 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
4304 ppd->cpspec->ibcctrl_a |= SYM_MASK(IBCCtrlA_0,
4310 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0,
4321 ppd->cpspec->ibcctrl_a);
4322 ctrlb = ppd->cpspec->ibcctrl_b & ~(IBA7322_IBC_HRTBT_MASK
4324 ppd->cpspec->ibcctrl_b = ctrlb | val;
4326 ppd->cpspec->ibcctrl_b);
4799 if (ppd->cpspec->ibdeltainprog)
4800 ret -= ret - ppd->cpspec->ibsymsnap;
4801 ret -= ppd->cpspec->ibsymdelta;
4803 if (ppd->cpspec->ibdeltainprog)
4804 ret -= ret - ppd->cpspec->iblnkerrsnap;
4805 ret -= ppd->cpspec->iblnkerrdelta;
4807 ret -= ppd->cpspec->ibmalfdelta;
4809 ret += ppd->cpspec->iblnkdowndelta;
4993 dd->pport[i].cpspec->portcntrs =
5047 u64 *cntr = ppd->cpspec->portcntrs;
5117 if (ppd->cpspec->qdr_dfe_on && (ppd->link_speed_active &
5121 ppd->cpspec->qdr_dfe_time &&
5122 time_is_before_jiffies(ppd->cpspec->qdr_dfe_time)) {
5123 ppd->cpspec->qdr_dfe_on = 0;
5158 * of cpspec->ibcctrl_a as part of it's operation, so if that changes,
5173 ppd->cpspec->ibcctrl_a &
5179 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
5295 newctrlb = ppd->cpspec->ibcctrl_b & ~(IBA7322_IBC_SPEED_MASK |
5309 if (newctrlb == ppd->cpspec->ibcctrl_b)
5312 ppd->cpspec->ibcctrl_b = newctrlb;
5313 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
5334 queue_delayed_work(ib_wq, &ppd->cpspec->autoneg_work,
5368 if (wait_event_timeout(ppd->cpspec->autoneg_wait,
5375 if (wait_event_timeout(ppd->cpspec->autoneg_wait,
5387 wait_event_timeout(ppd->cpspec->autoneg_wait,
5394 if (ppd->cpspec->autoneg_tries == AUTONEG_TRIES) {
5396 ppd->cpspec->autoneg_tries = 0;
5456 delay = 2 << ppd->cpspec->ipg_tries;
5457 queue_delayed_work(ib_wq, &ppd->cpspec->ipg_work,
5472 && ++ppd->cpspec->ipg_tries <= 10)
5540 ppd->cpspec->ipg_tries = 0;
5551 &ppd->cpspec->qsfp_data;
5572 if (clr == ppd->cpspec->iblnkdownsnap)
5573 ppd->cpspec->iblnkdowndelta++;
5580 && ppd->cpspec->autoneg_tries < AUTONEG_TRIES) {
5582 ++ppd->cpspec->autoneg_tries;
5583 if (!ppd->cpspec->ibdeltainprog) {
5584 ppd->cpspec->ibdeltainprog = 1;
5585 ppd->cpspec->ibsymdelta +=
5588 ppd->cpspec->ibsymsnap;
5589 ppd->cpspec->iblnkerrdelta +=
5592 ppd->cpspec->iblnkerrsnap;
5609 ppd->cpspec->autoneg_tries = 0;
5612 wake_up(&ppd->cpspec->autoneg_wait);
5624 ppd->cpspec->ibcctrl_b |= IBA7322_IBC_IBTA_1_2_MASK;
5629 if (ppd->dd->cspec->r1 && ppd->cpspec->ipg_tries <= 10)
5631 if (!ppd->cpspec->recovery_init)
5633 ppd->cpspec->qdr_dfe_time = jiffies +
5636 ppd->cpspec->ibmalfusesnap = 0;
5637 ppd->cpspec->ibmalfsnap = read_7322_creg32_port(ppd,
5641 ppd->cpspec->iblnkdownsnap =
5643 if (ppd->cpspec->ibdeltainprog) {
5644 ppd->cpspec->ibdeltainprog = 0;
5645 ppd->cpspec->ibsymdelta += read_7322_creg32_port(ppd,
5646 crp_ibsymbolerr) - ppd->cpspec->ibsymsnap;
5647 ppd->cpspec->iblnkerrdelta += read_7322_creg32_port(ppd,
5648 crp_iblinkerrrecov) - ppd->cpspec->iblnkerrsnap;
5651 !ppd->cpspec->ibdeltainprog &&
5653 ppd->cpspec->ibdeltainprog = 1;
5654 ppd->cpspec->ibsymsnap = read_7322_creg32_port(ppd,
5656 ppd->cpspec->iblnkerrsnap = read_7322_creg32_port(ppd,
5770 * The chip base addresses in cspec and cpspec have to be set
5787 dd->pport[0].cpspec->kpregbase =
5789 dd->pport[1].cpspec->kpregbase =
5792 dd->pport[0].cpspec->cpregbase =
5795 dd->pport[1].cpspec->cpregbase =
5834 if (!ppd->cpspec->kpregbase)
5837 psptr = ppd->cpspec->kpregbase + krp_sendctrl;
5929 ppd->cpspec->qsfp_data.modpresent = 0;
5978 if (!ppd->cpspec->qsfp_data.modpresent &&
5980 ppd->cpspec->qsfp_data.modpresent = 1;
5997 struct qib_qsfp_data *qd = &ppd->cpspec->qsfp_data;
6038 dd->pport[pidx].cpspec->no_eep = deflt;
6085 ppd->cpspec->no_eep = val;
6087 ppd->cpspec->h1_val = h1;
6359 ppd[0].cpspec = (struct qib_chippport_specific *)(dd->cspec + 1);
6360 ppd[1].cpspec = &ppd[0].cpspec[1];
6361 ppd[0].cpspec->ppd = &ppd[0]; /* for autoneg_7322_work() */
6362 ppd[1].cpspec->ppd = &ppd[1]; /* for autoneg_7322_work() */
6435 struct qib_chippport_specific *cp = ppd->cpspec;
6545 ppd->cpspec->no_eep = IS_QMH(dd) ?
7590 struct qib_qsfp_cache *qd = &ppd->cpspec->qsfp_data.cache;
7622 } else if (ppd->cpspec->no_eep < TXDDS_TABLE_SZ) {
7629 idx = ppd->cpspec->no_eep;
7633 } else if (ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ)) {
7635 idx = ppd->cpspec->no_eep - TXDDS_TABLE_SZ;
7640 ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
7642 idx = ppd->cpspec->no_eep - (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ);
7899 ppd->cpspec->qdr_dfe_on = 1;
8090 ppd->cpspec->qdr_dfe_on = 1;
8202 ppd->cpspec->qdr_reforce = 0;
8208 set_man_code(ppd, chan, ppd->cpspec->h1_val);
8408 ppd->cpspec->recovery_init = 1;
8466 ppd->cpspec->ibcctrl_a &=
8469 ppd->cpspec->ibcctrl_a);