static void dispc_ovl_set_burst_size(enum omap_plane plane,
                enum omap_burst_size burst_size)
 {
-       static const unsigned shifts[] = { 6, 14, 14, 14, };
+       static const unsigned shifts[] = { 6, 14, 14, 14, 14, };
        int shift;
 
        shift = shifts[plane];
        if (manual_update && dss_has_feature(FEAT_OMAP3_DSI_FIFO_BUG)) {
                *fifo_low = ovl_fifo_size - burst_size * 2;
                *fifo_high = total_fifo_size - burst_size;
+       } else if (plane == OMAP_DSS_WB) {
+               /*
+                * Most optimal configuration for writeback is to push out data
+                * to the interconnect the moment writeback pushes enough pixels
+                * in the FIFO to form a burst
+                */
+               *fifo_low = 0;
+               *fifo_high = burst_size;
        } else {
                *fifo_low = ovl_fifo_size - burst_size;
                *fifo_high = total_fifo_size - buf_unit;