@@ -291,8 +291,20 @@ static inline void flush_all(struct WMD_DEV_CONTEXT *pDevContext)
WakeDSP(pDevContext, NULL);
tlb_flush_all(pDevContext->dwDSPMmuBase);
CLK_Disable(SERVICESCLK_iva2_ck);
- } else
+ } else {
+#ifdef CONFIG_BRIDGE_DVFS
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
+ u32 opplevel = 0;
+ if (pdata->dsp_get_opp)
+ opplevel = (*pdata->dsp_get_opp)();
+ if (opplevel == VDD1_OPP1) {
+ if (pdata->dsp_set_min_opp)
+ (*pdata->dsp_set_min_opp)(VDD1_OPP2);
+ }
+#endif
tlb_flush_all(pDevContext->dwDSPMmuBase);
+ }
}
static void bad_page_dump(u32 pa, struct page *pg)