return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
                return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
                return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
        msleep(1000);
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r) {
 
                return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
                return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
                return 0;
 
        omapdss_dpi_set_timings(dssdev, &dssdev->panel.timings);
+       omapdss_dpi_set_data_lines(dssdev, dssdev->phy.dpi.data_lines);
 
        r = omapdss_dpi_display_enable(dssdev);
        if (r)
 
 
        struct omap_video_timings timings;
        struct dss_lcd_mgr_config mgr_config;
+       int data_lines;
 } dpi;
 
 static struct platform_device *dpi_get_dsidev(enum omap_dss_clk_source clk)
        dpi.mgr_config.stallmode = false;
        dpi.mgr_config.fifohandcheck = false;
 
-       dpi.mgr_config.video_port_width = dssdev->phy.dpi.data_lines;
+       dpi.mgr_config.video_port_width = dpi.data_lines;
 
        dpi.mgr_config.lcden_sig_polarity = 0;
 
 }
 EXPORT_SYMBOL(dpi_check_timings);
 
+void omapdss_dpi_set_data_lines(struct omap_dss_device *dssdev, int data_lines)
+{
+       mutex_lock(&dpi.lock);
+
+       dpi.data_lines = data_lines;
+
+       mutex_unlock(&dpi.lock);
+}
+EXPORT_SYMBOL(omapdss_dpi_set_data_lines);
+
 static int __init dpi_init_display(struct omap_dss_device *dssdev)
 {
        DSSDBG("init_display\n");
 
                struct omap_video_timings *timings);
 int dpi_check_timings(struct omap_dss_device *dssdev,
                        struct omap_video_timings *timings);
+void omapdss_dpi_set_data_lines(struct omap_dss_device *dssdev, int data_lines);
 
 int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
 void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);