msm: gemini: Support upto 64mp encoding
Redesign the output ping pong mechanism to support
upto 64mp encoding using gemini hardware.
Change-Id: Id7801861e0fe119f61a02fb3409155f312a85d21
Signed-off-by: Sunid Wilson <sunidw@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index c0eb41c..6d2e42e 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -3401,6 +3401,54 @@
};
#ifdef CONFIG_MSM_GEMINI
+
+static struct msm_bus_vectors gemini_init_vector[] = {
+ {
+ .src = MSM_BUS_MASTER_JPEG_ENC,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = 0,
+ .ib = 0,
+ },
+ {
+ .src = MSM_BUS_MASTER_JPEG_ENC,
+ .dst = MSM_BUS_SLAVE_MM_IMEM,
+ .ab = 0,
+ .ib = 0,
+ },
+};
+
+static struct msm_bus_vectors gemini_encode_vector[] = {
+ {
+ .src = MSM_BUS_MASTER_JPEG_ENC,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = 540000000,
+ .ib = 1350000000,
+ },
+ {
+ .src = MSM_BUS_MASTER_JPEG_ENC,
+ .dst = MSM_BUS_SLAVE_MM_IMEM,
+ .ab = 43200000,
+ .ib = 69120000,
+ },
+};
+
+static struct msm_bus_paths gemini_bus_path[] = {
+ {
+ ARRAY_SIZE(gemini_init_vector),
+ gemini_init_vector,
+ },
+ {
+ ARRAY_SIZE(gemini_encode_vector),
+ gemini_encode_vector,
+ },
+};
+
+static struct msm_bus_scale_pdata gemini_bus_scale_pdata = {
+ gemini_bus_path,
+ ARRAY_SIZE(gemini_bus_path),
+ .name = "msm_gemini",
+};
+
static struct resource msm_gemini_resources[] = {
{
.start = 0x04600000,
@@ -3418,6 +3466,9 @@
.name = "msm_gemini",
.resource = msm_gemini_resources,
.num_resources = ARRAY_SIZE(msm_gemini_resources),
+ .dev = {
+ .platform_data = &gemini_bus_scale_pdata,
+ },
};
#endif