1 From ba573a248dc8c33ff21fc4efbfea0ca85cdbc5d0 Mon Sep 17 00:00:00 2001
2 From: Ranjith Lohithakshan <ranjithl@ti.com>
3 Date: Tue, 7 Sep 2010 10:05:11 +0530
4 Subject: [PATCH 8/9] OMAP3EVM: Set minimum throughput requirement for DSS
6 GFX_FIFO_UNDERFLOW has been observed when the L3 rate is lowered
7 below 100MHz or so. Once this underflow happens the display stops
10 This patch puts a minimum bus throughput requirement when lcd, tv
11 or dvi displays are enabled. The throughput is calculated in such
12 a manner that it will translate into a minimum L3 rate of 100MHz.
14 Signed-off-by: Ranjith Lohithakshan <ranjithl@ti.com>
16 arch/arm/mach-omap2/board-omap3evm.c | 8 ++++++++
17 1 files changed, 8 insertions(+), 0 deletions(-)
19 diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
20 index eb7ad1c..710a25d 100644
21 --- a/arch/arm/mach-omap2/board-omap3evm.c
22 +++ b/arch/arm/mach-omap2/board-omap3evm.c
23 @@ -422,12 +422,15 @@ static int omap3_evm_enable_lcd(struct omap_dss_device *dssdev)
25 gpio_set_value(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1);
27 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 400000);
33 static void omap3_evm_disable_lcd(struct omap_dss_device *dssdev)
35 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 0);
36 gpio_set_value(OMAP3EVM_LCD_PANEL_ENVDD, 1);
38 if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2)
39 @@ -449,11 +452,13 @@ static struct omap_dss_device omap3_evm_lcd_device = {
41 static int omap3_evm_enable_tv(struct omap_dss_device *dssdev)
43 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 400000);
47 static void omap3_evm_disable_tv(struct omap_dss_device *dssdev)
49 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 0);
52 static struct omap_dss_device omap3_evm_tv_device = {
53 @@ -488,12 +493,15 @@ static int omap3_evm_enable_dvi(struct omap_dss_device *dssdev)
54 omap_mux_set_gpio(OMAP_MUX_MODE3, 3);
57 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 400000);
63 static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev)
65 + omap_pm_set_min_bus_tput(&dssdev->dev, OCP_INITIATOR_AGENT, 0);
66 gpio_set_value(OMAP3EVM_DVI_PANEL_EN_GPIO, 0);