Recent commit 
dca2b1522ccab28d03fb79f6e70e70ea78033d52 (OMAPDSS: DSI:
Maintain copy of operation mode in driver data) broke DSI for video mode
displays. The commit changed the way dssdev->caps are initialized, and
the result was that every DSI display is initialized with manual-update
and tear-elim caps.
The code that sets dssdev->caps is not very good, even when fixed.
omapdss driver shouldn't be writing dssdev->caps at all.
This patch fixes the problem with video mode displays by moving the
initialization of dssdev->caps to the panel driver. The same change is
done for RFBI.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
        dssdev->panel.timings.y_res = 480;
        dssdev->ctrl.pixel_size = 16;
        dssdev->ctrl.rfbi_timings = n8x0_panel_timings;
+       dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
 
        memset(&props, 0, sizeof(props));
        props.max_brightness = 127;
 
 
        dssdev->panel.timings = panel_config->timings;
        dssdev->panel.dsi_pix_fmt = OMAP_DSS_DSI_FMT_RGB888;
+       dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |
+               OMAP_DSS_DISPLAY_CAP_TEAR_ELIM;
 
        td = kzalloc(sizeof(*td), GFP_KERNEL);
        if (!td) {
 
 
        DSSDBG("DSI init\n");
 
-       if (dsi->mode == OMAP_DSS_DSI_CMD_MODE) {
-               dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |
-                       OMAP_DSS_DISPLAY_CAP_TEAR_ELIM;
-       }
-
        if (dsi->vdds_dsi_reg == NULL) {
                struct regulator *vdds_dsi;
 
 
 static int __init rfbi_init_display(struct omap_dss_device *dssdev)
 {
        rfbi.dssdev[dssdev->phy.rfbi.channel] = dssdev;
-       dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
        return 0;
 }