mmc: changes to get SDCC work with multi-target binary for 8960 and 8064
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
diff --git a/arch/arm/include/asm/mach/mmc.h b/arch/arm/include/asm/mach/mmc.h
index 4158f14..2fc275a 100644
--- a/arch/arm/include/asm/mach/mmc.h
+++ b/arch/arm/include/asm/mach/mmc.h
@@ -143,6 +143,7 @@
unsigned int *sup_clk_table;
unsigned char sup_clk_cnt;
struct msm_mmc_pin_data *pin_data;
+ bool disable_bam;
};
#endif
diff --git a/arch/arm/mach-msm/board-apq8064.c b/arch/arm/mach-msm/board-apq8064.c
index 9f36efb..49eee71 100644
--- a/arch/arm/mach-msm/board-apq8064.c
+++ b/arch/arm/mach-msm/board-apq8064.c
@@ -80,6 +80,12 @@
static void __init apq8064_init_mmc(void)
{
+ if (machine_is_apq8064_sim()) {
+ if (apq8064_sdc1_pdata)
+ apq8064_sdc1_pdata->disable_bam = true;
+ if (apq8064_sdc3_pdata)
+ apq8064_sdc3_pdata->disable_bam = true;
+ }
apq8064_add_sdcc(1, apq8064_sdc1_pdata);
apq8064_add_sdcc(3, apq8064_sdc3_pdata);
}
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index 453c6a0..1ed2abe 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -3381,7 +3381,8 @@
host->plat = plat;
host->mmc = mmc;
host->curr.cmd = NULL;
- if (bam_memres && dml_memres && bam_irqres)
+
+ if (!plat->disable_bam && bam_memres && dml_memres && bam_irqres)
host->is_sps_mode = 1;
else if (dmares)
host->is_dma_mode = 1;