diff mbox

[10/10] intel-hda: Use PCI DMA stub functions

Message ID 1314853263-2086-11-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Commit Message

David Gibson Sept. 1, 2011, 5:01 a.m. UTC
This updates the intel-hda device emulation to use the explicit PCI DMA
functions, instead of directly calling physical memory access functions.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/intel-hda.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Comments

Gerd Hoffmann Sept. 1, 2011, 10:16 a.m. UTC | #1
On 09/01/11 07:01, David Gibson wrote:
> This updates the intel-hda device emulation to use the explicit PCI DMA
> functions, instead of directly calling physical memory access functions.

There are some calls to {st,ld}l_le_phys() which need conversion too.

cheers,
   Gerd
David Gibson Sept. 2, 2011, 1:42 a.m. UTC | #2
On Thu, Sep 01, 2011 at 12:16:25PM +0200, Gerd Hoffmann wrote:
> On 09/01/11 07:01, David Gibson wrote:
> >This updates the intel-hda device emulation to use the explicit PCI DMA
> >functions, instead of directly calling physical memory access functions.
> 
> There are some calls to {st,ld}l_le_phys() which need conversion
> too.

Ah, thanks for pointing those out.  I'll fold the fix into the next
iteration of my patchset.
diff mbox

Patch

diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index 4272204..392bfc5 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -24,6 +24,7 @@ 
 #include "audiodev.h"
 #include "intel-hda.h"
 #include "intel-hda-defs.h"
+#include "dma.h"
 
 /* --------------------------------------------------------------------- */
 /* hda bus                                                               */
@@ -425,8 +426,7 @@  static bool intel_hda_xfer(HDACodecDevice *dev, uint32_t stnr, bool output,
         dprint(d, 3, "dma: entry %d, pos %d/%d, copy %d\n",
                st->be, st->bp, st->bpl[st->be].len, copy);
 
-        cpu_physical_memory_rw(st->bpl[st->be].addr + st->bp,
-                               buf, copy, !output);
+        pci_dma_rw(&d->pci, st->bpl[st->be].addr + st->bp, buf, copy, !output);
         st->lpib += copy;
         st->bp += copy;
         buf += copy;
@@ -470,7 +470,7 @@  static void intel_hda_parse_bdl(IntelHDAState *d, IntelHDAStream *st)
     g_free(st->bpl);
     st->bpl = g_malloc(sizeof(bpl) * st->bentries);
     for (i = 0; i < st->bentries; i++, addr += 16) {
-        cpu_physical_memory_read(addr, buf, 16);
+        pci_dma_read(&d->pci, addr, buf, 16);
         st->bpl[i].addr  = le64_to_cpu(*(uint64_t *)buf);
         st->bpl[i].len   = le32_to_cpu(*(uint32_t *)(buf + 8));
         st->bpl[i].flags = le32_to_cpu(*(uint32_t *)(buf + 12));