Lines Matching refs:cpspec
873 if (!ppd->cpspec->kpregbase || !(ppd->dd->flags & QIB_PRESENT))
875 return readq(&ppd->cpspec->kpregbase[regno]);
881 if (ppd->cpspec && ppd->dd && ppd->cpspec->kpregbase &&
883 writeq(value, &ppd->cpspec->kpregbase[regno]);
921 if (ppd->cpspec && ppd->cpspec->cpregbase &&
923 writeq(value, &ppd->cpspec->cpregbase[regno]);
929 if (!ppd->cpspec || !ppd->cpspec->cpregbase ||
932 return readq(&ppd->cpspec->cpregbase[regno]);
938 if (!ppd->cpspec || !ppd->cpspec->cpregbase ||
941 return readl(&ppd->cpspec->cpregbase[regno]);
1592 err_decode(ppd->cpspec->sdmamsgbuf, sizeof(ppd->cpspec->sdmamsgbuf),
1606 errs, ppd->cpspec->sdmamsgbuf);
1749 ppd->cpspec->chase_timer.expires = 0;
1757 ppd->cpspec->chase_end = 0;
1764 ppd->cpspec->chase_timer.expires = jiffies + QIB_CHASE_DIS_TIME;
1765 add_timer(&ppd->cpspec->chase_timer);
1787 if (ppd->cpspec->chase_end &&
1788 time_after(tnow, ppd->cpspec->chase_end))
1790 else if (!ppd->cpspec->chase_end)
1791 ppd->cpspec->chase_end = tnow + QIB_CHASE_TIME;
1794 ppd->cpspec->chase_end = 0;
1803 ppd->cpspec->qdr_reforce = 1;
1806 } else if (ppd->cpspec->qdr_reforce &&
1834 if (!ppd->cpspec->qdr_dfe_on &&
1836 ppd->cpspec->qdr_dfe_on = 1;
1837 ppd->cpspec->qdr_dfe_time = 0;
1878 msg = ppd->cpspec->epmsgbuf;
1882 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf),
1885 snprintf(msg, sizeof(ppd->cpspec->epmsgbuf),
1899 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf), symptom,
1915 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf),
1931 err_decode(msg, sizeof(ppd->cpspec->epmsgbuf), errs,
1962 if (!(ppd->cpspec->ibcctrl_a &
1969 ppd->cpspec->ibcctrl_a |=
1972 ppd->cpspec->ibcctrl_a);
2291 ppd->cpspec->ibcctrl_a &=
2298 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a |
2356 ppd->cpspec->ibcctrl_a = (ppd->cpspec->ibcctrl_a &
2359 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
2385 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, IBLinkEn);
2386 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
2395 ppd->cpspec->ibdeltainprog = 1;
2396 ppd->cpspec->ibsymsnap = read_7322_creg32_port(ppd,
2398 ppd->cpspec->iblnkerrsnap = read_7322_creg32_port(ppd,
2420 ppd->cpspec->ibcctrl_a = ibc; /* without linkcmd or linkinitcmd! */
2428 if (!ppd->cpspec->ibcctrl_b) {
2435 ppd->cpspec->ibcctrl_b = qib_read_kreg_port(ppd,
2437 ppd->cpspec->ibcctrl_b &= ~(IBA7322_IBC_SPEED_QDR |
2443 ppd->cpspec->ibcctrl_b |=
2448 ppd->cpspec->ibcctrl_b |= (lse == QIB_IB_QDR) ?
2456 ppd->cpspec->ibcctrl_b |= IBA7322_IBC_WIDTH_AUTONEG;
2458 ppd->cpspec->ibcctrl_b |=
2464 ppd->cpspec->ibcctrl_b |= (IBA7322_IBC_RXPOL_MASK |
2467 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
2489 ppd->cpspec->ibcctrl_a |= SYM_MASK(IBCCtrlA_0, IBLinkEn);
2493 val = ppd->cpspec->ibcctrl_a | (QLOGIC_IB_IBCC_LINKINITCMD_DISABLE <<
2498 ppd->cpspec->ibcctrl_a = val & ~SYM_MASK(IBCCtrlA_0, LinkInitCmd);
2530 wake_up(&ppd->cpspec->autoneg_wait);
2531 cancel_delayed_work_sync(&ppd->cpspec->autoneg_work);
2533 cancel_delayed_work_sync(&ppd->cpspec->ipg_work);
2535 ppd->cpspec->chase_end = 0;
2536 if (ppd->cpspec->chase_timer.function) /* if initted */
2537 del_timer_sync(&ppd->cpspec->chase_timer);
2546 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, IBLinkEn);
2553 if (ppd->cpspec->ibsymdelta || ppd->cpspec->iblnkerrdelta ||
2554 ppd->cpspec->ibdeltainprog || ppd->cpspec->iblnkdowndelta) {
2563 if (ppd->cpspec->ibsymdelta || ppd->cpspec->ibdeltainprog) {
2565 if (ppd->cpspec->ibdeltainprog)
2566 val -= val - ppd->cpspec->ibsymsnap;
2567 val -= ppd->cpspec->ibsymdelta;
2570 if (ppd->cpspec->iblnkerrdelta || ppd->cpspec->ibdeltainprog) {
2572 if (ppd->cpspec->ibdeltainprog)
2573 val -= val - ppd->cpspec->iblnkerrsnap;
2574 val -= ppd->cpspec->iblnkerrdelta;
2577 if (ppd->cpspec->iblnkdowndelta) {
2579 val += ppd->cpspec->iblnkdowndelta;
2884 kfree(dd->pport[i].cpspec->portcntrs);
2990 qd = &ppd->cpspec->qsfp_data;
3674 dd->pport->cpspec->ibdeltainprog = 0;
3675 dd->pport->cpspec->ibsymdelta = 0;
3676 dd->pport->cpspec->iblnkerrdelta = 0;
3677 dd->pport->cpspec->ibmalfdelta = 0;
4013 ret = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4018 ret = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4024 ret = (ppd->cpspec->ibcctrl_a &
4051 ret = (int)((ppd->cpspec->ibcctrl_b >> lsb) & maskr);
4142 maskr = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4145 ppd->cpspec->ibcctrl_a &=
4147 ppd->cpspec->ibcctrl_a |= (u64) val <<
4150 ppd->cpspec->ibcctrl_a);
4156 maskr = SYM_FIELD(ppd->cpspec->ibcctrl_a, IBCCtrlA_0,
4159 ppd->cpspec->ibcctrl_a &=
4161 ppd->cpspec->ibcctrl_a |= (u64) val <<
4164 ppd->cpspec->ibcctrl_a);
4179 ppd->cpspec->ibcctrl_a &=
4182 ppd->cpspec->ibcctrl_a |=
4184 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
4197 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0, MaxPktLen);
4198 ppd->cpspec->ibcctrl_a |= (u64)val <<
4201 ppd->cpspec->ibcctrl_a);
4209 ppd->cpspec->ibmalfusesnap = 1;
4210 ppd->cpspec->ibmalfsnap = read_7322_creg32_port(ppd,
4212 if (!ppd->cpspec->ibdeltainprog &&
4214 ppd->cpspec->ibdeltainprog = 1;
4215 ppd->cpspec->ibsymsnap =
4218 ppd->cpspec->iblnkerrsnap =
4226 if (ppd->cpspec->ibmalfusesnap) {
4227 ppd->cpspec->ibmalfusesnap = 0;
4228 ppd->cpspec->ibmalfdelta +=
4231 ppd->cpspec->ibmalfsnap;
4259 ppd->cpspec->chase_end = 0;
4264 if (ppd->cpspec->chase_timer.expires) {
4265 del_timer_sync(&ppd->cpspec->chase_timer);
4266 ppd->cpspec->chase_timer.expires = 0;
4302 cancel_delayed_work(&ppd->cpspec->ipg_work);
4303 ppd->cpspec->ipg_tries = 0;
4311 ppd->cpspec->ibcctrl_b &= ~(maskr << lsb);
4312 ppd->cpspec->ibcctrl_b |= (((u64) val & maskr) << lsb);
4313 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
4326 ppd->cpspec->ibcctrl_a |= SYM_MASK(IBCCtrlA_0,
4332 ppd->cpspec->ibcctrl_a &= ~SYM_MASK(IBCCtrlA_0,
4343 ppd->cpspec->ibcctrl_a);
4344 ctrlb = ppd->cpspec->ibcctrl_b & ~(IBA7322_IBC_HRTBT_MASK
4346 ppd->cpspec->ibcctrl_b = ctrlb | val;
4348 ppd->cpspec->ibcctrl_b);
4821 if (ppd->cpspec->ibdeltainprog)
4822 ret -= ret - ppd->cpspec->ibsymsnap;
4823 ret -= ppd->cpspec->ibsymdelta;
4825 if (ppd->cpspec->ibdeltainprog)
4826 ret -= ret - ppd->cpspec->iblnkerrsnap;
4827 ret -= ppd->cpspec->iblnkerrdelta;
4829 ret -= ppd->cpspec->ibmalfdelta;
4831 ret += ppd->cpspec->iblnkdowndelta;
5015 dd->pport[i].cpspec->portcntrs =
5069 u64 *cntr = ppd->cpspec->portcntrs;
5139 if (ppd->cpspec->qdr_dfe_on && (ppd->link_speed_active &
5143 ppd->cpspec->qdr_dfe_time &&
5144 time_is_before_jiffies(ppd->cpspec->qdr_dfe_time)) {
5145 ppd->cpspec->qdr_dfe_on = 0;
5180 * of cpspec->ibcctrl_a as part of it's operation, so if that changes,
5195 ppd->cpspec->ibcctrl_a &
5201 qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a);
5317 newctrlb = ppd->cpspec->ibcctrl_b & ~(IBA7322_IBC_SPEED_MASK |
5331 if (newctrlb == ppd->cpspec->ibcctrl_b)
5334 ppd->cpspec->ibcctrl_b = newctrlb;
5335 qib_write_kreg_port(ppd, krp_ibcctrl_b, ppd->cpspec->ibcctrl_b);
5356 queue_delayed_work(ib_wq, &ppd->cpspec->autoneg_work,
5390 if (wait_event_timeout(ppd->cpspec->autoneg_wait,
5397 if (wait_event_timeout(ppd->cpspec->autoneg_wait,
5409 wait_event_timeout(ppd->cpspec->autoneg_wait,
5416 if (ppd->cpspec->autoneg_tries == AUTONEG_TRIES) {
5418 ppd->cpspec->autoneg_tries = 0;
5478 delay = 2 << ppd->cpspec->ipg_tries;
5479 queue_delayed_work(ib_wq, &ppd->cpspec->ipg_work,
5494 && ++ppd->cpspec->ipg_tries <= 10)
5562 ppd->cpspec->ipg_tries = 0;
5573 &ppd->cpspec->qsfp_data;
5594 if (clr == ppd->cpspec->iblnkdownsnap)
5595 ppd->cpspec->iblnkdowndelta++;
5602 && ppd->cpspec->autoneg_tries < AUTONEG_TRIES) {
5604 ++ppd->cpspec->autoneg_tries;
5605 if (!ppd->cpspec->ibdeltainprog) {
5606 ppd->cpspec->ibdeltainprog = 1;
5607 ppd->cpspec->ibsymdelta +=
5610 ppd->cpspec->ibsymsnap;
5611 ppd->cpspec->iblnkerrdelta +=
5614 ppd->cpspec->iblnkerrsnap;
5631 ppd->cpspec->autoneg_tries = 0;
5634 wake_up(&ppd->cpspec->autoneg_wait);
5646 ppd->cpspec->ibcctrl_b |= IBA7322_IBC_IBTA_1_2_MASK;
5651 if (ppd->dd->cspec->r1 && ppd->cpspec->ipg_tries <= 10)
5653 if (!ppd->cpspec->recovery_init)
5655 ppd->cpspec->qdr_dfe_time = jiffies +
5658 ppd->cpspec->ibmalfusesnap = 0;
5659 ppd->cpspec->ibmalfsnap = read_7322_creg32_port(ppd,
5663 ppd->cpspec->iblnkdownsnap =
5665 if (ppd->cpspec->ibdeltainprog) {
5666 ppd->cpspec->ibdeltainprog = 0;
5667 ppd->cpspec->ibsymdelta += read_7322_creg32_port(ppd,
5668 crp_ibsymbolerr) - ppd->cpspec->ibsymsnap;
5669 ppd->cpspec->iblnkerrdelta += read_7322_creg32_port(ppd,
5670 crp_iblinkerrrecov) - ppd->cpspec->iblnkerrsnap;
5673 !ppd->cpspec->ibdeltainprog &&
5675 ppd->cpspec->ibdeltainprog = 1;
5676 ppd->cpspec->ibsymsnap = read_7322_creg32_port(ppd,
5678 ppd->cpspec->iblnkerrsnap = read_7322_creg32_port(ppd,
5792 * The chip base addresses in cspec and cpspec have to be set
5809 dd->pport[0].cpspec->kpregbase =
5811 dd->pport[1].cpspec->kpregbase =
5814 dd->pport[0].cpspec->cpregbase =
5817 dd->pport[1].cpspec->cpregbase =
5856 if (!ppd->cpspec->kpregbase)
5859 psptr = ppd->cpspec->kpregbase + krp_sendctrl;
5951 ppd->cpspec->qsfp_data.modpresent = 0;
6000 if (!ppd->cpspec->qsfp_data.modpresent &&
6002 ppd->cpspec->qsfp_data.modpresent = 1;
6019 struct qib_qsfp_data *qd = &ppd->cpspec->qsfp_data;
6060 dd->pport[pidx].cpspec->no_eep = deflt;
6107 ppd->cpspec->no_eep = val;
6109 ppd->cpspec->h1_val = h1;
6381 ppd[0].cpspec = (struct qib_chippport_specific *)(dd->cspec + 1);
6382 ppd[1].cpspec = &ppd[0].cpspec[1];
6383 ppd[0].cpspec->ppd = &ppd[0]; /* for autoneg_7322_work() */
6384 ppd[1].cpspec->ppd = &ppd[1]; /* for autoneg_7322_work() */
6464 struct qib_chippport_specific *cp = ppd->cpspec;
6574 ppd->cpspec->no_eep = IS_QMH(dd) ?
7619 struct qib_qsfp_cache *qd = &ppd->cpspec->qsfp_data.cache;
7651 } else if (ppd->cpspec->no_eep < TXDDS_TABLE_SZ) {
7658 idx = ppd->cpspec->no_eep;
7662 } else if (ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ)) {
7664 idx = ppd->cpspec->no_eep - TXDDS_TABLE_SZ;
7669 ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
7671 idx = ppd->cpspec->no_eep - (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ);
7928 ppd->cpspec->qdr_dfe_on = 1;
8119 ppd->cpspec->qdr_dfe_on = 1;
8231 ppd->cpspec->qdr_reforce = 0;
8237 set_man_code(ppd, chan, ppd->cpspec->h1_val);
8437 ppd->cpspec->recovery_init = 1;
8495 ppd->cpspec->ibcctrl_a &=
8498 ppd->cpspec->ibcctrl_a);