Commit 63f4b3a4 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'topic/hda' into for-next

The updates of HD-audio drivers for 3.15
parents 4fa71c15 3d692451
...@@ -762,7 +762,7 @@ void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path, ...@@ -762,7 +762,7 @@ void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path,
AC_PWRST_D0); AC_PWRST_D0);
} }
if (enable && path->multi[i]) if (enable && path->multi[i])
snd_hda_codec_write_cache(codec, nid, 0, snd_hda_codec_update_cache(codec, nid, 0,
AC_VERB_SET_CONNECT_SEL, AC_VERB_SET_CONNECT_SEL,
path->idx[i]); path->idx[i]);
if (has_amp_in(codec, path, i)) if (has_amp_in(codec, path, i))
......
...@@ -834,18 +834,6 @@ static unsigned int azx_command_addr(u32 cmd) ...@@ -834,18 +834,6 @@ static unsigned int azx_command_addr(u32 cmd)
return addr; return addr;
} }
static unsigned int azx_response_addr(u32 res)
{
unsigned int addr = res & 0xf;
if (addr >= AZX_MAX_CODECS) {
snd_BUG();
addr = 0;
}
return addr;
}
/* send a command */ /* send a command */
static int azx_corb_send_cmd(struct hda_bus *bus, u32 val) static int azx_corb_send_cmd(struct hda_bus *bus, u32 val)
{ {
...@@ -907,8 +895,15 @@ static void azx_update_rirb(struct azx *chip) ...@@ -907,8 +895,15 @@ static void azx_update_rirb(struct azx *chip)
rp = chip->rirb.rp << 1; /* an RIRB entry is 8-bytes */ rp = chip->rirb.rp << 1; /* an RIRB entry is 8-bytes */
res_ex = le32_to_cpu(chip->rirb.buf[rp + 1]); res_ex = le32_to_cpu(chip->rirb.buf[rp + 1]);
res = le32_to_cpu(chip->rirb.buf[rp]); res = le32_to_cpu(chip->rirb.buf[rp]);
addr = azx_response_addr(res_ex); addr = res_ex & 0xf;
if (res_ex & ICH6_RIRB_EX_UNSOL_EV) if ((addr >= AZX_MAX_CODECS) || !(chip->codec_mask & (1 << addr))) {
snd_printk(KERN_ERR SFX "%s: spurious response %#x:%#x, rp = %d, wp = %d",
pci_name(chip->pci),
res, res_ex,
chip->rirb.rp, wp);
snd_BUG();
}
else if (res_ex & ICH6_RIRB_EX_UNSOL_EV)
snd_hda_queue_unsol_event(chip->bus, res, res_ex); snd_hda_queue_unsol_event(chip->bus, res, res_ex);
else if (chip->rirb.cmds[addr]) { else if (chip->rirb.cmds[addr]) {
chip->rirb.res[addr] = res; chip->rirb.res[addr] = res;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment