diff mbox

[3/4] davinci: Allow the OSD framebuffers to be disabled on the kernel command line.

Message ID 1274187385-10969-3-git-send-email-gilles.chanteperdrix@nexvision.fr (mailing list archive)
State Not Applicable
Headers show

Commit Message

Gilles Chanteperdrix May 18, 2010, 12:56 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/video/davincifb.c b/drivers/video/davincifb.c
index ccb27d7..01e5220 100644
--- a/drivers/video/davincifb.c
+++ b/drivers/video/davincifb.c
@@ -1485,7 +1485,7 @@  davincifb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 	struct fb_videomode *mode = &win->dm->mode;
 	struct davinci_layer_config lconfig;
 	struct fb_fix_screeninfo fix;
-		
+
 	/*
 	 * Get an updated copy of the video mode from the encoder manager, just
 	 * in case the display has been switched.
@@ -1562,7 +1562,7 @@  davincifb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 		return -EINVAL;
 	if (lconfig.xpos != win->xpos || lconfig.ypos != win->ypos)
 		return -EINVAL;
-	
+
 	/*
 	 * At this point we have accepted the var, so now we convert our layer
 	 * configuration struct back to the var in order to make all of the
@@ -2192,8 +2192,8 @@  static void parse_win_params(struct vpbe_dm_win_info *win,
  * Pass boot-time options by adding the following string to the boot params:
  *	video=davincifb:options
  * Valid options:
- *	osd0=[MxNxP,S@X,Y]
- *      osd1=[MxNxP,S@X,Y]
+ *	osd0=[off|MxNxP,S@X,Y]
+ *      osd1=[off|MxNxP,S@X,Y]
  *	vid0=[off|MxNxP,S@X,Y]
  *	vid1=[off|MxNxP,S@X,Y]
  *		MxN are the horizontal and vertical window size
@@ -2201,8 +2201,8 @@  static void parse_win_params(struct vpbe_dm_win_info *win,
  *		S is the framebuffer size with a size suffix such as 'K' or 'M'
  *		X,Y are the window position
  *
- * Only video windows can be turned off.  Turning off a video window means that
- * no framebuffer device will be registered for it,
+ * Turning off a video window means that no framebuffer device will be
+ * registered for it,
  *
  * To cause a window to be supported by the framebuffer driver but not displayed
  * initially, pass a value of 0 for the window size.
@@ -2310,13 +2310,14 @@  static int davincifb_probe(struct device *dev)
 	dm->win[WIN_OSD0].layer = WIN_OSD0;
 	dm->win[WIN_OSD0].dm = dm;
 	dm->win[WIN_OSD0].sdram_address = 0;
-	davincifb_get_default_win_config(dev, &dm->win[WIN_OSD0], &lconfig,
-					 &fb_size, options);
-	err =
-	    davincifb_init_window(dev, &dm->win[WIN_OSD0], &lconfig, fb_size,
-				  OSD0_FBNAME);
-	if (err)
-		goto osd0_out;
+	if (!davincifb_get_default_win_config
+	    (dev, &dm->win[WIN_OSD0], &lconfig, &fb_size, options)) {
+		err =
+			davincifb_init_window(dev, &dm->win[WIN_OSD0], &lconfig,
+					      fb_size, OSD0_FBNAME);
+		if (err)
+			goto osd0_out;
+	}
 
 	/* initialize VID0 */
 	dm->win[WIN_VID0].layer = WIN_VID0;
@@ -2335,13 +2336,14 @@  static int davincifb_probe(struct device *dev)
 	dm->win[WIN_OSD1].layer = WIN_OSD1;
 	dm->win[WIN_OSD1].dm = dm;
 	dm->win[WIN_OSD1].sdram_address = 0;
-	davincifb_get_default_win_config(dev, &dm->win[WIN_OSD1], &lconfig,
-					 &fb_size, options);
-	err =
-	    davincifb_init_window(dev, &dm->win[WIN_OSD1], &lconfig, fb_size,
-				  OSD1_FBNAME);
-	if (err)
-		goto osd1_out;
+	if (!davincifb_get_default_win_config
+	    (dev, &dm->win[WIN_OSD1], &lconfig, &fb_size, options)) {
+		err =
+			davincifb_init_window(dev, &dm->win[WIN_OSD1], &lconfig,
+					      fb_size, OSD1_FBNAME);
+		if (err)
+			goto osd1_out;
+	}
 
 	/* initialize VID1 */
 	dm->win[WIN_VID1].layer = WIN_VID1;