diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2009-08-01 18:45:16 +0800 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-08-03 08:26:13 +0200 |
commit | deadff1665491afce124a8ff83f00f784161f660 (patch) | |
tree | b0de54cef8d75623f5839651331b31018e1ea217 /sound/pci/hda/hda_codec.c | |
parent | ce577e8cf5ddb4216553c9d563a9835d6de70ffa (diff) | |
download | linux-3.10-deadff1665491afce124a8ff83f00f784161f660.tar.gz linux-3.10-deadff1665491afce124a8ff83f00f784161f660.tar.bz2 linux-3.10-deadff1665491afce124a8ff83f00f784161f660.zip |
ALSA: hda: track CIRB/CORB command/response states for each codec
Recently we hit a bug in our dev board, whose HDMI codec#3 may emit
redundant/spurious responses, which were then taken as responses to
command for another onboard Realtek codec#2, and mess up both codecs.
Extend the azx_rb.cmds and azx_rb.res to array and track each codec's
commands/responses separately. This helps keep good codec safe from
broken ones.
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 88480c0c58a..c7df01b72ca 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -174,7 +174,7 @@ static int codec_exec_verb(struct hda_codec *codec, unsigned int cmd, mutex_lock(&bus->cmd_mutex); err = bus->ops.command(bus, cmd); if (!err && res) - *res = bus->ops.get_response(bus); + *res = bus->ops.get_response(bus, codec->addr); mutex_unlock(&bus->cmd_mutex); snd_hda_power_down(codec); if (res && *res == -1 && bus->rirb_error) { |