Revision fa0ce55c hw/intel-hda.c
b/hw/intel-hda.c | ||
---|---|---|
24 | 24 |
#include "audiodev.h" |
25 | 25 |
#include "intel-hda.h" |
26 | 26 |
#include "intel-hda-defs.h" |
27 |
#include "dma.h" |
|
27 | 28 |
|
28 | 29 |
/* --------------------------------------------------------------------- */ |
29 | 30 |
/* hda bus */ |
... | ... | |
328 | 329 |
|
329 | 330 |
rp = (d->corb_rp + 1) & 0xff; |
330 | 331 |
addr = intel_hda_addr(d->corb_lbase, d->corb_ubase); |
331 |
verb = ldl_le_phys(addr + 4*rp);
|
|
332 |
verb = ldl_le_pci_dma(&d->pci, addr + 4*rp);
|
|
332 | 333 |
d->corb_rp = rp; |
333 | 334 |
|
334 | 335 |
dprint(d, 2, "%s: [rp 0x%x] verb 0x%08x\n", __FUNCTION__, rp, verb); |
... | ... | |
360 | 361 |
ex = (solicited ? 0 : (1 << 4)) | dev->cad; |
361 | 362 |
wp = (d->rirb_wp + 1) & 0xff; |
362 | 363 |
addr = intel_hda_addr(d->rirb_lbase, d->rirb_ubase); |
363 |
stl_le_phys(addr + 8*wp, response);
|
|
364 |
stl_le_phys(addr + 8*wp + 4, ex);
|
|
364 |
stl_le_pci_dma(&d->pci, addr + 8*wp, response);
|
|
365 |
stl_le_pci_dma(&d->pci, addr + 8*wp + 4, ex);
|
|
365 | 366 |
d->rirb_wp = wp; |
366 | 367 |
|
367 | 368 |
dprint(d, 2, "%s: [wp 0x%x] response 0x%x, extra 0x%x\n", |
... | ... | |
426 | 427 |
dprint(d, 3, "dma: entry %d, pos %d/%d, copy %d\n", |
427 | 428 |
st->be, st->bp, st->bpl[st->be].len, copy); |
428 | 429 |
|
429 |
cpu_physical_memory_rw(st->bpl[st->be].addr + st->bp, |
|
430 |
buf, copy, !output); |
|
430 |
pci_dma_rw(&d->pci, st->bpl[st->be].addr + st->bp, buf, copy, !output); |
|
431 | 431 |
st->lpib += copy; |
432 | 432 |
st->bp += copy; |
433 | 433 |
buf += copy; |
... | ... | |
449 | 449 |
} |
450 | 450 |
if (d->dp_lbase & 0x01) { |
451 | 451 |
addr = intel_hda_addr(d->dp_lbase & ~0x01, d->dp_ubase); |
452 |
stl_le_phys(addr + 8*s, st->lpib);
|
|
452 |
stl_le_pci_dma(&d->pci, addr + 8*s, st->lpib);
|
|
453 | 453 |
} |
454 | 454 |
dprint(d, 3, "dma: --\n"); |
455 | 455 |
|
... | ... | |
471 | 471 |
g_free(st->bpl); |
472 | 472 |
st->bpl = g_malloc(sizeof(bpl) * st->bentries); |
473 | 473 |
for (i = 0; i < st->bentries; i++, addr += 16) { |
474 |
cpu_physical_memory_read(addr, buf, 16);
|
|
474 |
pci_dma_read(&d->pci, addr, buf, 16);
|
|
475 | 475 |
st->bpl[i].addr = le64_to_cpu(*(uint64_t *)buf); |
476 | 476 |
st->bpl[i].len = le32_to_cpu(*(uint32_t *)(buf + 8)); |
477 | 477 |
st->bpl[i].flags = le32_to_cpu(*(uint32_t *)(buf + 12)); |
Also available in: Unified diff