fbdev: Make BIOS EDID reading configurable
PATCH 4/5 fbdev: Make BIOS EDID reading configurable
DDC reading via the Video BIOS may take several tens of seconds with some combination of display cards and monitors.
Make this option configurable and select only for drivers that need it.
---
arch/i386/boot/video.S | 2 ++ drivers/video/Kconfig | 12 ++++++++++++ drivers/video/fbmon.c | 6 +++--- 3 files changed, 17 insertions(+), 3 deletions(-)
arch/i386/boot/video.S +2 -0
@@ -1924,6 +1924,7 @@ skip10: movb %ah, %al ret store_edid: +#ifdef CONFIG_FB_FIRMWARE_EDID pushw %es # just save all registers pushw %ax pushw %bx
@@ -1954,6 +1955,7 @@ store_edid: popw %bx popw %ax popw %es +#endif ret # VIDEO_SELECT-only variables
drivers/video/Kconfig +12 -0
@@ -70,6 +70,18 @@ config FB_MACMODES depends on FB default n +config FB_FIRMWARE_EDID + bool "Enable firmware EDID" + depends on FB + default n + ---help--- + This enables access to the EDID transferred from the firmware. + On the i386, this is from the Video BIOS. Enable this if DDC/I2C + transfers do not work for your driver and if you are using + nvidiafb, i810fb or savagefb. + + If unsure, say N. + config FB_MODE_HELPERS bool "Enable Video Mode Handling Helpers" depends on FB
drivers/video/fbmon.c +3 -3
@@ -1281,7 +1281,7 @@ int fb_validate_mode(const struct fb_var -EINVAL : 0; } -#if defined(__i386__) +#if defined(CONFIG_FB_FIRMWARE_EDID ) && defined(__i386__)#include <linux/pci.h> /*
@@ -1311,11 +1311,11 @@ const unsigned char *fb_firmware_edid(st {return NULL ; } -#endif /* _i386_ */ +#endif +EXPORT_SYMBOL (fb_firmware_edid);EXPORT_SYMBOL (fb_parse_edid);EXPORT_SYMBOL (fb_edid_to_monspecs); -EXPORT_SYMBOL (fb_firmware_edid);EXPORT_SYMBOL (fb_get_mode);EXPORT_SYMBOL (fb_validate_mode);EXPORT_SYMBOL (fb_destroy_modedb);
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Quoted 5 lines · Antonino A. Daplas
DDC reading via the Video BIOS may take several tens of seconds with
some combination of display cards and monitors.Make this option configurable and select only for drivers that need it.
But that's not what the patch actually does - it requires that the user select the option.
Also, is it not possible to defer this operation until we've parsed the command line, control it with a kernel boot parameter?
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Quoted 8 lines · Andrew Morton
Quoted 4 lines · Antonino A. Daplas
DDC reading via the Video BIOS may take several tens of seconds with
some combination of display cards and monitors.Make this option configurable and select only for drivers that need it.
But that's not what the patch actually does - it requires that the user select the option.
You got me there :-). Initially, I had:
select FB_FIRMWARE_EDID if ...
in Kconfig on selected drivers, but in the end removed it. And, I forgot to change the changelog.
The reason I removed the "select ..." part is because the user won't be able to deselect this option.
Quoted 4 lines
Also, is it not possible to defer this operation until we've parsed the command line, control it with a kernel boot parameter?
I thought of that, but it seems a bit complicated to me to parse boot options in assembly so I left this for another time.
The firmware EDID is only used as fallback, or if drivers have no DDC/I2C support. Currently, all drivers that use the firmware EDID also have I2C support in place. And chances are, if DDC transfers failed, the firmware EDID will also be absent.
Tony
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Quoted 8 lines · Antonino A. Daplas
Quoted 5 lines
Also, is it not possible to defer this operation until we've parsed the command line, control it with a kernel boot parameter?
I thought of that, but it seems a bit complicated to me to parse boot options in assembly so I left this for another time.
Well I'm wondering whether we can instead do this query later on, after we've entered start_kernel().
Quoted 4 lines
The firmware EDID is only used as fallback, or if drivers have no DDC/I2C support. Currently, all drivers that use the firmware EDID also have I2C support in place. And chances are, if DDC transfers failed, the firmware EDID will also be absent.
hm. Don't you think `default y' would be better? As it is, people's stuff will mysteriously stop working.
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Quoted 9 lines · Andrew Morton
Quoted 5 lines · Antonino A. Daplas
Quoted 3 lines
Also, is it not possible to defer this operation until we've parsed the command line, control it with a kernel boot parameter?
I thought of that, but it seems a bit complicated to me to parse boot options in assembly so I left this for another time.
Well I'm wondering whether we can instead do this query later on, after we've entered
start_kernel().
The query is done while machine is in real mode (in arch/i386/boot/video.S).
Quoted 8 lines
Quoted 5 lines
The firmware EDID is only used as fallback, or if drivers have no DDC/I2C support. Currently, all drivers that use the firmware EDID also have I2C support in place. And chances are, if DDC transfers failed, the firmware EDID will also be absent.
hm. Don't you think `default y' would be better? As it is, people's stuff will mysteriously stop working.
Hmm. You're right, 'default y' looks better. Would you like me to send you a patch, or would you rather take care of it?
Tony
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
Quoted 3 lines · Antonino A. Daplas
Hmm. You're right, 'default y' looks better. Would you like me to send you
a patch, or would you rather take care of it?
Is OK, I'll diddle the diff.
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
PATCH 1/1 fbdev: Make config firmware EDID default to yes
In reply to Antonino A. Daplas- Make CONFIG_FB_FIRMWARE_EDID default to yes
- Add more info to Kconfig help section on when to select N for this option
---
Quoted 4 lines · Antonino A. Daplas
Quoted 2 lines · Andrew Morton
"Antonino A. Daplas" <[email protected]> wrote:
Hmm. You're right, 'default y' looks better. Would you like me to send youa patch, or would you rather take care of it?
On second thought, I'll just send you an update.
Tony
drivers/video/Kconfig | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
drivers/video/Kconfig +6 -2
@@ -73,14 +73,18 @@ config FB_MACMODES config FB_FIRMWARE_EDID bool "Enable firmware EDID" depends on FB - default n + default y ---help--- This enables access to the EDID transferred from the firmware. On the i386, this is from the Video BIOS. Enable this if DDC/I2C transfers do not work for your driver and if you are using nvidiafb, i810fb or savagefb. - If unsure, say N. + In general, choosing Y for this option is safe. If you + experience extremely long delays while booting before you get + something on your display, try setting this to N. Matrox cards in + combination with certain motherboards and monitors are known to + suffer from this problem. config FB_MODE_HELPERS bool "Enable Video Mode Handling Helpers"
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642