From eb5d0d791774332c089fee66223303220f9d4984 Mon Sep 17 00:00:00 2001 From: David Sin Date: Mon, 19 Mar 2012 12:22:08 -0500 Subject: gccore: set min data throughput on omap pm framework before and after issuing a BLT to the hardware, set the minimum data throughput value on the omap pm framework so that the appropriate opp will be set. Change-Id: I2c615acb772a568f66b727942f70583ade65abf5 Signed-off-by: David Sin --- drivers/misc/gcx/gccore/gcmain.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'drivers/misc') diff --git a/drivers/misc/gcx/gccore/gcmain.c b/drivers/misc/gcx/gccore/gcmain.c index 0f3b799..8e59f43 100644 --- a/drivers/misc/gcx/gccore/gcmain.c +++ b/drivers/misc/gcx/gccore/gcmain.c @@ -635,6 +635,9 @@ static struct gctransition g_gctransition[4][4] = { }, }; +#include +#include + enum gcpower g_gcpower; enum gcerror gc_set_power(enum gcpower gcpower) @@ -754,6 +757,7 @@ enum gcerror gc_set_power(enum gcpower gcpower) /* Enable/disable pulse skipping. */ if (gctransition->pulse) { + struct device *dev = omap_hwmod_name_get_dev("bb2d"); union gcclockcontrol gcclockcontrol; gcclockcontrol.raw = 0; @@ -761,6 +765,8 @@ enum gcerror gc_set_power(enum gcpower gcpower) GC_PRINT(GC_INFO_MSG " PULSE SKIP ENABLE\n", __func__, __LINE__); + omap_pm_set_min_bus_tput(dev, OCP_INITIATOR_AGENT, -1); + /* Enable loading and set to minimum value. */ gcclockcontrol.reg.pulsecount = 1; gcclockcontrol.reg.pulseset = true; @@ -770,6 +776,10 @@ enum gcerror gc_set_power(enum gcpower gcpower) GC_PRINT(GC_INFO_MSG " PULSE SKIP DISABLE\n", __func__, __LINE__); + /* set the min l3 data throughput to 2.5 GB */ + omap_pm_set_min_bus_tput(dev, OCP_INITIATOR_AGENT, + 0xA0000000); + /* Enable loading and set to maximum value. */ gcclockcontrol.reg.pulsecount = 64; gcclockcontrol.reg.pulseset = true; -- cgit v1.1