From: John Jacques <[email protected]> Handle PCIe coefficients on 6700 correctly.
Signed-off-by: John Jacques <[email protected]> --- drivers/misc/axxia-pei.c | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/drivers/misc/axxia-pei.c b/drivers/misc/axxia-pei.c index a620216..bd65a90 100644 --- a/drivers/misc/axxia-pei.c +++ b/drivers/misc/axxia-pei.c @@ -1044,27 +1044,36 @@ update_settings(void) { int i; unsigned int region; + int number_of_serdes; /* Make sure the parameters are version 2... */ - if (!is_pei_control_v2) + if (0 != is_5500 || 0 == is_pei_control_v2) return; region = NCP_REGION_ID(0x115, 0); + if (0 != is_5600) + number_of_serdes = 4; + else + number_of_serdes = 1; + /* Set per serdes values. */ - for (i = 0; i < 4; ++i) { + for (i = 0; i < number_of_serdes; ++i) { unsigned int offset; unsigned int pic; unsigned int ref_range; unsigned int value; - offset = (0xf8 + (i * 0x18)); + if (0 != is_5600) + offset = (0xf8 + (i * 0x18)); + else + offset = 0x44; if (0 != (coefficients.primary_input_clock & (0xff << (i * 8)))) pic = 2; @@ -1089,7 +1098,7 @@ update_settings(void) Set per lane values. */ - for (i = 0; i < 8; ++i) { + for (i = 0; i < (number_of_serdes * 2); ++i) { unsigned int offset; unsigned int eq_main; unsigned int pre; @@ -1139,19 +1148,24 @@ update_settings(void) break; } - offset = 0x18 + (i * 0x1c); + if (0 != is_5600) + offset = 0x18 + (i * 0x1c); + else + offset = 0xc + (i * 0x1c); - ncr_read32(region, offset, &value); - pr_debug("0x%x.0x%x.0x%x : 0x%x => ", - NCP_NODE_ID(region), NCP_TARGET_ID(region), offset, - value); - value &= ~(1 << 11); + if (0 != is_5600) { + ncr_read32(region, offset, &value); + pr_debug("0x%x.0x%x.0x%x : 0x%x => ", + NCP_NODE_ID(region), NCP_TARGET_ID(region), + offset, value); + value &= ~(1 << 11); - if (0 != boost) - value |= (1 << 11); + if (0 != boost) + value |= (1 << 11); - pr_debug("0x%x\n", value); - ncr_write32(region, offset, value); + pr_debug("0x%x\n", value); + ncr_write32(region, offset, value); + } offset += 0x8; -- 2.7.4 -- _______________________________________________ linux-yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/linux-yocto
