Lines Matching refs:ppd

49 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op);
268 struct qib_pportdata *ppd; member
959 static void qib_disarm_6120_senderrbufs(struct qib_pportdata *ppd) in qib_disarm_6120_senderrbufs() argument
962 struct qib_devdata *dd = ppd->dd; in qib_disarm_6120_senderrbufs()
999 struct qib_pportdata *ppd = dd->pport; in handle_6120_errors() local
1016 qib_disarm_6120_senderrbufs(ppd); in handle_6120_errors()
1018 !(ppd->lflags & QIBL_LINKACTIVE)) { in handle_6120_errors()
1029 !(ppd->lflags & QIBL_LINKACTIVE)) { in handle_6120_errors()
1079 qib_handle_e_ibstatuschanged(ppd, ibcs); in handle_6120_errors()
1092 qib_dev_porterr(dd, ppd->port, "%s error\n", msg); in handle_6120_errors()
1094 if (ppd->state_wanted & ppd->lflags) in handle_6120_errors()
1095 wake_up_interruptible(&ppd->state_wait); in handle_6120_errors()
1187 static void qib_set_ib_6120_lstate(struct qib_pportdata *ppd, u16 linkcmd, in qib_set_ib_6120_lstate() argument
1191 struct qib_devdata *dd = ppd->dd; in qib_set_ib_6120_lstate()
1199 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1200 ppd->lflags |= QIBL_IB_LINK_DISABLED; in qib_set_ib_6120_lstate()
1201 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1208 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1209 ppd->lflags &= ~QIBL_IB_LINK_DISABLED; in qib_set_ib_6120_lstate()
1210 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1225 static int qib_6120_bringup_serdes(struct qib_pportdata *ppd) in qib_6120_bringup_serdes() argument
1227 struct qib_devdata *dd = ppd->dd; in qib_6120_bringup_serdes()
1257 ibc |= ((u64)(ppd->ibmaxlen >> 2) + 1) << SYM_LSB(IBCCtrl, MaxPktLen); in qib_6120_bringup_serdes()
1320 if (SYM_FIELD(val, XGXSCfg, polarity_inv) != ppd->rx_pol_inv) { in qib_6120_bringup_serdes()
1323 val |= (u64)ppd->rx_pol_inv << SYM_LSB(XGXSCfg, polarity_inv); in qib_6120_bringup_serdes()
1339 ppd->guid = dd->base_guid; in qib_6120_bringup_serdes()
1365 static void qib_6120_quiet_serdes(struct qib_pportdata *ppd) in qib_6120_quiet_serdes() argument
1367 struct qib_devdata *dd = ppd->dd; in qib_6120_quiet_serdes()
1370 qib_set_ib_6120_lstate(ppd, 0, QLOGIC_IB_IBCC_LINKINITCMD_DISABLE); in qib_6120_quiet_serdes()
1432 static void qib_6120_setup_setextled(struct qib_pportdata *ppd, u32 on) in qib_6120_setup_setextled() argument
1436 struct qib_devdata *dd = ppd->dd; in qib_6120_setup_setextled()
1446 if (ppd->led_override) { in qib_6120_setup_setextled()
1447 ltst = (ppd->led_override & QIB_LED_PHYS) ? in qib_6120_setup_setextled()
1449 lst = (ppd->led_override & QIB_LED_LOG) ? in qib_6120_setup_setextled()
2090 static void rcvctrl_6120_mod(struct qib_pportdata *ppd, unsigned int op, in rcvctrl_6120_mod() argument
2093 struct qib_devdata *dd = ppd->dd; in rcvctrl_6120_mod()
2192 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op) in sendctrl_6120_mod() argument
2194 struct qib_devdata *dd = ppd->dd; in sendctrl_6120_mod()
2273 static u64 qib_portcntr_6120(struct qib_pportdata *ppd, u32 reg) in qib_portcntr_6120() argument
2276 struct qib_devdata *dd = ppd->dd; in qib_portcntr_6120()
2317 qib_devinfo(ppd->dd->pcidev, in qib_portcntr_6120()
2549 struct qib_pportdata *ppd = &dd->pport[port]; in qib_read_6120portcntrs() local
2561 *cntr++ = qib_portcntr_6120(ppd, in qib_read_6120portcntrs()
2619 struct qib_pportdata *ppd = dd->pport; in qib_get_6120_faststats() local
2636 traffic_wds = qib_portcntr_6120(ppd, cr_wordsend) + in qib_get_6120_faststats()
2637 qib_portcntr_6120(ppd, cr_wordrcv); in qib_get_6120_faststats()
2660 static void qib_6120_xgxs_reset(struct qib_pportdata *ppd) in qib_6120_xgxs_reset() argument
2663 struct qib_devdata *dd = ppd->dd; in qib_6120_xgxs_reset()
2676 static int qib_6120_get_ib_cfg(struct qib_pportdata *ppd, int which) in qib_6120_get_ib_cfg() argument
2682 ret = ppd->link_width_active; in qib_6120_get_ib_cfg()
2686 ret = ppd->link_speed_active; in qib_6120_get_ib_cfg()
2690 ret = ppd->link_width_enabled; in qib_6120_get_ib_cfg()
2694 ret = ppd->link_speed_enabled; in qib_6120_get_ib_cfg()
2698 ret = ppd->vls_operational; in qib_6120_get_ib_cfg()
2710 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl, in qib_6120_get_ib_cfg()
2715 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl, in qib_6120_get_ib_cfg()
2721 ret = (ppd->dd->cspec->ibcctrl & in qib_6120_get_ib_cfg()
2744 static int qib_6120_set_ib_cfg(struct qib_pportdata *ppd, int which, u32 val) in qib_6120_set_ib_cfg() argument
2746 struct qib_devdata *dd = ppd->dd; in qib_6120_set_ib_cfg()
2753 ppd->link_width_enabled = val; in qib_6120_set_ib_cfg()
2757 ppd->link_speed_enabled = val; in qib_6120_set_ib_cfg()
2787 val64 = (u64) ppd->pkeys[0] | ((u64) ppd->pkeys[1] << 16) | in qib_6120_set_ib_cfg()
2788 ((u64) ppd->pkeys[2] << 32) | in qib_6120_set_ib_cfg()
2789 ((u64) ppd->pkeys[3] << 48); in qib_6120_set_ib_cfg()
2813 val = (ppd->ibmaxlen >> 2) + 1; in qib_6120_set_ib_cfg()
2870 qib_set_ib_6120_lstate(ppd, lcmd, licmd); in qib_6120_set_ib_cfg()
2884 static int qib_6120_set_loopback(struct qib_pportdata *ppd, const char *what) in qib_6120_set_loopback() argument
2889 ppd->dd->cspec->ibcctrl |= SYM_MASK(IBCCtrl, Loopback); in qib_6120_set_loopback()
2890 qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n", in qib_6120_set_loopback()
2891 ppd->dd->unit, ppd->port); in qib_6120_set_loopback()
2893 ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); in qib_6120_set_loopback()
2894 qib_devinfo(ppd->dd->pcidev, in qib_6120_set_loopback()
2896 ppd->dd->unit, ppd->port); in qib_6120_set_loopback()
2900 qib_write_kreg(ppd->dd, kr_ibcctrl, ppd->dd->cspec->ibcctrl); in qib_6120_set_loopback()
2901 qib_write_kreg(ppd->dd, kr_scratch, 0); in qib_6120_set_loopback()
2909 struct qib_pportdata *ppd = cs->ppd; in pma_6120_timer() local
2910 struct qib_ibport *ibp = &ppd->ibport_data; in pma_6120_timer()
2916 qib_snapshot_counters(ppd, &cs->sword, &cs->rword, in pma_6120_timer()
2924 qib_snapshot_counters(ppd, &ta, &tb, &tc, &td, &te); in pma_6120_timer()
2938 static void qib_set_cntr_6120_sample(struct qib_pportdata *ppd, u32 intv, in qib_set_cntr_6120_sample() argument
2941 struct qib_chip_specific *cs = ppd->dd->cspec; in qib_set_cntr_6120_sample()
2948 qib_snapshot_counters(ppd, &cs->sword, &cs->rword, in qib_set_cntr_6120_sample()
2992 static int qib_6120_ib_updown(struct qib_pportdata *ppd, int ibup, u64 ibcs) in qib_6120_ib_updown() argument
2996 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_6120_ib_updown()
2997 ppd->lflags &= ~QIBL_IB_FORCE_NOTIFY; in qib_6120_ib_updown()
2998 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_6120_ib_updown()
3001 if (ppd->dd->cspec->ibdeltainprog) { in qib_6120_ib_updown()
3002 ppd->dd->cspec->ibdeltainprog = 0; in qib_6120_ib_updown()
3003 ppd->dd->cspec->ibsymdelta += in qib_6120_ib_updown()
3004 read_6120_creg32(ppd->dd, cr_ibsymbolerr) - in qib_6120_ib_updown()
3005 ppd->dd->cspec->ibsymsnap; in qib_6120_ib_updown()
3006 ppd->dd->cspec->iblnkerrdelta += in qib_6120_ib_updown()
3007 read_6120_creg32(ppd->dd, cr_iblinkerrrecov) - in qib_6120_ib_updown()
3008 ppd->dd->cspec->iblnkerrsnap; in qib_6120_ib_updown()
3010 qib_hol_init(ppd); in qib_6120_ib_updown()
3012 ppd->dd->cspec->lli_counter = 0; in qib_6120_ib_updown()
3013 if (!ppd->dd->cspec->ibdeltainprog) { in qib_6120_ib_updown()
3014 ppd->dd->cspec->ibdeltainprog = 1; in qib_6120_ib_updown()
3015 ppd->dd->cspec->ibsymsnap = in qib_6120_ib_updown()
3016 read_6120_creg32(ppd->dd, cr_ibsymbolerr); in qib_6120_ib_updown()
3017 ppd->dd->cspec->iblnkerrsnap = in qib_6120_ib_updown()
3018 read_6120_creg32(ppd->dd, cr_iblinkerrrecov); in qib_6120_ib_updown()
3020 qib_hol_down(ppd); in qib_6120_ib_updown()
3023 qib_6120_setup_setextled(ppd, ibup); in qib_6120_ib_updown()
3166 struct qib_pportdata *ppd; in init_6120_variables() local
3169 ppd = (struct qib_pportdata *)(dd + 1); in init_6120_variables()
3170 dd->pport = ppd; in init_6120_variables()
3173 dd->cspec = (struct qib_chip_specific *)(ppd + dd->num_pports); in init_6120_variables()
3174 dd->cspec->ppd = ppd; in init_6120_variables()
3175 ppd->cpspec = NULL; /* not used in this chip */ in init_6120_variables()
3212 ret = qib_init_pportdata(ppd, dd, 0, 1); in init_6120_variables()
3215 ppd->link_width_supported = IB_WIDTH_1X | IB_WIDTH_4X; in init_6120_variables()
3216 ppd->link_speed_supported = QIB_IB_SDR; in init_6120_variables()
3217 ppd->link_width_enabled = IB_WIDTH_4X; in init_6120_variables()
3218 ppd->link_speed_enabled = ppd->link_speed_supported; in init_6120_variables()
3220 ppd->link_width_active = ppd->link_width_enabled; in init_6120_variables()
3221 ppd->link_speed_active = ppd->link_speed_enabled; in init_6120_variables()
3222 ppd->vls_supported = IB_VL_VL0; in init_6120_variables()
3223 ppd->vls_operational = ppd->vls_supported; in init_6120_variables()
3295 static u32 __iomem *get_6120_link_buf(struct qib_pportdata *ppd, u32 *bnum) in get_6120_link_buf() argument
3298 u32 lbuf = ppd->dd->piobcnt2k + ppd->dd->piobcnt4k - 1; in get_6120_link_buf()
3304 sendctrl_6120_mod(ppd->dd->pport, QIB_SENDCTRL_AVAIL_BLIP); in get_6120_link_buf()
3305 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */ in get_6120_link_buf()
3306 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf); in get_6120_link_buf()
3310 sendctrl_6120_mod(ppd, QIB_SENDCTRL_DISARM_ALL | QIB_SENDCTRL_FLUSH | in get_6120_link_buf()
3312 ppd->dd->upd_pio_shadow = 1; /* update our idea of what's busy */ in get_6120_link_buf()
3313 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */ in get_6120_link_buf()
3314 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf); in get_6120_link_buf()
3319 static u32 __iomem *qib_6120_getsendbuf(struct qib_pportdata *ppd, u64 pbc, in qib_6120_getsendbuf() argument
3323 struct qib_devdata *dd = ppd->dd; in qib_6120_getsendbuf()
3327 !(ppd->lflags & (QIBL_IB_AUTONEG_INPROG | QIBL_LINKACTIVE))) in qib_6120_getsendbuf()
3328 buf = get_6120_link_buf(ppd, pbufnum); in qib_6120_getsendbuf()
3342 static int init_sdma_6120_regs(struct qib_pportdata *ppd) in init_sdma_6120_regs() argument
3347 static u16 qib_sdma_6120_gethead(struct qib_pportdata *ppd) in qib_sdma_6120_gethead() argument
3352 static int qib_sdma_6120_busy(struct qib_pportdata *ppd) in qib_sdma_6120_busy() argument
3357 static void qib_sdma_update_6120_tail(struct qib_pportdata *ppd, u16 tail) in qib_sdma_update_6120_tail() argument
3361 static void qib_6120_sdma_sendctrl(struct qib_pportdata *ppd, unsigned op) in qib_6120_sdma_sendctrl() argument
3365 static void qib_sdma_set_6120_desc_cnt(struct qib_pportdata *ppd, unsigned cnt) in qib_sdma_set_6120_desc_cnt() argument
3373 static u32 qib_6120_setpbc_control(struct qib_pportdata *ppd, u32 plen, in qib_6120_setpbc_control() argument