Subject: Re: CVS commit: src/sys/dev/wsfb
To: Jason Thorpe <thorpej@shagadelic.org>
From: Michael Lorenz <macallan@netbsd.org>
List: source-changes
Date: 04/07/2007 23:52:05
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Apr 7, 2007, at 21:42, Jason Thorpe wrote:

> On Apr 7, 2007, at 3:53 PM, Michael Lorenz wrote:
>
>> I used a blob for EDID data in proplib. Problems come with opaque 
>> types and there we're probably better off with just a pointer type.
>
> What I would have rather seen done with EDID data is to have something 
> that parses it and makes a dictionary, then make FB drivers use the 
> dictionary.  That way, in situations like you had, you would not have 
> had to create an EDID blob, but rather just populated a dictionary 
> with the properties that you wanted to pass along.

It was easier that way. The drivers in question already had code to 
deal with binary EDID data, passing them via proplib was intended to 
make things like the eMac G4 work which has a built-in monitor which 
requires a fixed line frequency but doesn't provide data via DDC - the 
EDID block is hardcoded into the OF tree. The driver is supposed to 
fall back to DDC if no EDID property is present so it needs to parse 
binary EDID data anyway, that's why I didn't bother parsing them before 
putting them into a property.
The only case where this is different ( as in - we can program video 
modes but don't know how to do DDC ) is machfb - not all mach64 support 
DDC2 and those supporting it do so in various different and largely 
undocumented ways, usually abusing gpio pins in the DAC or the graphics 
controller itself so there we use firmware supplied EDID data 
exclusively but the normal case would be to check the property, then 
fall back to DDC2.
Of course it may make sense to change the EDID parser in dev/videomode 
to put its results into a dictionary but that's work for another day.

have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iQEVAwUBRhhm5MpnzkX8Yg2nAQKaUQf7BSUcuIOWRmUpeiOCfv8F1mkZk5ipvCYV
UTanN0YEdGbOeSldDsQZ7uZhTcd85WWIrtr3lSXbdpgoy/Q98XHN/5QrRcY81UA9
H8DFqx4mBbFU3QANcM6cs87O3T8NCw24KbikqPiq1YJWoCX7BxkvUW9YeQQ3m785
/KejA9waC7LJVAWxiqyrDJ0hTFtrlD9W3xHwuZolc6Wf2cz0hUyZ3iQ91GCA4r9I
57NStht/RPNoju3EmZQwJKRyzGb5s0IBtukLXPWRPrhx+mwsH4x+toI5/Wzu2QGp
lGO7dRk6CZmVKndPWy7A4NhkszrJ6dyrOhjx9I1GSR4wC7qEojsk3Q==
=qpkL
-----END PGP SIGNATURE-----