Lines Matching defs:ppd
49 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op);
268 struct qib_pportdata *ppd;
962 static void qib_disarm_6120_senderrbufs(struct qib_pportdata *ppd)
965 struct qib_devdata *dd = ppd->dd;
1002 struct qib_pportdata *ppd = dd->pport;
1019 qib_disarm_6120_senderrbufs(ppd);
1021 !(ppd->lflags & QIBL_LINKACTIVE)) {
1032 !(ppd->lflags & QIBL_LINKACTIVE)) {
1082 qib_handle_e_ibstatuschanged(ppd, ibcs);
1095 qib_dev_porterr(dd, ppd->port, "%s error\n", msg);
1097 if (ppd->state_wanted & ppd->lflags)
1098 wake_up_interruptible(&ppd->state_wait);
1190 static void qib_set_ib_6120_lstate(struct qib_pportdata *ppd, u16 linkcmd,
1194 struct qib_devdata *dd = ppd->dd;
1202 spin_lock_irqsave(&ppd->lflags_lock, flags);
1203 ppd->lflags |= QIBL_IB_LINK_DISABLED;
1204 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
1211 spin_lock_irqsave(&ppd->lflags_lock, flags);
1212 ppd->lflags &= ~QIBL_IB_LINK_DISABLED;
1213 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
1228 static int qib_6120_bringup_serdes(struct qib_pportdata *ppd)
1230 struct qib_devdata *dd = ppd->dd;
1260 ibc |= ((u64)(ppd->ibmaxlen >> 2) + 1) << SYM_LSB(IBCCtrl, MaxPktLen);
1323 if (SYM_FIELD(val, XGXSCfg, polarity_inv) != ppd->rx_pol_inv) {
1326 val |= (u64)ppd->rx_pol_inv << SYM_LSB(XGXSCfg, polarity_inv);
1342 ppd->guid = dd->base_guid;
1365 * @ppd: physical port of the qlogic_ib device
1368 static void qib_6120_quiet_serdes(struct qib_pportdata *ppd)
1370 struct qib_devdata *dd = ppd->dd;
1373 qib_set_ib_6120_lstate(ppd, 0, QLOGIC_IB_IBCC_LINKINITCMD_DISABLE);
1435 static void qib_6120_setup_setextled(struct qib_pportdata *ppd, u32 on)
1439 struct qib_devdata *dd = ppd->dd;
1449 if (ppd->led_override) {
1450 ltst = (ppd->led_override & QIB_LED_PHYS) ?
1452 lst = (ppd->led_override & QIB_LED_LOG) ?
2093 static void rcvctrl_6120_mod(struct qib_pportdata *ppd, unsigned int op,
2096 struct qib_devdata *dd = ppd->dd;
2195 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op)
2197 struct qib_devdata *dd = ppd->dd;
2276 static u64 qib_portcntr_6120(struct qib_pportdata *ppd, u32 reg)
2279 struct qib_devdata *dd = ppd->dd;
2320 qib_devinfo(ppd->dd->pcidev,
2552 struct qib_pportdata *ppd = &dd->pport[port];
2564 *cntr++ = qib_portcntr_6120(ppd,
2622 struct qib_pportdata *ppd = dd->pport;
2639 traffic_wds = qib_portcntr_6120(ppd, cr_wordsend) +
2640 qib_portcntr_6120(ppd, cr_wordrcv);
2663 static void qib_6120_xgxs_reset(struct qib_pportdata *ppd)
2666 struct qib_devdata *dd = ppd->dd;
2679 static int qib_6120_get_ib_cfg(struct qib_pportdata *ppd, int which)
2685 ret = ppd->link_width_active;
2689 ret = ppd->link_speed_active;
2693 ret = ppd->link_width_enabled;
2697 ret = ppd->link_speed_enabled;
2701 ret = ppd->vls_operational;
2713 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl,
2718 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl,
2724 ret = (ppd->dd->cspec->ibcctrl &
2747 static int qib_6120_set_ib_cfg(struct qib_pportdata *ppd, int which, u32 val)
2749 struct qib_devdata *dd = ppd->dd;
2756 ppd->link_width_enabled = val;
2760 ppd->link_speed_enabled = val;
2790 val64 = (u64) ppd->pkeys[0] | ((u64) ppd->pkeys[1] << 16) |
2791 ((u64) ppd->pkeys[2] << 32) |
2792 ((u64) ppd->pkeys[3] << 48);
2816 val = (ppd->ibmaxlen >> 2) + 1;
2873 qib_set_ib_6120_lstate(ppd, lcmd, licmd);
2887 static int qib_6120_set_loopback(struct qib_pportdata *ppd, const char *what)
2892 ppd->dd->cspec->ibcctrl |= SYM_MASK(IBCCtrl, Loopback);
2893 qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n",
2894 ppd->dd->unit, ppd->port);
2896 ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback);
2897 qib_devinfo(ppd->dd->pcidev,
2899 ppd->dd->unit, ppd->port);
2903 qib_write_kreg(ppd->dd, kr_ibcctrl, ppd->dd->cspec->ibcctrl);
2904 qib_write_kreg(ppd->dd, kr_scratch, 0);
2912 struct qib_pportdata *ppd = cs->ppd;
2913 struct qib_ibport *ibp = &ppd->ibport_data;
2919 qib_snapshot_counters(ppd, &cs->sword, &cs->rword,
2927 qib_snapshot_counters(ppd, &ta, &tb, &tc, &td, &te);
2941 static void qib_set_cntr_6120_sample(struct qib_pportdata *ppd, u32 intv,
2944 struct qib_chip_specific *cs = ppd->dd->cspec;
2951 qib_snapshot_counters(ppd, &cs->sword, &cs->rword,
2995 static int qib_6120_ib_updown(struct qib_pportdata *ppd, int ibup, u64 ibcs)
2999 spin_lock_irqsave(&ppd->lflags_lock, flags);
3000 ppd->lflags &= ~QIBL_IB_FORCE_NOTIFY;
3001 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
3004 if (ppd->dd->cspec->ibdeltainprog) {
3005 ppd->dd->cspec->ibdeltainprog = 0;
3006 ppd->dd->cspec->ibsymdelta +=
3007 read_6120_creg32(ppd->dd, cr_ibsymbolerr) -
3008 ppd->dd->cspec->ibsymsnap;
3009 ppd->dd->cspec->iblnkerrdelta +=
3010 read_6120_creg32(ppd->dd, cr_iblinkerrrecov) -
3011 ppd->dd->cspec->iblnkerrsnap;
3013 qib_hol_init(ppd);
3015 ppd->dd->cspec->lli_counter = 0;
3016 if (!ppd->dd->cspec->ibdeltainprog) {
3017 ppd->dd->cspec->ibdeltainprog = 1;
3018 ppd->dd->cspec->ibsymsnap =
3019 read_6120_creg32(ppd->dd, cr_ibsymbolerr);
3020 ppd->dd->cspec->iblnkerrsnap =
3021 read_6120_creg32(ppd->dd, cr_iblinkerrrecov);
3023 qib_hol_down(ppd);
3026 qib_6120_setup_setextled(ppd, ibup);
3169 struct qib_pportdata *ppd;
3172 ppd = (struct qib_pportdata *)(dd + 1);
3173 dd->pport = ppd;
3176 dd->cspec = (struct qib_chip_specific *)(ppd + dd->num_pports);
3177 dd->cspec->ppd = ppd;
3178 ppd->cpspec = NULL; /* not used in this chip */
3215 ret = qib_init_pportdata(ppd, dd, 0, 1);
3218 ppd->link_width_supported = IB_WIDTH_1X | IB_WIDTH_4X;
3219 ppd->link_speed_supported = QIB_IB_SDR;
3220 ppd->link_width_enabled = IB_WIDTH_4X;
3221 ppd->link_speed_enabled = ppd->link_speed_supported;
3223 ppd->link_width_active = ppd->link_width_enabled;
3224 ppd->link_speed_active = ppd->link_speed_enabled;
3225 ppd->vls_supported = IB_VL_VL0;
3226 ppd->vls_operational = ppd->vls_supported;
3298 static u32 __iomem *get_6120_link_buf(struct qib_pportdata *ppd, u32 *bnum)
3301 u32 lbuf = ppd->dd->piobcnt2k + ppd->dd->piobcnt4k - 1;
3307 sendctrl_6120_mod(ppd->dd->pport, QIB_SENDCTRL_AVAIL_BLIP);
3308 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */
3309 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf);
3313 sendctrl_6120_mod(ppd, QIB_SENDCTRL_DISARM_ALL | QIB_SENDCTRL_FLUSH |
3315 ppd->dd->upd_pio_shadow = 1; /* update our idea of what's busy */
3316 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */
3317 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf);
3322 static u32 __iomem *qib_6120_getsendbuf(struct qib_pportdata *ppd, u64 pbc,
3326 struct qib_devdata *dd = ppd->dd;
3330 !(ppd->lflags & (QIBL_IB_AUTONEG_INPROG | QIBL_LINKACTIVE)))
3331 buf = get_6120_link_buf(ppd, pbufnum);
3345 static int init_sdma_6120_regs(struct qib_pportdata *ppd)
3350 static u16 qib_sdma_6120_gethead(struct qib_pportdata *ppd)
3355 static int qib_sdma_6120_busy(struct qib_pportdata *ppd)
3360 static void qib_sdma_update_6120_tail(struct qib_pportdata *ppd, u16 tail)
3364 static void qib_6120_sdma_sendctrl(struct qib_pportdata *ppd, unsigned op)
3368 static void qib_sdma_set_6120_desc_cnt(struct qib_pportdata *ppd, unsigned cnt)
3376 static u32 qib_6120_setpbc_control(struct qib_pportdata *ppd, u32 plen,