|
@@ -2870,7 +2870,7 @@ int dispc_wb_setup(const struct omap_dss_writeback_info *wi,
|
|
int wbdelay;
|
|
int wbdelay;
|
|
|
|
|
|
wbdelay = min(mgr_timings->vfront_porch +
|
|
wbdelay = min(mgr_timings->vfront_porch +
|
|
- mgr_timings->vsync_len + mgr_timings->vbp, 255);
|
|
|
|
|
|
+ mgr_timings->vsync_len + mgr_timings->vback_porch, 255);
|
|
|
|
|
|
/* WBDELAYCOUNT */
|
|
/* WBDELAYCOUNT */
|
|
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), wbdelay, 7, 0);
|
|
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), wbdelay, 7, 0);
|
|
@@ -3134,7 +3134,7 @@ bool dispc_mgr_timings_ok(enum omap_channel channel,
|
|
if (!_dispc_lcd_timings_ok(timings->hsync_len,
|
|
if (!_dispc_lcd_timings_ok(timings->hsync_len,
|
|
timings->hfront_porch, timings->hback_porch,
|
|
timings->hfront_porch, timings->hback_porch,
|
|
timings->vsync_len, timings->vfront_porch,
|
|
timings->vsync_len, timings->vfront_porch,
|
|
- timings->vbp))
|
|
|
|
|
|
+ timings->vback_porch))
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3270,13 +3270,14 @@ void dispc_mgr_set_timings(enum omap_channel channel,
|
|
}
|
|
}
|
|
|
|
|
|
if (dss_mgr_is_lcd(channel)) {
|
|
if (dss_mgr_is_lcd(channel)) {
|
|
- _dispc_mgr_set_lcd_timings(channel, t.hsync_len, t.hfront_porch,
|
|
|
|
- t.hback_porch, t.vsync_len, t.vfront_porch, t.vbp,
|
|
|
|
|
|
+ _dispc_mgr_set_lcd_timings(channel,
|
|
|
|
+ t.hsync_len, t.hfront_porch, t.hback_porch,
|
|
|
|
+ t.vsync_len, t.vfront_porch, t.vback_porch,
|
|
t.vsync_level, t.hsync_level, t.data_pclk_edge,
|
|
t.vsync_level, t.hsync_level, t.data_pclk_edge,
|
|
t.de_level, t.sync_pclk_edge);
|
|
t.de_level, t.sync_pclk_edge);
|
|
|
|
|
|
xtot = t.hactive + t.hfront_porch + t.hsync_len + t.hback_porch;
|
|
xtot = t.hactive + t.hfront_porch + t.hsync_len + t.hback_porch;
|
|
- ytot = t.vactive + t.vfront_porch + t.vsync_len + t.vbp;
|
|
|
|
|
|
+ ytot = t.vactive + t.vfront_porch + t.vsync_len + t.vback_porch;
|
|
|
|
|
|
ht = timings->pixelclock / xtot;
|
|
ht = timings->pixelclock / xtot;
|
|
vt = timings->pixelclock / xtot / ytot;
|
|
vt = timings->pixelclock / xtot / ytot;
|
|
@@ -3284,7 +3285,7 @@ void dispc_mgr_set_timings(enum omap_channel channel,
|
|
DSSDBG("pck %u\n", timings->pixelclock);
|
|
DSSDBG("pck %u\n", timings->pixelclock);
|
|
DSSDBG("hsync_len %d hfp %d hbp %d vsw %d vfp %d vbp %d\n",
|
|
DSSDBG("hsync_len %d hfp %d hbp %d vsw %d vfp %d vbp %d\n",
|
|
t.hsync_len, t.hfront_porch, t.hback_porch,
|
|
t.hsync_len, t.hfront_porch, t.hback_porch,
|
|
- t.vsync_len, t.vfront_porch, t.vbp);
|
|
|
|
|
|
+ t.vsync_len, t.vfront_porch, t.vback_porch);
|
|
DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n",
|
|
DSSDBG("vsync_level %d hsync_level %d data_pclk_edge %d de_level %d sync_pclk_edge %d\n",
|
|
t.vsync_level, t.hsync_level, t.data_pclk_edge,
|
|
t.vsync_level, t.hsync_level, t.data_pclk_edge,
|
|
t.de_level, t.sync_pclk_edge);
|
|
t.de_level, t.sync_pclk_edge);
|
|
@@ -4228,7 +4229,7 @@ static const struct dispc_errata_i734_data {
|
|
.hactive = 8, .vactive = 1,
|
|
.hactive = 8, .vactive = 1,
|
|
.pixelclock = 16000000,
|
|
.pixelclock = 16000000,
|
|
.hsync_len = 8, .hfront_porch = 4, .hback_porch = 4,
|
|
.hsync_len = 8, .hfront_porch = 4, .hback_porch = 4,
|
|
- .vsync_len = 1, .vfront_porch = 1, .vbp = 1,
|
|
|
|
|
|
+ .vsync_len = 1, .vfront_porch = 1, .vback_porch = 1,
|
|
.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
|
|
.vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
|
|
.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
|
|
.hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
|
|
.interlace = false,
|
|
.interlace = false,
|