Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 257649
b: refs/heads/master
c: 3aaf898
h: refs/heads/master
i:
  257647: 3ef4453
v: v3
  • Loading branch information
Stephen Warren authored and Takashi Iwai committed Jun 6, 2011
1 parent 845ee36 commit abc91a3
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 74b654c957e901e7596ebc7b9f5a1bea62b20509
refs/heads/master: 3aaf898025b1f75f30457e00e890c9f7c43567ab
75 changes: 66 additions & 9 deletions trunk/sound/pci/hda/patch_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1163,6 +1163,63 @@ static int patch_generic_hdmi(struct hda_codec *codec)
return 0;
}

/*
* Shared non-generic implementations
*/

static int simple_playback_build_pcms(struct hda_codec *codec)
{
struct hdmi_spec *spec = codec->spec;
struct hda_pcm *info = spec->pcm_rec;
int i;

codec->num_pcms = spec->num_cvts;
codec->pcm_info = info;

for (i = 0; i < codec->num_pcms; i++, info++) {
unsigned int chans;
struct hda_pcm_stream *pstr;

chans = get_wcaps(codec, spec->cvt[i]);
chans = get_wcaps_channels(chans);

info->name = generic_hdmi_pcm_names[i];
info->pcm_type = HDA_PCM_TYPE_HDMI;
pstr = &info->stream[SNDRV_PCM_STREAM_PLAYBACK];
snd_BUG_ON(!spec->pcm_playback);
*pstr = *spec->pcm_playback;
pstr->nid = spec->cvt[i];
if (pstr->channels_max <= 2 && chans && chans <= 16)
pstr->channels_max = chans;
}

return 0;
}

static int simple_playback_build_controls(struct hda_codec *codec)
{
struct hdmi_spec *spec = codec->spec;
int err;
int i;

for (i = 0; i < codec->num_pcms; i++) {
err = snd_hda_create_spdif_out_ctls(codec,
spec->cvt[i],
spec->cvt[i]);
if (err < 0)
return err;
}

return 0;
}

static void simple_playback_free(struct hda_codec *codec)
{
struct hdmi_spec *spec = codec->spec;

kfree(spec);
}

/*
* Nvidia specific implementations
*/
Expand Down Expand Up @@ -1475,17 +1532,17 @@ static const struct hda_pcm_stream nvhdmi_pcm_playback_2ch = {
};

static const struct hda_codec_ops nvhdmi_patch_ops_8ch_7x = {
.build_controls = generic_hdmi_build_controls,
.build_pcms = generic_hdmi_build_pcms,
.build_controls = simple_playback_build_controls,
.build_pcms = simple_playback_build_pcms,
.init = nvhdmi_7x_init,
.free = generic_hdmi_free,
.free = simple_playback_free,
};

static const struct hda_codec_ops nvhdmi_patch_ops_2ch = {
.build_controls = generic_hdmi_build_controls,
.build_pcms = generic_hdmi_build_pcms,
.build_controls = simple_playback_build_controls,
.build_pcms = simple_playback_build_pcms,
.init = nvhdmi_7x_init,
.free = generic_hdmi_free,
.free = simple_playback_free,
};

static int patch_nvhdmi_2ch(struct hda_codec *codec)
Expand Down Expand Up @@ -1596,10 +1653,10 @@ static int atihdmi_init(struct hda_codec *codec)
}

static const struct hda_codec_ops atihdmi_patch_ops = {
.build_controls = generic_hdmi_build_controls,
.build_pcms = generic_hdmi_build_pcms,
.build_controls = simple_playback_build_controls,
.build_pcms = simple_playback_build_pcms,
.init = atihdmi_init,
.free = generic_hdmi_free,
.free = simple_playback_free,
};


Expand Down

0 comments on commit abc91a3

Please sign in to comment.