linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/9][FBDEV]: Do the deletion of mode entries at fbdev level
@ 2004-08-21 13:33 Antonino A. Daplas
  0 siblings, 0 replies; only message in thread
From: Antonino A. Daplas @ 2004-08-21 13:33 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Fbdev development list

Hi,

If a request for deletion of an entry in the mode database is requested, do 
it at core fbdev level instead of doing it at the console level.

Tony

Signed-off-by: Antonino Daplas <adaplas@pol.net>
---

 console/fbcon.c |   12 ++++++------
 fbmem.c         |   24 ++++++++++++++++--------
 2 files changed, 22 insertions(+), 14 deletions(-)

diff -uprN linux-2.6.8.1-mm3-orig/drivers/video/console/fbcon.c linux-2.6.8.1-mm3/drivers/video/console/fbcon.c
--- linux-2.6.8.1-mm3-orig/drivers/video/console/fbcon.c	2004-08-21 18:26:53.000000000 +0800
+++ linux-2.6.8.1-mm3/drivers/video/console/fbcon.c	2004-08-21 18:36:27.045024320 +0800
@@ -2671,8 +2671,8 @@ static void fbcon_modechanged(struct fb_
 	}
 }
 
-static void fbcon_mode_deleted(struct fb_info *info,
-			       struct fb_videomode *mode)
+static int fbcon_mode_deleted(struct fb_info *info,
+			      struct fb_videomode *mode)
 {
 	struct fb_info *fb_info;
 	struct display *p;
@@ -2694,8 +2694,7 @@ static void fbcon_mode_deleted(struct fb
 			break;
 		}
 	}
-	if (!found)
-		fb_delete_videomode(mode, &info->monspecs.modelist);
+	return found;
 }
 
 static int fbcon_event_notify(struct notifier_block *self, 
@@ -2704,6 +2703,7 @@ static int fbcon_event_notify(struct not
 	struct fb_event *event = (struct fb_event *) data;
 	struct fb_info *info = event->info;
 	struct fb_videomode *mode;
+	int ret = 0;
 
 	switch(action) {
 	case FB_EVENT_SUSPEND:
@@ -2717,11 +2717,11 @@ static int fbcon_event_notify(struct not
 		break;
 	case FB_EVENT_MODE_DELETE:
 		mode = (struct fb_videomode *) event->data;
-		fbcon_mode_deleted(info, mode);
+		ret = fbcon_mode_deleted(info, mode);
 		break;
 	}
 
-	return 0;
+	return ret;
 }
 
 /*
diff -uprN linux-2.6.8.1-mm3-orig/drivers/video/fbmem.c linux-2.6.8.1-mm3/drivers/video/fbmem.c
--- linux-2.6.8.1-mm3-orig/drivers/video/fbmem.c	2004-08-21 18:26:53.000000000 +0800
+++ linux-2.6.8.1-mm3/drivers/video/fbmem.c	2004-08-21 18:36:27.048023864 +0800
@@ -1089,18 +1089,26 @@ fb_set_var(struct fb_info *info, struct 
 
 	if (var->activate & FB_ACTIVATE_INV_MODE) {
 		struct fb_videomode mode1, mode2;
-		struct fb_event event;
+		int ret = 0;
 
 		fb_var_to_videomode(&mode1, var);
 		fb_var_to_videomode(&mode2, &info->var);
 		/* make sure we don't delete the videomode of current var */
-		if (fb_mode_is_equal(&mode1, &mode2))
-			return -EINVAL;
-		event.info = info;
-		event.data = &mode1;
-		notifier_call_chain(&fb_notifier_list, FB_EVENT_MODE_DELETE,
-				    &event);
-		return 0;
+		ret = fb_mode_is_equal(&mode1, &mode2);
+
+		if (!ret) {
+		    struct fb_event event;
+
+		    event.info = info;
+		    event.data = &mode1;
+		    ret = notifier_call_chain(&fb_notifier_list,
+					      FB_EVENT_MODE_DELETE, &event);
+		}
+
+		if (!ret)
+		    fb_delete_videomode(&mode1, &info->monspecs.modelist);
+
+		return ret;
 	}
 
 	if ((var->activate & FB_ACTIVATE_FORCE) ||




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-08-21 13:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-21 13:33 [PATCH 1/9][FBDEV]: Do the deletion of mode entries at fbdev level Antonino A. Daplas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).