From: John Jacques <john.jacq...@intel.com> Handle resets correctly for configuration 5.
Signed-off-by: John Jacques <john.jacq...@intel.com> --- drivers/misc/axxia-pei.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/drivers/misc/axxia-pei.c b/drivers/misc/axxia-pei.c index 806e4e1..b093aac 100644 --- a/drivers/misc/axxia-pei.c +++ b/drivers/misc/axxia-pei.c @@ -1988,7 +1988,6 @@ pei_reset_56xx(enum PCIMode mode, unsigned int control) ncr_write32(NCP_REGION_ID(0x115, 0), 0, ctrl0); break; case 4: - case 5: /* * SRIO1x2 (HSS10-ch0,1) * SRIO0x2 (HSS11-ch0,1) @@ -2021,6 +2020,47 @@ pei_reset_56xx(enum PCIMode mode, unsigned int control) ncr_write32(NCP_REGION_ID(0x115, 0), 0, ctrl0); break; + case 5: + /* + * SRIO1x2 (HSS10-ch0,1) + * SRIO0x2 (HSS11-ch0,1) + * PEI1x2 (HSS12-ch0,1) + * PEI2x2 (HSS13-ch0,1) + */ + + switch (mode) { + case PEI1: + enable_reset(2); + ctrl0 &= ~(1 << 1); + break; + case PEI2: + enable_reset(3); + ctrl0 &= ~(1 << 2); + break; + default: + pr_err("Invalid PEI for mode %d!\n", + get_config(control)); + return -1; + break; + } + + ncr_write32(NCP_REGION_ID(0x115, 0), 0, ctrl0); + + switch (mode) { + case PEI1: + release_reset(2); + ctrl0 |= (1 << 1); + break; + case PEI2: + release_reset(3); + ctrl0 |= (1 << 2); + break; + default: + break; + } + + ncr_write32(NCP_REGION_ID(0x115, 0), 0, ctrl0); + break; /* Undocumented Configurations */ -- 2.7.4 -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto