At Wed, 1 Jun 2011 11:14:15 -0600, Stephen Warren wrote:
This patchset implements a PCM-per-pin-widget model for all HDMI codecs that use the generic codec support. For most existing codecs, there is 1 pin and 1 converter per codec, so this change should have no functional impact. For some codecs (e.g. GeForce 520, Intel Ibex Peak) there are fewer converters than pins, and the default routing is for all pins to be mux'd from a single codec, so this patch allows:
a) Multiple PCMs to be used at once (1 per converter). Previously, only 1 PCM was created due to the default muxing.
b) A direct mapping from PCM device to pin, and hence to ELD data and connected monitor. This should enable simpler/better decisions re: which audio formats are supported for that PCM, since only 1 ELD has to be considered (previously, I think the ELDs other than from the first pin were simply ignored)
The very first change in the series is actually somewhat unrelated, but I noticed it while working on this, and I believe it's a correct change.
Thanks for the patches. Through a quick glance, all look OK to me. I'm going to try to review more and apply the patches in the next week.
Takashi
Stephen Warren (6): ALSA: hda: Gate ELD usage only by whether ELD is valid ALSA: hda: Allow multple SPDIF controls per codec ALSA: hda: Virtualize SPDIF out controls ALSA: hda: Separate generic and non-generic implementations ALSA: hda: hdmi_eld_update_pcm_info: update a stream in place ALSA: hda: HDMI: Support codecs with fewer cvts than pins
sound/pci/hda/hda_codec.c | 139 ++++++--- sound/pci/hda/hda_codec.h | 16 +- sound/pci/hda/hda_eld.c | 46 ++-- sound/pci/hda/hda_intel.c | 5 +- sound/pci/hda/hda_local.h | 8 +- sound/pci/hda/patch_analog.c | 4 +- sound/pci/hda/patch_ca0110.c | 3 +- sound/pci/hda/patch_cirrus.c | 3 +- sound/pci/hda/patch_cmedia.c | 4 +- sound/pci/hda/patch_conexant.c | 1 + sound/pci/hda/patch_hdmi.c | 704 ++++++++++++++++++++++++---------------- sound/pci/hda/patch_realtek.c | 1 + sound/pci/hda/patch_sigmatel.c | 4 +- sound/pci/hda/patch_via.c | 13 +- 14 files changed, 594 insertions(+), 357 deletions(-)