mp = get_mgr_priv(ovl->manager);
 
-       replication = dss_use_replication(ovl->manager->device, oi->color_mode);
+       replication = dss_ovl_use_replication(mp->lcd_config, oi->color_mode);
 
        r = dispc_ovl_setup(ovl->id, oi, replication, &mp->timings);
        if (r) {
 
 }
 EXPORT_SYMBOL(omapdss_default_get_timings);
 
-/* Checks if replication logic should be used. Only use for active matrix,
- * when overlay is in RGB12U or RGB16 mode, and LCD interface is
- * 18bpp or 24bpp */
-bool dss_use_replication(struct omap_dss_device *dssdev,
-               enum omap_color_mode mode)
-{
-       int bpp;
-
-       if (mode != OMAP_DSS_COLOR_RGB12U && mode != OMAP_DSS_COLOR_RGB16)
-               return false;
-
-       switch (dssdev->type) {
-       case OMAP_DISPLAY_TYPE_DPI:
-               bpp = dssdev->phy.dpi.data_lines;
-               break;
-       case OMAP_DISPLAY_TYPE_HDMI:
-       case OMAP_DISPLAY_TYPE_VENC:
-       case OMAP_DISPLAY_TYPE_SDI:
-               bpp = 24;
-               break;
-       case OMAP_DISPLAY_TYPE_DBI:
-               bpp = dssdev->ctrl.pixel_size;
-               break;
-       case OMAP_DISPLAY_TYPE_DSI:
-               bpp = dsi_get_pixel_size(dssdev->panel.dsi_pix_fmt);
-               break;
-       default:
-               BUG();
-               return false;
-       }
-
-       return bpp > 16;
-}
-
 void dss_init_device(struct platform_device *pdev,
                struct omap_dss_device *dssdev)
 {
 
                struct omap_dss_device *dssdev);
 void dss_uninit_device(struct platform_device *pdev,
                struct omap_dss_device *dssdev);
-bool dss_use_replication(struct omap_dss_device *dssdev,
-               enum omap_color_mode mode);
 
 /* manager */
 int dss_init_overlay_managers(struct platform_device *pdev);
                const struct omap_overlay_info *info);
 int dss_ovl_check(struct omap_overlay *ovl, struct omap_overlay_info *info,
                const struct omap_video_timings *mgr_timings);
+bool dss_ovl_use_replication(struct dss_lcd_mgr_config config,
+               enum omap_color_mode mode);
 
 /* DSS */
 int dss_init_platform_driver(void) __init;
 
 
        return 0;
 }
+
+/*
+ * Checks if replication logic should be used. Only use when overlay is in
+ * RGB12U or RGB16 mode, and video port width interface is 18bpp or 24bpp
+ */
+bool dss_ovl_use_replication(struct dss_lcd_mgr_config config,
+               enum omap_color_mode mode)
+{
+       if (mode != OMAP_DSS_COLOR_RGB12U && mode != OMAP_DSS_COLOR_RGB16)
+               return false;
+
+       return config.video_port_width > 16;
+}