Browse Source

msm: ipa3: Fix to avoid the boot up crash in non smmu targets

Updated change to perform ipa pre initialization even before
attempting to load the ipa firmware along with pdev node
initialization for non smmu target.

Change-Id: I04421c1f11f0c7b4d7a0f30135741946b157aa2c
Signed-off-by: Raghavendar rao l <[email protected]>
Raghavendar rao l 3 years ago
parent
commit
e7b6c31d82
1 changed files with 11 additions and 0 deletions
  1. 11 0
      drivers/platform/msm/ipa/ipa_v3/ipa.c

+ 11 - 0
drivers/platform/msm/ipa/ipa_v3/ipa.c

@@ -10996,7 +10996,17 @@ int ipa3_plat_drv_probe(struct platform_device *pdev_p)
 				return -EOPNOTSUPP;
 			}
 		}
+		/* Below update of pre init for non smmu device, As
+		 * existing flow initialzies only for smmu
+		 * enabled node.*/
+
+		result = ipa3_pre_init(&ipa3_res, pdev_p);
+		if (result) {
+			IPAERR("ipa3_init failed\n");
+			return result;
+		}
 		ipa_fw_load_sm_handle_event(IPA_FW_LOAD_EVNT_SMMU_DONE);
+		goto skip_repeat_pre_init;
 	}
 
 	/* Proceed to real initialization */
@@ -11006,6 +11016,7 @@ int ipa3_plat_drv_probe(struct platform_device *pdev_p)
 		return result;
 	}
 
+skip_repeat_pre_init:
 	result = of_platform_populate(pdev_p->dev.of_node,
 		ipa_plat_drv_match, NULL, &pdev_p->dev);
 	if (result) {