From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Maly Subject: Re: + efifb-dmi-set-video-type.patch added to -mm tree Date: Mon, 30 Mar 2009 19:46:15 -0400 Message-ID: <49D159C7.2070503@redhat.com> References: <200903302249.n2UMn89O012955@imap1.linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from sfi-mx-1.v28.ch3.sourceforge.com ([172.29.28.121] helo=mx.sourceforge.net) by 335xhf1.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1LoRCk-0006m6-Gj for linux-fbdev-devel@lists.sourceforge.net; Mon, 30 Mar 2009 23:47:46 +0000 Received: from mx2.redhat.com ([66.187.237.31]) by 29vjzd1.ch3.sourceforge.com with esmtp (Exim 4.69) id 1LoRCW-0004kd-5U for linux-fbdev-devel@lists.sourceforge.net; Mon, 30 Mar 2009 23:47:41 +0000 In-Reply-To: <200903302249.n2UMn89O012955@imap1.linux-foundation.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-fbdev-devel-bounces@lists.sourceforge.net To: akpm@linux-foundation.org Cc: mouli@linux.intel.com, linux-fbdev-devel@lists.sourceforge.net, adaplas@pol.net, pjones@redhat.com, ying.huang@intel.com, mm-commits@vger.kernel.org Adding linux-fbdev-devel and Antonino Daplas to the CC list... Brian akpm@linux-foundation.org wrote: > The patch titled > efifb: dmi set video type > has been added to the -mm tree. Its filename is > efifb-dmi-set-video-type.patch > > Before you just go and hit "reply", please: > a) Consider who else should be cc'ed > b) Prefer to cc a suitable mailing list as well > c) Ideally: find the original patch on the mailing list and do a > reply-to-all to that, adding suitable additional cc's > > *** Remember to use Documentation/SubmitChecklist when testing your code *** > > See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find > out what to do about this > > The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ > > ------------------------------------------------------ > Subject: efifb: dmi set video type > From: Brian Maly > > The current logic for dmi matching in efifb does not allow efifb to load > on all hardware that we can dmi match for. > > For a real world example, boot with elilo (3.7 or 3.8 vanilla) and on a > Apple (MacBook) and EFI framebuffer driver will not load (you will have no > video). This specific hardware is efi v1.10, so we have UGA and not GOP. > Without special bootloader magic (i.e. extra elilo patches for UGA > graphics detection) no screen info will be passed to the kernel and as a > result efifb will not load. > > This patch allows the dmi match to happen by moving it to earlier in > efifb_init, and sets the video type (in set_system) so that efifb can load > when we have a valid dmi match and already know the specifics of the > hardware. > > Without this patch the efifb driver will fail to load in the event screen > info is not found and passed in by the bootloader, being that we will > never get to look for a dmi match. A primary reason for matching with dmi > is because not all bootloaders detect the video info properly. The > solution is that in the event of a dmi match, we should set > screen_info.orig_video_isVGA. Most bootloaders fail to set screen info on > Apple hardware, and this is a big problem for people who use Apple > hardware. > > Tested on a MacBook SantaRosa with elilo-3.8 (vanilla) and resolves the > issue, the dmi match now works, EFI framebuffer now loads and video works. > > Signed-off-by: Brian Maly > Acked-by: Huang Ying > Cc: Krzysztof Helt > Cc: Chandramouli Narayanan > Cc: Peter Jones > Signed-off-by: Andrew Morton > --- > > drivers/video/efifb.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff -puN drivers/video/efifb.c~efifb-dmi-set-video-type drivers/video/efifb.c > --- a/drivers/video/efifb.c~efifb-dmi-set-video-type > +++ a/drivers/video/efifb.c > @@ -129,6 +129,8 @@ static int set_system(const struct dmi_s > screen_info.lfb_width = info->width; > if (screen_info.lfb_height == 0) > screen_info.lfb_height = info->height; > + if (screen_info.orig_video_isVGA == 0) > + screen_info.orig_video_isVGA = VIDEO_TYPE_EFI; > > return 0; > } > @@ -374,9 +376,10 @@ static int __init efifb_init(void) > int ret; > char *option = NULL; > > + dmi_check_system(dmi_system_table); > + > if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) > return -ENODEV; > - dmi_check_system(dmi_system_table); > > if (fb_get_options("efifb", &option)) > return -ENODEV; > _ > > Patches currently in -mm which might be from bmaly@redhat.com are > > efifb-dmi-set-video-type.patch > > ------------------------------------------------------------------------------