2015-06-05 09:17:23

by Matt Fleming

[permalink] [raw]
Subject: Re: [PATCH] x86/simplefb: simplefb was broken on Oracle and HP system, skip VIDEO_TYPE_EFI

(Cc'ing David)

On Wed, 27 May, at 04:45:48PM, Ethan Zhao wrote:
> As descriped in https://bugzilla.kernel.org/show_bug.cgi?id=98721
> When kernel 4.0.4 was tested on Oracle and HP system with UEFI mode, no output and
> login on console.
>
> Simplefb was broken on these systems when orig_video_isVGA is VIDEO_TYPE_EFI, so
> skip it.
>
> This patch was tested on Oracle Sun server X5-2 series and HP ProLiant DL380 Gen9
> with kernel 4.0.4
>
> Signed-off-by: Ethan Zhao <[email protected]>
> Tested-by: Kunlun Lao <[email protected]>
> ---
> arch/x86/kernel/sysfb_simplefb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c
> index 764a29f..f833502 100644
> --- a/arch/x86/kernel/sysfb_simplefb.c
> +++ b/arch/x86/kernel/sysfb_simplefb.c
> @@ -36,7 +36,7 @@ __init bool parse_mode(const struct screen_info *si,
> unsigned int i;
>
> type = si->orig_video_isVGA;
> - if (type != VIDEO_TYPE_VLFB && type != VIDEO_TYPE_EFI)
> + if (type != VIDEO_TYPE_VLFB)
> return false;
>
> for (i = 0; i < ARRAY_SIZE(formats); ++i) {

This patch makes sense to me, but I'd really like David to fill us in on
the rationale for including VIDEO_TYPE_EFI in the simplefb list in first
place, and whether he's aware of any platforms that require simplefb for
UEFI.

David?

--
Matt Fleming, Intel Open Source Technology Center


2015-06-05 09:31:36

by David Herrmann

[permalink] [raw]
Subject: Re: [PATCH] x86/simplefb: simplefb was broken on Oracle and HP system, skip VIDEO_TYPE_EFI

Hi

On Fri, Jun 5, 2015 at 11:17 AM, Matt Fleming <[email protected]> wrote:
> (Cc'ing David)
>
> On Wed, 27 May, at 04:45:48PM, Ethan Zhao wrote:
>> As descriped in https://bugzilla.kernel.org/show_bug.cgi?id=98721
>> When kernel 4.0.4 was tested on Oracle and HP system with UEFI mode, no output and
>> login on console.
>>
>> Simplefb was broken on these systems when orig_video_isVGA is VIDEO_TYPE_EFI, so
>> skip it.
>>
>> This patch was tested on Oracle Sun server X5-2 series and HP ProLiant DL380 Gen9
>> with kernel 4.0.4
>>
>> Signed-off-by: Ethan Zhao <[email protected]>
>> Tested-by: Kunlun Lao <[email protected]>
>> ---
>> arch/x86/kernel/sysfb_simplefb.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c
>> index 764a29f..f833502 100644
>> --- a/arch/x86/kernel/sysfb_simplefb.c
>> +++ b/arch/x86/kernel/sysfb_simplefb.c
>> @@ -36,7 +36,7 @@ __init bool parse_mode(const struct screen_info *si,
>> unsigned int i;
>>
>> type = si->orig_video_isVGA;
>> - if (type != VIDEO_TYPE_VLFB && type != VIDEO_TYPE_EFI)
>> + if (type != VIDEO_TYPE_VLFB)
>> return false;
>>
>> for (i = 0; i < ARRAY_SIZE(formats); ++i) {
>
> This patch makes sense to me, but I'd really like David to fill us in on
> the rationale for including VIDEO_TYPE_EFI in the simplefb list in first
> place, and whether he's aware of any platforms that require simplefb for
> UEFI.

simplefb works perfectly fine on EFI systems. There is no need to use
vesafb nor efifb anymore. If simplefb does not work on a platform, we
should fix it. Hence, I object to this patch. Can you elaborate what
exactly the problem is? Are you sure you have CONFIG_FB_SIMPLE=y?

If you really want to use efifb instead, please set
CONFIG_X86_SYSFB=n. This config option controls whether you want
firmware framebuffers to be converted to the generic
simple-framebuffer interface, or whether you want to use the old
vesa/efi-framebuffer interfaces.

Thanks
David

2015-06-09 08:05:02

by Ethan Zhao

[permalink] [raw]
Subject: Re: [PATCH] x86/simplefb: simplefb was broken on Oracle and HP system, skip VIDEO_TYPE_EFI


On 2015/6/5 17:31, David Herrmann wrote:
> Hi
>
> On Fri, Jun 5, 2015 at 11:17 AM, Matt Fleming <[email protected]> wrote:
>> (Cc'ing David)
>>
>> On Wed, 27 May, at 04:45:48PM, Ethan Zhao wrote:
>>> As descriped in https://bugzilla.kernel.org/show_bug.cgi?id=98721
>>> When kernel 4.0.4 was tested on Oracle and HP system with UEFI mode, no output and
>>> login on console.
>>>
>>> Simplefb was broken on these systems when orig_video_isVGA is VIDEO_TYPE_EFI, so
>>> skip it.
>>>
>>> This patch was tested on Oracle Sun server X5-2 series and HP ProLiant DL380 Gen9
>>> with kernel 4.0.4
>>>
>>> Signed-off-by: Ethan Zhao <[email protected]>
>>> Tested-by: Kunlun Lao <[email protected]>
>>> ---
>>> arch/x86/kernel/sysfb_simplefb.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c
>>> index 764a29f..f833502 100644
>>> --- a/arch/x86/kernel/sysfb_simplefb.c
>>> +++ b/arch/x86/kernel/sysfb_simplefb.c
>>> @@ -36,7 +36,7 @@ __init bool parse_mode(const struct screen_info *si,
>>> unsigned int i;
>>>
>>> type = si->orig_video_isVGA;
>>> - if (type != VIDEO_TYPE_VLFB && type != VIDEO_TYPE_EFI)
>>> + if (type != VIDEO_TYPE_VLFB)
>>> return false;
>>>
>>> for (i = 0; i < ARRAY_SIZE(formats); ++i) {
>> This patch makes sense to me, but I'd really like David to fill us in on
>> the rationale for including VIDEO_TYPE_EFI in the simplefb list in first
>> place, and whether he's aware of any platforms that require simplefb for
>> UEFI.
> simplefb works perfectly fine on EFI systems. There is no need to use
> vesafb nor efifb anymore. If simplefb does not work on a platform, we
> should fix it. Hence, I object to this patch. Can you elaborate what
> exactly the problem is? Are you sure you have CONFIG_FB_SIMPLE=y?
Yes, no CONFIG_FB_SIMPLE set.
>
> If you really want to use efifb instead, please set
> CONFIG_X86_SYSFB=n.

CONFIG_X86_SYSFB=n.
Works.

> This config option controls whether you want
> firmware framebuffers to be converted to the generic
> simple-framebuffer interface, or whether you want to use the old
> vesa/efi-framebuffer interfaces.
>
> Thanks
> David
Thanks,
Ethan