[alsa-devel] radeon multi-channel lpcm
tiwai at suse.de
Thu Sep 6 09:28:52 CEST 2012
At Thu, 6 Sep 2012 09:09:00 +0200,
Pierre Ossman wrote:
> On Thu, 06 Sep 2012 07:59:52 +0200
> Takashi Iwai <tiwai at suse.de> wrote:
> > At Wed, 5 Sep 2012 19:22:39 +0200,
> > Pierre Ossman wrote:
> > >
> > > Some follow up questions, to confirm I haven't confused things:
> > >
> > > - The ELD really needs to go into the hardware, not just end up in the
> > > hands of the audio driver? IOW, we cannot override this?
> > Usually ELD won't go to the hardware as is but translated in a
> > different way in the graphics side.
> > > - The HDA interface only defines reading the ELD, so writing it would
> > > have to be done by the graphics driver using some GPU interface?
> > Yes.
> > > If so, I need to poke the AMD guys as I couldn't find any information
> > > in the public documentation about writing the ELD.
> > It's not about "writing" ELD. If you got no valid ELD, it is the
> > graphics driver who didn't send it. The graphics hardware certainly
> > sends some audio information, and the graphics driver translates into
> > an ELD and notifies to the audio codec. This part is missing or
> > wrongly done, supposedly.
> I've studied the Intel driver to get some feel for it, and it seems to
> work like this:
> 1) The graphics driver gets the EDID data from the GPU.
> 2) The kernel constructs the ELD structure from the EDID.
> 3) The graphics driver writes the ELD to some GPU registers.
> 4) The audio driver reads the ELD via the HDA interface.
> But if you're saying that the hardware doesn't really need the ELD,
> then steps 3-4 could be replaced by a pure software channel.
No, what I meant is about the audio codec perspective. From the audio
codec, it has no direct hardware access to GPU that actually handles
the ELD register things. It always communicate via HD-audio verbs to
send/receive DIP bytes so the actual work is purely in the graphics
> This would
> be convenient as it is currently unknown how to do 3) on radeon.
> (2 is currently missing in the radeon driver, but it is trivial to add
Yeah, that's the big missing piece.
More information about the Alsa-devel