[PATCH 13/13] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver

Daniel Vetter daniel at ffwll.ch
Wed May 27 23:43:13 PDT 2015


On Wed, May 27, 2015 at 10:44:40PM +0100, Russell King - ARM Linux wrote:
> On Wed, May 27, 2015 at 11:29:52PM +0200, Daniel Vetter wrote:
> > The only issue that might be
> > there with your sw approach is that a concurrent probe/hotplug in drm
> > might free the edid and hence the eld, while the snd side is trying to
> > copy that.
> 
> Talking only about the particular case of dw-hdmi-ahb-audio...
> 
> The worst that may happen is that the ELD will be overwritten with an
> update on hotplug - it won't be freed unless the underlying connector
> is freed, as the eld is stored as an array inside struct drm_connector.
> Before the DRM connector is freed, we pull the audio driver's struct
> device, which will destroy the ALSA device.

Oh right I've forgotten that eld is stored as a full array and only the
edid floats around as a pointer in drm_connector. 

> Hopefully ALSA already copes gracefully with the removal of an in-use
> device... it should do, it's no different from having a USB audio device
> and you pull it out of the USB socket while the device is in-use.
> 
> (It's also worth noting as we're talking about this, that as the audio
> struct device is a child of the HDMI device, any PM activity will be
> correctly ordered: the child gets suspended before the parent... the
> audio device gets suspended before the video, and resume is of course
> the reverse order.)

Yeah, being able to control the nesting with DT seems so nice compared to
intel ...
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch



More information about the linux-arm-kernel mailing list