Lines Matching refs:ppd
49 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op);
968 static void qib_disarm_6120_senderrbufs(struct qib_pportdata *ppd) in qib_disarm_6120_senderrbufs() argument
971 struct qib_devdata *dd = ppd->dd; in qib_disarm_6120_senderrbufs()
1009 struct qib_pportdata *ppd = dd->pport; in handle_6120_errors() local
1030 qib_disarm_6120_senderrbufs(ppd); in handle_6120_errors()
1032 !(ppd->lflags & QIBL_LINKACTIVE)) { in handle_6120_errors()
1043 !(ppd->lflags & QIBL_LINKACTIVE)) { in handle_6120_errors()
1093 qib_handle_e_ibstatuschanged(ppd, ibcs); in handle_6120_errors()
1106 qib_dev_porterr(dd, ppd->port, "%s error\n", msg); in handle_6120_errors()
1108 if (ppd->state_wanted & ppd->lflags) in handle_6120_errors()
1109 wake_up_interruptible(&ppd->state_wait); in handle_6120_errors()
1201 static void qib_set_ib_6120_lstate(struct qib_pportdata *ppd, u16 linkcmd, in qib_set_ib_6120_lstate() argument
1205 struct qib_devdata *dd = ppd->dd; in qib_set_ib_6120_lstate()
1213 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1214 ppd->lflags |= QIBL_IB_LINK_DISABLED; in qib_set_ib_6120_lstate()
1215 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1222 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1223 ppd->lflags &= ~QIBL_IB_LINK_DISABLED; in qib_set_ib_6120_lstate()
1224 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_set_ib_6120_lstate()
1239 static int qib_6120_bringup_serdes(struct qib_pportdata *ppd) in qib_6120_bringup_serdes() argument
1241 struct qib_devdata *dd = ppd->dd; in qib_6120_bringup_serdes()
1271 ibc |= ((u64)(ppd->ibmaxlen >> 2) + 1) << SYM_LSB(IBCCtrl, MaxPktLen); in qib_6120_bringup_serdes()
1334 if (SYM_FIELD(val, XGXSCfg, polarity_inv) != ppd->rx_pol_inv) { in qib_6120_bringup_serdes()
1337 val |= (u64)ppd->rx_pol_inv << SYM_LSB(XGXSCfg, polarity_inv); in qib_6120_bringup_serdes()
1353 ppd->guid = dd->base_guid; in qib_6120_bringup_serdes()
1379 static void qib_6120_quiet_serdes(struct qib_pportdata *ppd) in qib_6120_quiet_serdes() argument
1381 struct qib_devdata *dd = ppd->dd; in qib_6120_quiet_serdes()
1384 qib_set_ib_6120_lstate(ppd, 0, QLOGIC_IB_IBCC_LINKINITCMD_DISABLE); in qib_6120_quiet_serdes()
1447 static void qib_6120_setup_setextled(struct qib_pportdata *ppd, u32 on) in qib_6120_setup_setextled() argument
1451 struct qib_devdata *dd = ppd->dd; in qib_6120_setup_setextled()
1461 if (ppd->led_override) { in qib_6120_setup_setextled()
1462 ltst = (ppd->led_override & QIB_LED_PHYS) ? in qib_6120_setup_setextled()
1464 lst = (ppd->led_override & QIB_LED_LOG) ? in qib_6120_setup_setextled()
2133 static void rcvctrl_6120_mod(struct qib_pportdata *ppd, unsigned int op, in rcvctrl_6120_mod() argument
2136 struct qib_devdata *dd = ppd->dd; in rcvctrl_6120_mod()
2235 static void sendctrl_6120_mod(struct qib_pportdata *ppd, u32 op) in sendctrl_6120_mod() argument
2237 struct qib_devdata *dd = ppd->dd; in sendctrl_6120_mod()
2316 static u64 qib_portcntr_6120(struct qib_pportdata *ppd, u32 reg) in qib_portcntr_6120() argument
2319 struct qib_devdata *dd = ppd->dd; in qib_portcntr_6120()
2360 qib_devinfo(ppd->dd->pcidev, in qib_portcntr_6120()
2595 struct qib_pportdata *ppd = &dd->pport[port]; in qib_read_6120portcntrs() local
2607 *cntr++ = qib_portcntr_6120(ppd, in qib_read_6120portcntrs()
2665 struct qib_pportdata *ppd = dd->pport; in qib_get_6120_faststats() local
2682 traffic_wds = qib_portcntr_6120(ppd, cr_wordsend) + in qib_get_6120_faststats()
2683 qib_portcntr_6120(ppd, cr_wordrcv); in qib_get_6120_faststats()
2706 static void qib_6120_xgxs_reset(struct qib_pportdata *ppd) in qib_6120_xgxs_reset() argument
2709 struct qib_devdata *dd = ppd->dd; in qib_6120_xgxs_reset()
2722 static int qib_6120_get_ib_cfg(struct qib_pportdata *ppd, int which) in qib_6120_get_ib_cfg() argument
2728 ret = ppd->link_width_active; in qib_6120_get_ib_cfg()
2732 ret = ppd->link_speed_active; in qib_6120_get_ib_cfg()
2736 ret = ppd->link_width_enabled; in qib_6120_get_ib_cfg()
2740 ret = ppd->link_speed_enabled; in qib_6120_get_ib_cfg()
2744 ret = ppd->vls_operational; in qib_6120_get_ib_cfg()
2756 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl, in qib_6120_get_ib_cfg()
2761 ret = SYM_FIELD(ppd->dd->cspec->ibcctrl, IBCCtrl, in qib_6120_get_ib_cfg()
2767 ret = (ppd->dd->cspec->ibcctrl & in qib_6120_get_ib_cfg()
2790 static int qib_6120_set_ib_cfg(struct qib_pportdata *ppd, int which, u32 val) in qib_6120_set_ib_cfg() argument
2792 struct qib_devdata *dd = ppd->dd; in qib_6120_set_ib_cfg()
2799 ppd->link_width_enabled = val; in qib_6120_set_ib_cfg()
2803 ppd->link_speed_enabled = val; in qib_6120_set_ib_cfg()
2833 val64 = (u64) ppd->pkeys[0] | ((u64) ppd->pkeys[1] << 16) | in qib_6120_set_ib_cfg()
2834 ((u64) ppd->pkeys[2] << 32) | in qib_6120_set_ib_cfg()
2835 ((u64) ppd->pkeys[3] << 48); in qib_6120_set_ib_cfg()
2859 val = (ppd->ibmaxlen >> 2) + 1; in qib_6120_set_ib_cfg()
2916 qib_set_ib_6120_lstate(ppd, lcmd, licmd); in qib_6120_set_ib_cfg()
2930 static int qib_6120_set_loopback(struct qib_pportdata *ppd, const char *what) in qib_6120_set_loopback() argument
2935 ppd->dd->cspec->ibcctrl |= SYM_MASK(IBCCtrl, Loopback); in qib_6120_set_loopback()
2936 qib_devinfo(ppd->dd->pcidev, "Enabling IB%u:%u IBC loopback\n", in qib_6120_set_loopback()
2937 ppd->dd->unit, ppd->port); in qib_6120_set_loopback()
2939 ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); in qib_6120_set_loopback()
2940 qib_devinfo(ppd->dd->pcidev, in qib_6120_set_loopback()
2942 ppd->dd->unit, ppd->port); in qib_6120_set_loopback()
2946 qib_write_kreg(ppd->dd, kr_ibcctrl, ppd->dd->cspec->ibcctrl); in qib_6120_set_loopback()
2947 qib_write_kreg(ppd->dd, kr_scratch, 0); in qib_6120_set_loopback()
2954 struct qib_pportdata *ppd = (struct qib_pportdata *)data; in pma_6120_timer() local
2955 struct qib_chip_specific *cs = ppd->dd->cspec; in pma_6120_timer()
2956 struct qib_ibport *ibp = &ppd->ibport_data; in pma_6120_timer()
2962 qib_snapshot_counters(ppd, &cs->sword, &cs->rword, in pma_6120_timer()
2970 qib_snapshot_counters(ppd, &ta, &tb, &tc, &td, &te); in pma_6120_timer()
2984 static void qib_set_cntr_6120_sample(struct qib_pportdata *ppd, u32 intv, in qib_set_cntr_6120_sample() argument
2987 struct qib_chip_specific *cs = ppd->dd->cspec; in qib_set_cntr_6120_sample()
2994 qib_snapshot_counters(ppd, &cs->sword, &cs->rword, in qib_set_cntr_6120_sample()
3038 static int qib_6120_ib_updown(struct qib_pportdata *ppd, int ibup, u64 ibcs) in qib_6120_ib_updown() argument
3042 spin_lock_irqsave(&ppd->lflags_lock, flags); in qib_6120_ib_updown()
3043 ppd->lflags &= ~QIBL_IB_FORCE_NOTIFY; in qib_6120_ib_updown()
3044 spin_unlock_irqrestore(&ppd->lflags_lock, flags); in qib_6120_ib_updown()
3047 if (ppd->dd->cspec->ibdeltainprog) { in qib_6120_ib_updown()
3048 ppd->dd->cspec->ibdeltainprog = 0; in qib_6120_ib_updown()
3049 ppd->dd->cspec->ibsymdelta += in qib_6120_ib_updown()
3050 read_6120_creg32(ppd->dd, cr_ibsymbolerr) - in qib_6120_ib_updown()
3051 ppd->dd->cspec->ibsymsnap; in qib_6120_ib_updown()
3052 ppd->dd->cspec->iblnkerrdelta += in qib_6120_ib_updown()
3053 read_6120_creg32(ppd->dd, cr_iblinkerrrecov) - in qib_6120_ib_updown()
3054 ppd->dd->cspec->iblnkerrsnap; in qib_6120_ib_updown()
3056 qib_hol_init(ppd); in qib_6120_ib_updown()
3058 ppd->dd->cspec->lli_counter = 0; in qib_6120_ib_updown()
3059 if (!ppd->dd->cspec->ibdeltainprog) { in qib_6120_ib_updown()
3060 ppd->dd->cspec->ibdeltainprog = 1; in qib_6120_ib_updown()
3061 ppd->dd->cspec->ibsymsnap = in qib_6120_ib_updown()
3062 read_6120_creg32(ppd->dd, cr_ibsymbolerr); in qib_6120_ib_updown()
3063 ppd->dd->cspec->iblnkerrsnap = in qib_6120_ib_updown()
3064 read_6120_creg32(ppd->dd, cr_iblinkerrrecov); in qib_6120_ib_updown()
3066 qib_hol_down(ppd); in qib_6120_ib_updown()
3069 qib_6120_setup_setextled(ppd, ibup); in qib_6120_ib_updown()
3212 struct qib_pportdata *ppd; in init_6120_variables() local
3215 ppd = (struct qib_pportdata *)(dd + 1); in init_6120_variables()
3216 dd->pport = ppd; in init_6120_variables()
3219 dd->cspec = (struct qib_chip_specific *)(ppd + dd->num_pports); in init_6120_variables()
3220 ppd->cpspec = NULL; /* not used in this chip */ in init_6120_variables()
3271 ret = qib_init_pportdata(ppd, dd, 0, 1); in init_6120_variables()
3274 ppd->link_width_supported = IB_WIDTH_1X | IB_WIDTH_4X; in init_6120_variables()
3275 ppd->link_speed_supported = QIB_IB_SDR; in init_6120_variables()
3276 ppd->link_width_enabled = IB_WIDTH_4X; in init_6120_variables()
3277 ppd->link_speed_enabled = ppd->link_speed_supported; in init_6120_variables()
3279 ppd->link_width_active = ppd->link_width_enabled; in init_6120_variables()
3280 ppd->link_speed_active = ppd->link_speed_enabled; in init_6120_variables()
3281 ppd->vls_supported = IB_VL_VL0; in init_6120_variables()
3282 ppd->vls_operational = ppd->vls_supported; in init_6120_variables()
3310 dd->cspec->pma_timer.data = (unsigned long) ppd; in init_6120_variables()
3360 static u32 __iomem *get_6120_link_buf(struct qib_pportdata *ppd, u32 *bnum) in get_6120_link_buf() argument
3363 u32 lbuf = ppd->dd->piobcnt2k + ppd->dd->piobcnt4k - 1; in get_6120_link_buf()
3369 sendctrl_6120_mod(ppd->dd->pport, QIB_SENDCTRL_AVAIL_BLIP); in get_6120_link_buf()
3370 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */ in get_6120_link_buf()
3371 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf); in get_6120_link_buf()
3375 sendctrl_6120_mod(ppd, QIB_SENDCTRL_DISARM_ALL | QIB_SENDCTRL_FLUSH | in get_6120_link_buf()
3377 ppd->dd->upd_pio_shadow = 1; /* update our idea of what's busy */ in get_6120_link_buf()
3378 qib_read_kreg64(ppd->dd, kr_scratch); /* extra chip flush */ in get_6120_link_buf()
3379 buf = qib_getsendbuf_range(ppd->dd, bnum, lbuf, lbuf); in get_6120_link_buf()
3384 static u32 __iomem *qib_6120_getsendbuf(struct qib_pportdata *ppd, u64 pbc, in qib_6120_getsendbuf() argument
3388 struct qib_devdata *dd = ppd->dd; in qib_6120_getsendbuf()
3392 !(ppd->lflags & (QIBL_IB_AUTONEG_INPROG | QIBL_LINKACTIVE))) in qib_6120_getsendbuf()
3393 buf = get_6120_link_buf(ppd, pbufnum); in qib_6120_getsendbuf()
3407 static int init_sdma_6120_regs(struct qib_pportdata *ppd) in init_sdma_6120_regs() argument
3412 static u16 qib_sdma_6120_gethead(struct qib_pportdata *ppd) in qib_sdma_6120_gethead() argument
3417 static int qib_sdma_6120_busy(struct qib_pportdata *ppd) in qib_sdma_6120_busy() argument
3422 static void qib_sdma_update_6120_tail(struct qib_pportdata *ppd, u16 tail) in qib_sdma_update_6120_tail() argument
3426 static void qib_6120_sdma_sendctrl(struct qib_pportdata *ppd, unsigned op) in qib_6120_sdma_sendctrl() argument
3430 static void qib_sdma_set_6120_desc_cnt(struct qib_pportdata *ppd, unsigned cnt) in qib_sdma_set_6120_desc_cnt() argument
3438 static u32 qib_6120_setpbc_control(struct qib_pportdata *ppd, u32 plen, in qib_6120_setpbc_control() argument