Lines Matching refs:ppd

47 static int qsfp_read(struct qib_pportdata *ppd, int addr, void *bp, int len)  in qsfp_read()  argument
49 struct qib_devdata *dd = ppd->dd; in qsfp_read()
73 if (ppd->hw_pidx) { in qsfp_read()
89 qib_dev_porterr(dd, ppd->port, in qsfp_read()
139 qib_dev_porterr(dd, ppd->port, "QSFP failed even retrying\n"); in qsfp_read()
141 qib_dev_porterr(dd, ppd->port, "QSFP retries: %d\n", pass); in qsfp_read()
157 static int qib_qsfp_write(struct qib_pportdata *ppd, int addr, void *bp, in qib_qsfp_write() argument
160 struct qib_devdata *dd = ppd->dd; in qib_qsfp_write()
183 if (ppd->hw_pidx) { in qib_qsfp_write()
198 qib_dev_porterr(dd, ppd->port, in qib_qsfp_write()
253 static int qsfp_cks(struct qib_pportdata *ppd, int first, int next) in qsfp_cks() argument
261 ret = qsfp_read(ppd, first, &bval, 1); in qsfp_cks()
273 int qib_refresh_qsfp_cache(struct qib_pportdata *ppd, struct qib_qsfp_cache *cp) in qib_refresh_qsfp_cache() argument
283 if (!qib_qsfp_mod_present(ppd)) { in qib_refresh_qsfp_cache()
288 ret = qsfp_read(ppd, 0, peek, 3); in qib_refresh_qsfp_cache()
292 qib_dev_porterr(ppd->dd, ppd->port, in qib_refresh_qsfp_cache()
302 ret = qib_qsfp_write(ppd, 127, &poke, 1); in qib_refresh_qsfp_cache()
305 qib_dev_porterr(ppd->dd, ppd->port, in qib_refresh_qsfp_cache()
311 ret = qsfp_read(ppd, QSFP_MOD_ID_OFFS, &cp->id, 1); in qib_refresh_qsfp_cache()
315 qib_dev_porterr(ppd->dd, ppd->port, in qib_refresh_qsfp_cache()
319 ret = qsfp_read(ppd, QSFP_MOD_PWR_OFFS, &cp->pwr, 1); in qib_refresh_qsfp_cache()
324 ret = qsfp_cks(ppd, QSFP_MOD_PWR_OFFS + 1, QSFP_MOD_LEN_OFFS); in qib_refresh_qsfp_cache()
329 ret = qsfp_read(ppd, QSFP_MOD_LEN_OFFS, &cp->len, 1); in qib_refresh_qsfp_cache()
334 ret = qsfp_read(ppd, QSFP_MOD_TECH_OFFS, &cp->tech, 1); in qib_refresh_qsfp_cache()
339 ret = qsfp_read(ppd, QSFP_VEND_OFFS, &cp->vendor, QSFP_VEND_LEN); in qib_refresh_qsfp_cache()
345 ret = qsfp_read(ppd, QSFP_IBXCV_OFFS, &cp->xt_xcv, 1); in qib_refresh_qsfp_cache()
350 ret = qsfp_read(ppd, QSFP_VOUI_OFFS, &cp->oui, QSFP_VOUI_LEN); in qib_refresh_qsfp_cache()
356 ret = qsfp_read(ppd, QSFP_PN_OFFS, &cp->partnum, QSFP_PN_LEN); in qib_refresh_qsfp_cache()
362 ret = qsfp_read(ppd, QSFP_REV_OFFS, &cp->rev, QSFP_REV_LEN); in qib_refresh_qsfp_cache()
368 ret = qsfp_read(ppd, QSFP_ATTEN_OFFS, &cp->atten, QSFP_ATTEN_LEN); in qib_refresh_qsfp_cache()
374 ret = qsfp_cks(ppd, QSFP_ATTEN_OFFS + QSFP_ATTEN_LEN, QSFP_CC_OFFS); in qib_refresh_qsfp_cache()
380 ret = qsfp_read(ppd, QSFP_CC_OFFS, &cp->cks1, 1); in qib_refresh_qsfp_cache()
384 qib_dev_porterr(ppd->dd, ppd->port, in qib_refresh_qsfp_cache()
389 ret = qsfp_cks(ppd, QSFP_CC_OFFS + 1, QSFP_SN_OFFS); in qib_refresh_qsfp_cache()
394 ret = qsfp_read(ppd, QSFP_SN_OFFS, &cp->serial, QSFP_SN_LEN); in qib_refresh_qsfp_cache()
400 ret = qsfp_read(ppd, QSFP_DATE_OFFS, &cp->date, QSFP_DATE_LEN); in qib_refresh_qsfp_cache()
406 ret = qsfp_read(ppd, QSFP_LOT_OFFS, &cp->lot, QSFP_LOT_LEN); in qib_refresh_qsfp_cache()
412 ret = qsfp_cks(ppd, QSFP_LOT_OFFS + QSFP_LOT_LEN, QSFP_CC_EXT_OFFS); in qib_refresh_qsfp_cache()
417 ret = qsfp_read(ppd, QSFP_CC_EXT_OFFS, &cp->cks2, 1); in qib_refresh_qsfp_cache()
422 qib_dev_porterr(ppd->dd, ppd->port, in qib_refresh_qsfp_cache()
444 int qib_qsfp_mod_present(struct qib_pportdata *ppd) in qib_qsfp_mod_present() argument
450 (ppd->hw_pidx * QSFP_GPIO_PORT2_SHIFT); in qib_qsfp_mod_present()
451 ret = ppd->dd->f_gpio_mod(ppd->dd, 0, 0, 0); in qib_qsfp_mod_present()
454 ((ppd->hw_pidx * QSFP_GPIO_PORT2_SHIFT) + 3)); in qib_qsfp_mod_present()
466 struct qib_devdata *dd = qd->ppd->dd; in qib_qsfp_init()
478 if (qd->ppd->hw_pidx) { in qib_qsfp_init()
488 int qib_qsfp_dump(struct qib_pportdata *ppd, char *buf, int len) in qib_qsfp_dump() argument
497 ret = qib_refresh_qsfp_cache(ppd, &cd); in qib_qsfp_dump()
536 ret = qsfp_read(ppd, bidx, bin_buff, QSFP_DUMP_CHUNK); in qib_qsfp_dump()