Lines Matching refs:ppd

274 static int __i2c_write(struct hfi1_pportdata *ppd, u32 target, int i2c_addr,
277 struct hfi1_devdata *dd = ppd->dd;
293 int i2c_write(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, int offset,
298 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__))
301 ret = __i2c_write(ppd, target, i2c_addr, offset, bp, len);
313 static int __i2c_read(struct hfi1_pportdata *ppd, u32 target, int i2c_addr,
316 struct hfi1_devdata *dd = ppd->dd;
332 int i2c_read(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, int offset,
337 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__))
340 ret = __i2c_read(ppd, target, i2c_addr, offset, bp, len);
355 int qsfp_write(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp,
364 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__))
374 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE,
379 hfi1_dev_porterr(ppd->dd, ppd->port,
391 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE,
411 int one_qsfp_write(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp,
414 struct hfi1_devdata *dd = ppd->dd;
421 ret = qsfp_write(ppd, target, addr, bp, len);
435 int qsfp_read(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp,
444 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__))
453 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE,
458 hfi1_dev_porterr(ppd->dd, ppd->port,
470 ret = __i2c_read(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE,
488 int one_qsfp_read(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp,
491 struct hfi1_devdata *dd = ppd->dd;
498 ret = qsfp_read(ppd, target, addr, bp, len);
516 int refresh_qsfp_cache(struct hfi1_pportdata *ppd, struct qsfp_data *cp)
518 u32 target = ppd->dd->hfi1_id;
525 spin_lock_irqsave(&ppd->qsfp_info.qsfp_lock, flags);
526 ppd->qsfp_info.cache_valid = 0;
527 spin_unlock_irqrestore(&ppd->qsfp_info.qsfp_lock, flags);
529 if (!qsfp_mod_present(ppd)) {
534 ret = qsfp_read(ppd, target, 0, cache, QSFP_PAGESIZE);
536 dd_dev_info(ppd->dd,
547 ret = qsfp_read(ppd, target, 384, cache + 256, 128);
549 dd_dev_info(ppd->dd, "%s failed\n", __func__);
552 ret = qsfp_read(ppd, target, 640, cache + 384, 128);
554 dd_dev_info(ppd->dd, "%s failed\n", __func__);
557 ret = qsfp_read(ppd, target, 896, cache + 512, 128);
559 dd_dev_info(ppd->dd, "%s failed\n", __func__);
564 ret = qsfp_read(ppd, target, 640, cache + 384, 128);
566 dd_dev_info(ppd->dd, "%s failed\n", __func__);
569 ret = qsfp_read(ppd, target, 896, cache + 512, 128);
571 dd_dev_info(ppd->dd, "%s failed\n", __func__);
576 ret = qsfp_read(ppd, target, 384, cache + 256, 128);
578 dd_dev_info(ppd->dd, "%s failed\n", __func__);
581 ret = qsfp_read(ppd, target, 896, cache + 512, 128);
583 dd_dev_info(ppd->dd, "%s failed\n", __func__);
588 ret = qsfp_read(ppd, target, 896, cache + 512, 128);
590 dd_dev_info(ppd->dd, "%s failed\n", __func__);
596 spin_lock_irqsave(&ppd->qsfp_info.qsfp_lock, flags);
597 ppd->qsfp_info.cache_valid = 1;
598 ppd->qsfp_info.cache_refresh_required = 0;
599 spin_unlock_irqrestore(&ppd->qsfp_info.qsfp_lock, flags);
641 int qsfp_mod_present(struct hfi1_pportdata *ppd)
643 struct hfi1_devdata *dd = ppd->dd;
668 struct hfi1_pportdata *ppd;
679 ppd = dd->pport + (port_num - 1);
680 if (!qsfp_mod_present(ppd)) {
685 if (!ppd->qsfp_info.cache_valid) {
697 memcpy(data, &ppd->qsfp_info.cache[addr], (len - excess_len));
702 memcpy(data, &ppd->qsfp_info.cache[addr], len);
724 ret = one_qsfp_read(ppd, dd->hfi1_id, addr, data + offset, len);
748 int qsfp_dump(struct hfi1_pportdata *ppd, char *buf, int len)
750 u8 *cache = &ppd->qsfp_info.cache[0];
763 if (ppd->qsfp_info.cache_valid) {