[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 10/12] PCI IDE: Use PCI DMA stub functions
From: |
David Gibson |
Subject: |
[Qemu-devel] [PATCH 10/12] PCI IDE: Use PCI DMA stub functions |
Date: |
Fri, 14 Oct 2011 20:21:01 +1100 |
This updates the PCI IDE device emulation to use the explicit PCI DMA
wrapper to initialize its scatter/gathjer structure. This means this
driver should not need further changes when the sglist interface is
extended to support IOMMUs.
Signed-off-by: David Gibson <address@hidden>
---
hw/ide/pci.c | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index f133c42..0747e09 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -62,7 +62,8 @@ static int bmdma_prepare_buf(IDEDMA *dma, int is_write)
} prd;
int l, len;
- qemu_sglist_init(&s->sg, s->nsector / (BMDMA_PAGE_SIZE / 512) + 1);
+ pci_dma_sglist_init(&s->sg, &bm->pci_dev->dev,
+ s->nsector / (BMDMA_PAGE_SIZE / 512) + 1);
s->io_buffer_size = 0;
for(;;) {
if (bm->cur_prd_len == 0) {
@@ -70,7 +71,7 @@ static int bmdma_prepare_buf(IDEDMA *dma, int is_write)
if (bm->cur_prd_last ||
(bm->cur_addr - bm->addr) >= BMDMA_PAGE_SIZE)
return s->io_buffer_size != 0;
- cpu_physical_memory_read(bm->cur_addr, (uint8_t *)&prd, 8);
+ pci_dma_read(&bm->pci_dev->dev, bm->cur_addr, (uint8_t *)&prd, 8);
bm->cur_addr += 8;
prd.addr = le32_to_cpu(prd.addr);
prd.size = le32_to_cpu(prd.size);
@@ -112,7 +113,7 @@ static int bmdma_rw_buf(IDEDMA *dma, int is_write)
if (bm->cur_prd_last ||
(bm->cur_addr - bm->addr) >= BMDMA_PAGE_SIZE)
return 0;
- cpu_physical_memory_read(bm->cur_addr, (uint8_t *)&prd, 8);
+ pci_dma_read(&bm->pci_dev->dev, bm->cur_addr, (uint8_t *)&prd, 8);
bm->cur_addr += 8;
prd.addr = le32_to_cpu(prd.addr);
prd.size = le32_to_cpu(prd.size);
@@ -127,11 +128,11 @@ static int bmdma_rw_buf(IDEDMA *dma, int is_write)
l = bm->cur_prd_len;
if (l > 0) {
if (is_write) {
- cpu_physical_memory_write(bm->cur_prd_addr,
- s->io_buffer + s->io_buffer_index,
l);
+ pci_dma_write(&bm->pci_dev->dev, bm->cur_prd_addr,
+ s->io_buffer + s->io_buffer_index, l);
} else {
- cpu_physical_memory_read(bm->cur_prd_addr,
- s->io_buffer + s->io_buffer_index,
l);
+ pci_dma_read(&bm->pci_dev->dev, bm->cur_prd_addr,
+ s->io_buffer + s->io_buffer_index, l);
}
bm->cur_prd_addr += l;
bm->cur_prd_len -= l;
--
1.7.6.3
- [Qemu-devel] [0/12] Preliminary work for IOMMU emulation support (v2), David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 04/12] ac97: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 05/12] es1370: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 01/12] Add stub functions for PCI device models to do PCI DMA, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 07/12] lsi53c895a: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 03/12] eepro100: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 06/12] e1000: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 12/12] usb-uhci: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 02/12] rtl8139: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 10/12] PCI IDE: Use PCI DMA stub functions,
David Gibson <=
- [Qemu-devel] [PATCH 08/12] pcnet-pci: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 11/12] usb-ehci: Use PCI DMA stub functions, David Gibson, 2011/10/14
- [Qemu-devel] [PATCH 09/12] intel-hda: Use PCI DMA stub functions, David Gibson, 2011/10/14
- Re: [Qemu-devel] [0/12] Preliminary work for IOMMU emulation support (v2), David Gibson, 2011/10/14
- Re: [Qemu-devel] [0/12] Preliminary work for IOMMU emulation support (v2), Alexander Graf, 2011/10/30