msm: ipa: fix GSI enable for GSI 1.2

GSI version is not passed correctly to GSI driver in order
to enable MCS.

Change-Id: I00f456de830c84dcf736eea5332c501bd15f4aef
CRs-Fixed: 1097871
Acked-by: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Signed-off-by: Amir Levy <alevy@codeaurora.org>
diff --git a/drivers/platform/msm/gsi/gsi.c b/drivers/platform/msm/gsi/gsi.c
index eadb4b7..dcc2a24 100644
--- a/drivers/platform/msm/gsi/gsi.c
+++ b/drivers/platform/msm/gsi/gsi.c
@@ -2700,11 +2700,16 @@
 }
 EXPORT_SYMBOL(gsi_configure_regs);
 
-int gsi_enable_fw(phys_addr_t gsi_base_addr, u32 gsi_size)
+int gsi_enable_fw(phys_addr_t gsi_base_addr, u32 gsi_size, enum gsi_ver ver)
 {
 	void __iomem *gsi_base;
 	uint32_t value;
 
+	if (ver <= GSI_VER_ERR || ver >= GSI_VER_MAX) {
+		GSIERR("Incorrect version %d\n", ver);
+		return -GSI_STATUS_ERROR;
+	}
+
 	gsi_base = ioremap_nocache(gsi_base_addr, gsi_size);
 	if (!gsi_base) {
 		GSIERR("ioremap failed for 0x%pa\n", &gsi_base_addr);
@@ -2712,7 +2717,7 @@
 	}
 
 	/* Enable the MCS and set to x2 clocks */
-	if (gsi_ctx->per.ver >= GSI_VER_1_2) {
+	if (ver >= GSI_VER_1_2) {
 		value = ((1 << GSI_GSI_MCS_CFG_MCS_ENABLE_SHFT) &
 				GSI_GSI_MCS_CFG_MCS_ENABLE_BMSK);
 		gsi_writel(value, gsi_base + GSI_GSI_MCS_CFG_OFFS);