Lines Matching refs:ppd

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