On Tue, Jun 03, 2014 at 01:42:03AM +0000, Lin, Mengdong wrote: > > -----Original Message----- > > From: Daniel Vetter [mailto:daniel.vet...@ffwll.ch] > > > > Hi Daniel, > > > > > > Would you please share more info about your idea? > > > > > > - What would be an avsink device represent here? > > > E.g. on Intel platforms, will the whole display device have a child > > > avsink device or multiple avsink devices for each DDI port? > > > > My idea would be to have one for each output pipe (i.e. the link between > > audio and gfx), not one per ddi. Gfx driver would then let audio know > > when a screen is connected and which one (e.g. exact model serial from > > edid). > > This is somewhat important for dp mst where there's no longer a fixed > > relationship between audio pin and screen > > Thanks. But if we use avsink device, I prefer to have an avsink device per > DDI or several avsink devices per DDI, > It's because > 1. Without DP MST, there is a fixed mapping between each audio codec pin and > DDI; > 2. With DP MST, the above pin: DDI mapping is still valid (at least on Intel > platforms), > and there is also a fixed mapping between each device (screen) connected to > a pin/DDI. > 3. HD-Audio driver creates a PCM (audio stream) devices for each pin. > Keeping this behavior can make audio driver works on platforms without > implementing the sound/gfx sync channel. > And I guess in the future the audio driver will creates more than one PCM > devices for a DP MST-capable pin, according how many devices a DDI can > support. > > 4. Display mode change can change the pipe connected to a DDI even if the > monitor stays on the same DDI, > If we have an avsink device per pipe, the audio driver will have to check > another avsink device for this case. It seems not convenient.
All this can also be solved by making the connector/avsink/sound pcm known to userspace and let userspace figure it out. A few links in sysfs should be good enough, plus exposing the full edid on the sound pcm side (so that userspace can compare the serial number in the edid). > > > - And for the relationship between audio driver and the avsink device, > > > which would be the master and which would be the component? > > > > 1:1 for avsink:alsa pin (iirc it's called a pin, not sure about the name). > > That way the audio driver has a clear point for getting at the eld and > > similar information. > > Since the audio driver usually already binds to some device (PCI or platform > device), > I think the audio driver cannot bind to the new avsink devices created by > display driver, and we need a new driver to handle these device and > communication. > > While the display driver creates the new endpoint "avsink" devices, the audio > driver can also create the same number of audio endpoint devices. > And we could let the audio endpoint device be the master and its peer display > endpoint device be the component. > Thus the master/component framework can help us to bind/unbind each pair of > display/audio endpoint devices. > > Is it doable? If okay, I'll modify the RFC and see if there are other gaps. Yeah, that should be doable. gfx creates avsink devices, audio binds to them using the component framework. > > > In addition, the component framework does not touch PM now. > > > And introducing PM to the component framework seems not easy since > > > there can be potential conflict caused by parent-child relationship of > > > the involved devices. > > > > Yeah, the entire PM situation seems to be a bit bad. It also looks like on > > resume/suspend we still have problems, at least on the audio side since > > we need to coordinate between 2 completel different underlying devices. > > But at least with the parent->child relationship we have a guranatee that > > the avsink won't be suspended after the gfx device is already off. > > -Daniel > > Yes. You're right. > And we could find a way to hide the Intel-specific display "power well" > from the audio driver by using runtime PM API on these devices. Yeah, that's one of the goals a I have here. Cheers, Daneil -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx