diff --git a/platform/msm7k/acpuclock.c b/platform/msm7k/acpuclock.c
index 89583f3..25c7ceb 100755
--- a/platform/msm7k/acpuclock.c
+++ b/platform/msm7k/acpuclock.c
@@ -69,7 +69,7 @@
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4)  | DIV_4,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_4 << 8),
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_2 << 8),
-	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | DIV_2,
+	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4) | DIV_2,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL3 << 4)  | DIV_2,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL3 << 12) | (DIV_2 << 8),
 };
@@ -78,16 +78,16 @@
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4)  | DIV_4,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_4 << 8),
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_2 << 8),
-	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | DIV_2,
+	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4) | DIV_2,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL2 << 4)  | DIV_2,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL2 << 12) | (DIV_2 << 8),
 };
 
-uint32_t const clk_cntl_reg_val_7627A[] = {
+uint32_t const clk_cntl_reg_val_7627T[] = {
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4)  | DIV_4,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_4 << 8),
 	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | (DIV_2 << 8),
-	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 12) | DIV_2,
+	(WAIT_CNT << 16) | (SRC_SEL_PLL1 << 4) | DIV_2,
 	(WAIT_CNT << 16) | (SRC_SEL_PLL2 << 4),
 	(WAIT_CNT << 16) | (SRC_SEL_PLL2 << 12),
 };
@@ -136,7 +136,7 @@
 		writel(clk_cntl_reg_val_7625[i], A11S_CLK_CNTL_ADDR);
 #else
 		if(clk == ACPU_800MHZ)
-			writel(clk_cntl_reg_val_7627A[i], A11S_CLK_CNTL_ADDR);
+			writel(clk_cntl_reg_val_7627T[i], A11S_CLK_CNTL_ADDR);
 		else
 			writel(clk_cntl_reg_val_7627[i], A11S_CLK_CNTL_ADDR);
 #endif
diff --git a/platform/msm_shared/mmc.c b/platform/msm_shared/mmc.c
index 6091041..ecdd90f 100644
--- a/platform/msm_shared/mmc.c
+++ b/platform/msm_shared/mmc.c
@@ -1194,7 +1194,6 @@
         mmc_width = width-1;
     }
 
-    mmc_boot_send_ext_cmd (card, ext_csd_buf);
 
     do
     {
@@ -1203,8 +1202,7 @@
         {
             return mmc_ret;
         }
-    }while( (mmc_ret == MMC_BOOT_E_SUCCESS) &&
-        (MMC_BOOT_CARD_STATUS(status) == MMC_BOOT_PROG_STATE));
+    }while(MMC_BOOT_CARD_STATUS(status) == MMC_BOOT_PROG_STATE);
 
     if(MMC_BOOT_CARD_STATUS(status) != MMC_BOOT_TRAN_STATE)
         return MMC_BOOT_E_FAILURE;
@@ -1553,9 +1551,21 @@
 static unsigned int mmc_boot_adjust_interface_speed( struct mmc_boot_host* host,
         struct mmc_boot_card* card )
 {
-    int mmc_ret;
+    unsigned int mmc_ret = MMC_BOOT_E_SUCCESS;
+    unsigned int status;
 
-    mmc_boot_send_ext_cmd (card, ext_csd_buf);
+
+    do
+    {
+        mmc_ret = mmc_boot_get_card_status(card, 1, &status);
+        if(mmc_ret != MMC_BOOT_E_SUCCESS)
+        {
+            return mmc_ret;
+        }
+    }while(MMC_BOOT_CARD_STATUS(status) == MMC_BOOT_PROG_STATE);
+
+    if(MMC_BOOT_CARD_STATUS(status) != MMC_BOOT_TRAN_STATE)
+        return MMC_BOOT_E_FAILURE;
 
     /* Setting HS_TIMING in EXT_CSD (CMD6) */
     mmc_ret = mmc_boot_switch_cmd(card, MMC_BOOT_ACCESS_WRITE, MMC_BOOT_EXT_CMMC_HS_TIMING, 1);
