[linux-yocto] [PATCH 20/48] drivers/misc: Update the Axxia PEI Driver
Daniel Dragomir
daniel.dragomir at windriver.com
Mon Dec 11 05:13:50 PST 2017
From: John Jacques <john.jacques at intel.com>
Handle resets correctly for configuration 5.
Signed-off-by: John Jacques <john.jacques at 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
More information about the linux-yocto
mailing list