diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-06-01 11:14:20 -0600 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-06-06 12:58:09 +0200 |
commit | 2def8172c6611f2577260287ebf5dd3b63f7ef55 (patch) | |
tree | 1f45f1e5a5051a06ac7988de36227df581403c7d /sound/pci/hda/patch_hdmi.c | |
parent | 3aaf898025b1f75f30457e00e890c9f7c43567ab (diff) | |
download | blackbird-op-linux-2def8172c6611f2577260287ebf5dd3b63f7ef55.tar.gz blackbird-op-linux-2def8172c6611f2577260287ebf5dd3b63f7ef55.zip |
ALSA: hda: hdmi_eld_update_pcm_info: update a stream in place
A future change won't store an entire hda_pcm_stream just to represent
the capabilities of a codec; a custom data-structure will be used. To
ease that transition, modify hdmi_eld_update_pcm_info to expect the
hda_pcm_stream to be pre-initialized with the codec's capabilities, and
to update those capabilities in-place based on the ELD.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_hdmi.c')
-rw-r--r-- | sound/pci/hda/patch_hdmi.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 92fb105da1e0..338546531c17 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -815,20 +815,22 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo, if (!codec_pars->rates) *codec_pars = *hinfo; + /* Initially set the converter's capabilities */ + hinfo->channels_min = codec_pars->channels_min; + hinfo->channels_max = codec_pars->channels_max; + hinfo->rates = codec_pars->rates; + hinfo->formats = codec_pars->formats; + hinfo->maxbps = codec_pars->maxbps; + eld = &spec->sink_eld[idx]; if (!static_hdmi_pcm && eld->eld_valid) { - hdmi_eld_update_pcm_info(eld, hinfo, codec_pars); + snd_hdmi_eld_update_pcm_info(eld, hinfo); if (hinfo->channels_min > hinfo->channels_max || !hinfo->rates || !hinfo->formats) return -ENODEV; - } else { - /* fallback to the codec default */ - hinfo->channels_max = codec_pars->channels_max; - hinfo->rates = codec_pars->rates; - hinfo->formats = codec_pars->formats; - hinfo->maxbps = codec_pars->maxbps; } - /* store the updated parameters */ + + /* Store the updated parameters */ runtime->hw.channels_min = hinfo->channels_min; runtime->hw.channels_max = hinfo->channels_max; runtime->hw.formats = hinfo->formats; |