Blame SOURCES/opal-prd-cb16e55a234b91fd42112904cff15094fbae680d.patch

b1660c
commit cb16e55a234b91fd42112904cff15094fbae680d
b1660c
Author: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
b1660c
Date:   Tue Apr 3 23:08:41 2018 +0530
b1660c
b1660c
    opal-prd: Insert powernv_flash module
b1660c
    
b1660c
    Explictly load powernv_flash module on BMC based system so that we are sure
b1660c
    that flash device is created before starting opal-prd daemon.
b1660c
    
b1660c
    Note that I have replaced pnor_available() check with is_fsp_system(). As we
b1660c
    want to load module on BMC system only. Also pnor_init has enough logic to
b1660c
    detect flash device. Hence pnor_available() becomes redundant check.
b1660c
    
b1660c
    Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
b1660c
    CC: Jeremy Kerr <jeremy.kerr@au1.ibm.com>
b1660c
    CC: Stewart Smith <stewart@linux.vnet.ibm.com>
b1660c
    Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
b1660c
b1660c
diff --git a/external/opal-prd/opal-prd.c b/external/opal-prd/opal-prd.c
b1660c
index 5a15f1d2..bc092d18 100644
b1660c
--- a/external/opal-prd/opal-prd.c
b1660c
+++ b/external/opal-prd/opal-prd.c
b1660c
@@ -547,6 +547,11 @@ int hservice_wakeup(u32 core, u32 mode)
b1660c
 	return 0;
b1660c
 }
b1660c
 
b1660c
+static void pnor_load_module(struct opal_prd_ctx *ctx)
b1660c
+{
b1660c
+	insert_module("powernv_flash");
b1660c
+}
b1660c
+
b1660c
 static void ipmi_init(struct opal_prd_ctx *ctx)
b1660c
 {
b1660c
 	insert_module("ipmi_devintf");
b1660c
@@ -2177,7 +2182,9 @@ static int run_prd_daemon(struct opal_prd_ctx *ctx)
b1660c
 
b1660c
 	fixup_hinterface_table();
b1660c
 
b1660c
-	if (pnor_available(&ctx->pnor)) {
b1660c
+	if (!is_fsp_system()) {
b1660c
+		pnor_load_module(ctx);
b1660c
+
b1660c
 		rc = pnor_init(&ctx->pnor);
b1660c
 		if (rc) {
b1660c
 			pr_log(LOG_ERR, "PNOR: Failed to open pnor: %m");