@@ -353,6 +353,9 @@ int set_opp(struct shared_resource *resp, u32 target_level)
int ind;
if (resp == vdd1_resp) {
+ if (target_level < 3)
+ resource_release("vdd2_opp", &vdd2_dev);
+
resource_set_opp_level(VDD1_OPP, target_level, 0);
/*
* For VDD1 OPP3 and above, make sure the interconnect
@@ -361,8 +364,6 @@ int set_opp(struct shared_resource *resp, u32 target_level)
*/
if (target_level >= 3)
resource_request("vdd2_opp", &vdd2_dev, 400000);
- else
- resource_release("vdd2_opp", &vdd2_dev);
} else if (resp == vdd2_resp) {
tput = target_level;
This patch makes sure that VDD2 dvfs always happens at a higher VDD1 OPP, hence bringing down the VDD2 DVFS latency to a large extent. Having a smaller VDD2 dvfs latency helps drivers which are sensitive to the time during which SDRAM is inaccessible due to SDRC iclk being disabled. Signed-off-by: Rajendra Nayak <rnayak@ti.com> --- arch/arm/mach-omap2/resource34xx.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)