* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.