diff options
author | Marcin Slusarz <marcin.slusarz@gmail.com> | 2010-05-16 11:29:56 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-05-18 02:19:28 -0400 |
commit | 06415c564fb98562a4d6b6215615deb2d1cc0dae (patch) | |
tree | 93982221251bc68eb292a07da72220a0c90d94f0 /include/linux/fb.h | |
parent | 1471ca9aa71cd37b6a7476bb6f06a3a8622ea1bd (diff) |
fbmem, drm/nouveau: kick firmware framebuffers as soon as possible
Currently vesafb/efifb/... is kicked when hardware driver is registering
framebuffer. To do it hardware must be fully functional, so there's a short
window between start of initialisation and framebuffer registration when
two drivers touch the hardware. Unfortunately sometimes it breaks nouveau
initialisation.
Fix it by kicking firmware driver(s) before we start touching the hardware.
Reported-by: Didier Spaier <didier.spaier@epsm.fr>
Tested-by: Didier Spaier <didier.spaier@epsm.fr>
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Peter Jones <pjones@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/linux/fb.h')
-rw-r--r-- | include/linux/fb.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/fb.h b/include/linux/fb.h index de5ff5fa8380..f88e2549123d 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -971,6 +971,7 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf, | |||
971 | /* drivers/video/fbmem.c */ | 971 | /* drivers/video/fbmem.c */ |
972 | extern int register_framebuffer(struct fb_info *fb_info); | 972 | extern int register_framebuffer(struct fb_info *fb_info); |
973 | extern int unregister_framebuffer(struct fb_info *fb_info); | 973 | extern int unregister_framebuffer(struct fb_info *fb_info); |
974 | extern void remove_conflicting_framebuffers(struct apertures_struct *a, const char *name); | ||
974 | extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); | 975 | extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); |
975 | extern int fb_show_logo(struct fb_info *fb_info, int rotate); | 976 | extern int fb_show_logo(struct fb_info *fb_info, int rotate); |
976 | extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size); | 977 | extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size); |