also flush posted write after irq enable
static void dispc_restore_context(void)
{
int i, j, ctx;
static void dispc_restore_context(void)
{
int i, j, ctx;
DSSDBG("dispc_restore_context\n");
DSSDBG("dispc_restore_context\n");
if (dss_has_feature(FEAT_CORE_CLK_DIV))
RR(DIVISOR);
if (dss_has_feature(FEAT_CORE_CLK_DIV))
RR(DIVISOR);
+ /* if gamma table is on, be sure to reload it */
+ val = dispc_read_reg(DISPC_CONFIG);
+ if (FLD_GET(val, 3, 3) &&
+ FLD_GET(val, 2, 1) == OMAP_DSS_LOAD_FRAME_ONLY)
+ dispc_set_loadmode(OMAP_DSS_LOAD_CLUT_ONCE_FRAME);
+
/* enable last, because LCD & DIGIT enable are here */
RR(CONTROL);
if (dss_has_feature(FEAT_MGR_LCD2))
/* enable last, because LCD & DIGIT enable are here */
RR(CONTROL);
if (dss_has_feature(FEAT_MGR_LCD2))
+ /* flush posted write */
+ dispc_read_reg(DISPC_IRQENABLE);
+
DSSDBG("context restored\n");
}
DSSDBG("context restored\n");
}