msm: rotator: Add Rotator device & bus scale data for 8064/8960/8930
Add Rotator device & bus scale data for supporting individual
targets 8960/8064/8930
CRs-Fixed: 344144
Change-Id: I105abad23717f1d42861d9808e0e2d41d776e90c
Signed-off-by: Ravishangar Kalyanam <rkalya@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8064.c b/arch/arm/mach-msm/board-8064.c
index beed02d..d06b5bd 100644
--- a/arch/arm/mach-msm/board-8064.c
+++ b/arch/arm/mach-msm/board-8064.c
@@ -2309,6 +2309,8 @@
apq8064_common_init();
ethernet_init();
platform_add_devices(cdp_devices, ARRAY_SIZE(cdp_devices));
+ if (!machine_is_apq8064_mtp())
+ msm_rotator_update_bus_vectors(1376, 768);
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
apq8064_init_fb();
apq8064_init_gpu();
diff --git a/arch/arm/mach-msm/board-8960-display.c b/arch/arm/mach-msm/board-8960-display.c
index eae3ebc..b715346 100644
--- a/arch/arm/mach-msm/board-8960-display.c
+++ b/arch/arm/mach-msm/board-8960-display.c
@@ -500,80 +500,6 @@
};
#ifdef CONFIG_MSM_BUS_SCALING
-
-static struct msm_bus_vectors rotator_init_vectors[] = {
- {
- .src = MSM_BUS_MASTER_ROTATOR,
- .dst = MSM_BUS_SLAVE_EBI_CH0,
- .ab = 0,
- .ib = 0,
- },
-};
-
-static struct msm_bus_vectors rotator_ui_vectors[] = {
- {
- .src = MSM_BUS_MASTER_ROTATOR,
- .dst = MSM_BUS_SLAVE_EBI_CH0,
- .ab = (1024 * 600 * 4 * 2 * 60),
- .ib = (1024 * 600 * 4 * 2 * 60 * 1.5),
- },
-};
-
-static struct msm_bus_vectors rotator_vga_vectors[] = {
- {
- .src = MSM_BUS_MASTER_ROTATOR,
- .dst = MSM_BUS_SLAVE_EBI_CH0,
- .ab = (640 * 480 * 2 * 2 * 30),
- .ib = (640 * 480 * 2 * 2 * 30 * 1.5),
- },
-};
-static struct msm_bus_vectors rotator_720p_vectors[] = {
- {
- .src = MSM_BUS_MASTER_ROTATOR,
- .dst = MSM_BUS_SLAVE_EBI_CH0,
- .ab = (1280 * 736 * 2 * 2 * 30),
- .ib = (1280 * 736 * 2 * 2 * 30 * 1.5),
- },
-};
-
-static struct msm_bus_vectors rotator_1080p_vectors[] = {
- {
- .src = MSM_BUS_MASTER_ROTATOR,
- .dst = MSM_BUS_SLAVE_EBI_CH0,
- .ab = (1920 * 1088 * 2 * 2 * 30),
- .ib = (1920 * 1088 * 2 * 2 * 30 * 1.5),
- },
-};
-
-static struct msm_bus_paths rotator_bus_scale_usecases[] = {
- {
- ARRAY_SIZE(rotator_init_vectors),
- rotator_init_vectors,
- },
- {
- ARRAY_SIZE(rotator_ui_vectors),
- rotator_ui_vectors,
- },
- {
- ARRAY_SIZE(rotator_vga_vectors),
- rotator_vga_vectors,
- },
- {
- ARRAY_SIZE(rotator_720p_vectors),
- rotator_720p_vectors,
- },
- {
- ARRAY_SIZE(rotator_1080p_vectors),
- rotator_1080p_vectors,
- },
-};
-
-struct msm_bus_scale_pdata rotator_bus_scale_pdata = {
- rotator_bus_scale_usecases,
- ARRAY_SIZE(rotator_bus_scale_usecases),
- .name = "rotator",
-};
-
static struct msm_bus_vectors mdp_init_vectors[] = {
{
.src = MSM_BUS_MASTER_MDP_PORT0,
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index a653353..029fc6f 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -1894,7 +1894,88 @@
};
unsigned msm_num_footswitch_devices = ARRAY_SIZE(msm_footswitch_devices);
+
#ifdef CONFIG_MSM_ROTATOR
+static struct msm_bus_vectors rotator_init_vectors[] = {
+ {
+ .src = MSM_BUS_MASTER_ROTATOR,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = 0,
+ .ib = 0,
+ },
+};
+
+static struct msm_bus_vectors rotator_ui_vectors[] = {
+ {
+ .src = MSM_BUS_MASTER_ROTATOR,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = (1024 * 600 * 4 * 2 * 60),
+ .ib = (1024 * 600 * 4 * 2 * 60 * 1.5),
+ },
+};
+
+static struct msm_bus_vectors rotator_vga_vectors[] = {
+ {
+ .src = MSM_BUS_MASTER_ROTATOR,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = (640 * 480 * 2 * 2 * 30),
+ .ib = (640 * 480 * 2 * 2 * 30 * 1.5),
+ },
+};
+static struct msm_bus_vectors rotator_720p_vectors[] = {
+ {
+ .src = MSM_BUS_MASTER_ROTATOR,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = (1280 * 736 * 2 * 2 * 30),
+ .ib = (1280 * 736 * 2 * 2 * 30 * 1.5),
+ },
+};
+
+static struct msm_bus_vectors rotator_1080p_vectors[] = {
+ {
+ .src = MSM_BUS_MASTER_ROTATOR,
+ .dst = MSM_BUS_SLAVE_EBI_CH0,
+ .ab = (1920 * 1088 * 2 * 2 * 30),
+ .ib = (1920 * 1088 * 2 * 2 * 30 * 1.5),
+ },
+};
+
+static struct msm_bus_paths rotator_bus_scale_usecases[] = {
+ {
+ ARRAY_SIZE(rotator_init_vectors),
+ rotator_init_vectors,
+ },
+ {
+ ARRAY_SIZE(rotator_ui_vectors),
+ rotator_ui_vectors,
+ },
+ {
+ ARRAY_SIZE(rotator_vga_vectors),
+ rotator_vga_vectors,
+ },
+ {
+ ARRAY_SIZE(rotator_720p_vectors),
+ rotator_720p_vectors,
+ },
+ {
+ ARRAY_SIZE(rotator_1080p_vectors),
+ rotator_1080p_vectors,
+ },
+};
+
+struct msm_bus_scale_pdata rotator_bus_scale_pdata = {
+ rotator_bus_scale_usecases,
+ ARRAY_SIZE(rotator_bus_scale_usecases),
+ .name = "rotator",
+};
+
+void __init msm_rotator_update_bus_vectors(unsigned int xres,
+ unsigned int yres)
+{
+ rotator_ui_vectors[0].ab = xres * yres * 4 * 2 * 60;
+ rotator_ui_vectors[0].ib = xres * yres * 4 * 2 * 60 * 3 / 2;
+}
+
#define ROTATOR_HW_BASE 0x04E00000
static struct resource resources_msm_rotator[] = {
{
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
index 3c7b22a..5758dc4 100644
--- a/arch/arm/mach-msm/devices.h
+++ b/arch/arm/mach-msm/devices.h
@@ -25,6 +25,8 @@
void __init msm9615_map_io(void);
void __init msm_map_msm9615_io(void);
void __init msm9615_init_irq(void);
+void __init msm_rotator_update_bus_vectors(unsigned int xres,
+ unsigned int yres);
extern struct platform_device asoc_msm_pcm;
extern struct platform_device asoc_msm_dai0;