From: Pattrick Hueper <pattyh@gmx.net>
To: linux-fbdev-devel@lists.sourceforge.net
Subject: [PATCH] notify fbcon if framebuffer registered
Date: Tue, 02 Mar 2004 12:38:57 +0100 [thread overview]
Message-ID: <40447251.3050801@gmx.net> (raw)
Hi,
Note: Please CC: me on replies, since i am not a member of the
linux-fbdev-devel list!
I am helping a team at handhelds.org to port linux to the ipaq h2210, i
was trying to get the framebuffer to start when i came across the
problem, that our fb device is initialized after fb_console_init. I saw
that sometime between 2.6.1 and 2.6.3 you added a notifier_chain for
suspend/resume, so i added a new event for newly registered
framebuffers, this helps my ipaq fb to start, when the kernel starts.
Here is the patch i came up with: (it is a patch based on the
handhelds.org kernel sources, i hope that it still fits your sources.
Sorry!)
I basically added a new event in fb.h and notified the event in
register_framebuffer. I had to move the fb_register_client call in
fb_console_init up, before "if (!num_registered_fb) because it otherwise
did not get called in my case. in fbcon_event_notify() i just call
take_over_console, which is what fb_console_init would have done, had
the framebuffer been registered before, if i understood it correctly.
Regards, Patty
Index: drivers/video/fbmem.c
===================================================================
RCS file: /cvs/linux/kernel26/drivers/video/fbmem.c,v
retrieving revision 1.13
diff -u -b -r1.13 fbmem.c
--- drivers/video/fbmem.c 29 Feb 2004 01:49:03 -0000 1.13
+++ drivers/video/fbmem.c 1 Mar 2004 13:27:57 -0000
@@ -167,6 +167,7 @@
extern int tcx_setup(char*);
extern int leo_init(void);
extern int leo_setup(char*);
+extern int mq1100fb_init(void);
extern int kyrofb_init(void);
extern int kyrofb_setup(char*);
@@ -385,6 +386,9 @@
#ifdef CONFIG_FB_VOODOO1
{ "sstfb", sstfb_init, sstfb_setup },
#endif
+#ifdef CONFIG_FB_MQ1100
+ { "mq1100fb", mq1100fb_init, NULL },
+#endif
#ifdef CONFIG_FB_KYRO
{ "kyrofb", kyrofb_init, kyrofb_setup },
#endif
@@ -1303,6 +1307,9 @@
devfs_mk_cdev(MKDEV(FB_MAJOR, i),
S_IFCHR | S_IRUGO | S_IWUGO, "fb/%d", i);
+
+ notifier_call_chain (&fb_notifier_list, FB_EVENT_FB_REGISTERED,
fb_info);
+
return 0;
}
Index: drivers/video/console/fbcon.c
===================================================================
RCS file: /cvs/linux/kernel26/drivers/video/console/fbcon.c,v
retrieving revision 1.3
diff -u -b -r1.3 fbcon.c
--- drivers/video/console/fbcon.c 29 Feb 2004 01:49:04 -0000 1.3
+++ drivers/video/console/fbcon.c 1 Mar 2004 13:27:57 -0000
@@ -2295,6 +2295,10 @@
case FB_EVENT_RESUME:
fbcon_resumed(info);
break;
+ case FB_EVENT_FB_REGISTERED:
+ /* a framebuffer was registered, try to take over the console */
+ take_over_console(&fb_con, first_fb_vc, last_fb_vc,
fbcon_is_default);
+ break;
}
return 0;
}
@@ -2333,16 +2337,15 @@
int __init fb_console_init(void)
{
- if (!num_registered_fb)
- return -ENODEV;
- take_over_console(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default);
acquire_console_sem();
if (!fbcon_event_notifier_registered) {
fb_register_client(&fbcon_event_notifer);
fbcon_event_notifier_registered = 1;
}
release_console_sem();
-
+ if (!num_registered_fb)
+ return -ENODEV;
+ take_over_console(&fb_con, first_fb_vc, last_fb_vc, fbcon_is_default);
return 0;
}
Index: include/linux/fb.h
===================================================================
RCS file: /cvs/linux/kernel26/include/linux/fb.h,v
retrieving revision 1.2
diff -u -b -r1.2 fb.h
--- include/linux/fb.h 29 Feb 2004 01:49:22 -0000 1.2
+++ include/linux/fb.h 1 Mar 2004 13:27:58 -0000
@@ -353,6 +353,8 @@
* if you own it
*/
#define FB_EVENT_RESUME 0x03
+/* A new framebuffer registered */
+#define FB_EVENT_FB_REGISTERED 0x04
extern int fb_register_client(struct notifier_block *nb);
extern int fb_unregister_client(struct notifier_block *nb);
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
next reply other threads:[~2004-03-02 11:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-02 11:38 Pattrick Hueper [this message]
2004-03-02 17:41 ` [PATCH] notify fbcon if framebuffer registered James Simmons
2004-03-02 20:42 ` Pattrick Hüper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40447251.3050801@gmx.net \
--to=pattyh@gmx.net \
--cc=linux-fbdev-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).