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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel