Lines Matching refs:ppd
316 static int __i2c_write(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, in __i2c_write() argument
319 struct hfi1_devdata *dd = ppd->dd; in __i2c_write()
335 int i2c_write(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, int offset, in i2c_write() argument
340 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__)) in i2c_write()
343 ret = __i2c_write(ppd, target, i2c_addr, offset, bp, len); in i2c_write()
355 static int __i2c_read(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, in __i2c_read() argument
358 struct hfi1_devdata *dd = ppd->dd; in __i2c_read()
374 int i2c_read(struct hfi1_pportdata *ppd, u32 target, int i2c_addr, int offset, in i2c_read() argument
379 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__)) in i2c_read()
382 ret = __i2c_read(ppd, target, i2c_addr, offset, bp, len); in i2c_read()
397 int qsfp_write(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp, in qsfp_write() argument
406 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__)) in qsfp_write()
416 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE, in qsfp_write()
421 hfi1_dev_porterr(ppd->dd, ppd->port, in qsfp_write()
433 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE, in qsfp_write()
453 int one_qsfp_write(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp, in one_qsfp_write() argument
456 struct hfi1_devdata *dd = ppd->dd; in one_qsfp_write()
463 ret = qsfp_write(ppd, target, addr, bp, len); in one_qsfp_write()
477 int qsfp_read(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp, in qsfp_read() argument
486 if (!check_chip_resource(ppd->dd, i2c_target(target), __func__)) in qsfp_read()
495 ret = __i2c_write(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE, in qsfp_read()
500 hfi1_dev_porterr(ppd->dd, ppd->port, in qsfp_read()
512 ret = __i2c_read(ppd, target, QSFP_DEV | QSFP_OFFSET_SIZE, in qsfp_read()
530 int one_qsfp_read(struct hfi1_pportdata *ppd, u32 target, int addr, void *bp, in one_qsfp_read() argument
533 struct hfi1_devdata *dd = ppd->dd; in one_qsfp_read()
540 ret = qsfp_read(ppd, target, addr, bp, len); in one_qsfp_read()
558 int refresh_qsfp_cache(struct hfi1_pportdata *ppd, struct qsfp_data *cp) in refresh_qsfp_cache() argument
560 u32 target = ppd->dd->hfi1_id; in refresh_qsfp_cache()
567 spin_lock_irqsave(&ppd->qsfp_info.qsfp_lock, flags); in refresh_qsfp_cache()
568 ppd->qsfp_info.cache_valid = 0; in refresh_qsfp_cache()
569 spin_unlock_irqrestore(&ppd->qsfp_info.qsfp_lock, flags); in refresh_qsfp_cache()
571 if (!qsfp_mod_present(ppd)) { in refresh_qsfp_cache()
576 ret = qsfp_read(ppd, target, 0, cache, QSFP_PAGESIZE); in refresh_qsfp_cache()
578 dd_dev_info(ppd->dd, in refresh_qsfp_cache()
589 ret = qsfp_read(ppd, target, 384, cache + 256, 128); in refresh_qsfp_cache()
591 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
594 ret = qsfp_read(ppd, target, 640, cache + 384, 128); in refresh_qsfp_cache()
596 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
599 ret = qsfp_read(ppd, target, 896, cache + 512, 128); in refresh_qsfp_cache()
601 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
606 ret = qsfp_read(ppd, target, 640, cache + 384, 128); in refresh_qsfp_cache()
608 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
611 ret = qsfp_read(ppd, target, 896, cache + 512, 128); in refresh_qsfp_cache()
613 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
618 ret = qsfp_read(ppd, target, 384, cache + 256, 128); in refresh_qsfp_cache()
620 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
623 ret = qsfp_read(ppd, target, 896, cache + 512, 128); in refresh_qsfp_cache()
625 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
630 ret = qsfp_read(ppd, target, 896, cache + 512, 128); in refresh_qsfp_cache()
632 dd_dev_info(ppd->dd, "%s failed\n", __func__); in refresh_qsfp_cache()
638 spin_lock_irqsave(&ppd->qsfp_info.qsfp_lock, flags); in refresh_qsfp_cache()
639 ppd->qsfp_info.cache_valid = 1; in refresh_qsfp_cache()
640 ppd->qsfp_info.cache_refresh_required = 0; in refresh_qsfp_cache()
641 spin_unlock_irqrestore(&ppd->qsfp_info.qsfp_lock, flags); in refresh_qsfp_cache()
683 int qsfp_mod_present(struct hfi1_pportdata *ppd) in qsfp_mod_present() argument
685 struct hfi1_devdata *dd = ppd->dd; in qsfp_mod_present()
710 struct hfi1_pportdata *ppd; in get_cable_info() local
721 ppd = dd->pport + (port_num - 1); in get_cable_info()
722 if (!qsfp_mod_present(ppd)) { in get_cable_info()
727 if (!ppd->qsfp_info.cache_valid) { in get_cable_info()
739 memcpy(data, &ppd->qsfp_info.cache[addr], (len - excess_len)); in get_cable_info()
744 memcpy(data, &ppd->qsfp_info.cache[addr], len); in get_cable_info()
766 ret = one_qsfp_read(ppd, dd->hfi1_id, addr, data + offset, len); in get_cable_info()
790 int qsfp_dump(struct hfi1_pportdata *ppd, char *buf, int len) in qsfp_dump() argument
792 u8 *cache = &ppd->qsfp_info.cache[0]; in qsfp_dump()
805 if (ppd->qsfp_info.cache_valid) { in qsfp_dump()