[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