Re: [Linux-fbdev-devel] [PATCH]: EDID parser

Benjamin Herrenschmidt
2003-04-03T06:32:40Z

> 3. Some architecture specific methods, such as doing it via the BIOS.
> This is the last choice, our fallback method. as this EDID may be static
> and represents only the display detected at boot time.
>
> For supplementary functions, we also need some kind of control that
> allows the user to tell fbdev "I've switched monitors, please reread the
> EDID". We want to avoid doing DDC each time fbdev does an fb_set_var(),
> especially for DDC1 which can be very slow.

That's also what Apple does indeed. It's too complicated/long to
dynamically detect hotplug, but they do have a button you can
click to force a re-detect of the displays in the GUI and this
goes via some kind of ioctl to the video driver to ask for new
connection informations (basically EDID).

> Also, a way to download the EDID from kernel to userland.

Just define an ioctl for that and let each driver that support EDID
return something seem to be the simplest way.

If we really want to make EDID a generic thing, then we can eventually
have the EDID block attached to each fb_info and then a generic
fbmem.c ioctl to read it, but then make sure that EDID block isn"t
mandatory (it has no sense to some specific HW like some embedded
stuffs) and I always prefer when drivers are the real target of
the calls like this ioctl, eventually using fbdev "tools" as helpers
instead of having fbdev do something directly as a "mid-mayer".

Ben.