提交 36ac4ad3 编写于 作者: M Marc-André Lureau 提交者: malc

hda: do not mix output and input streams, RHBZ #740493

Windows 7 may use the same stream number for input and output.
That will result in lot of garbage on playback.

The hardcoded value of 4 needs to be in sync with GCAP streams
description and IN/OUT registers.
Signed-off-by: NMarc-Andr? Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Nmalc <av1474@comtv.ru>
上级 952e849c
......@@ -389,14 +389,15 @@ static bool intel_hda_xfer(HDACodecDevice *dev, uint32_t stnr, bool output,
{
HDACodecBus *bus = DO_UPCAST(HDACodecBus, qbus, dev->qdev.parent_bus);
IntelHDAState *d = container_of(bus, IntelHDAState, codecs);
IntelHDAStream *st = NULL;
target_phys_addr_t addr;
uint32_t s, copy, left;
IntelHDAStream *st;
bool irq = false;
for (s = 0; s < ARRAY_SIZE(d->st); s++) {
if (stnr == ((d->st[s].ctl >> 20) & 0x0f)) {
st = d->st + s;
st = output ? d->st + 4 : d->st;
for (s = 0; s < 4; s++) {
if (stnr == ((st[s].ctl >> 20) & 0x0f)) {
st = st + s;
break;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册