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