[GIT PULL FOR v3.19] R-Car DU changes

Daniel Vetter daniel at ffwll.ch
Mon Nov 24 05:09:39 PST 2014


On Mon, Nov 24, 2014 at 11:46:18AM +0200, Laurent Pinchart wrote:
> > - the interface looks rather backwards: Either this still does i2c reads,
> >   and then you'd just need a i2c-over-whatever adapter to make it work. Or
> >   you have other magic means to optain an edid block, in which case just
> >   do that and then feed the edid drm_add_edid_modes.
> 
> I have a magic way to get EDID over I2C :-) Basically the ADV7511 controls the 
> DDC bus, and exposes EDID data over I2C using vendor commands. To read an EDID 
> block I have to write an ADV7511 register over I2C with the block number, wait 
> for an interrupt, read a status register to check whether EDID data is 
> available or whether an error occurred, and then read EDID data from the 
> ADV7511 over I2C in 64-bytes chunks. This needs to be repeated for every 
> block. I thus can't use drm_get_edid() directly.

Sounds familiar. See the special ddc-over-sdvo i2c bus we register in
intel_sdvo.c, specifically look at intel_sdvo_init_ddc_proxy. It is a bit
of boilerplate, but in the end just amounts to 3 small functions and one
tiny vtable to wire it all up cleanly.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list