diff options
Diffstat (limited to 'driver')
-rw-r--r-- | driver/kmem.c | 6 | ||||
-rw-r--r-- | driver/pciDriver.h | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/driver/kmem.c b/driver/kmem.c index 805ace1..9bc1eb7 100644 --- a/driver/kmem.c +++ b/driver/kmem.c @@ -86,7 +86,8 @@ int pcidriver_kmem_alloc(pcidriver_privdata_t *privdata, kmem_handle_t *kmem_han kmem_handle->handle_id = kmem_entry->id; - kmem_handle->pa = (unsigned long)(kmem_entry->dma_handle); + kmem_handle->ba = (unsigned long)(kmem_entry->dma_handle); + kmem_handle->pa = virt_to_phys((void*)kmem_entry->cpua); kmem_handle->flags = KMEM_FLAG_REUSED; if (kmem_entry->refs&KMEM_REF_HW) kmem_handle->flags |= KMEM_FLAG_REUSED_HW; @@ -197,7 +198,8 @@ int pcidriver_kmem_alloc(pcidriver_privdata_t *privdata, kmem_handle_t *kmem_han kmem_entry->size = kmem_handle->size; kmem_entry->cpua = (unsigned long)retptr; - kmem_handle->pa = (unsigned long)(kmem_entry->dma_handle); + kmem_handle->ba = (unsigned long)(kmem_entry->dma_handle); + kmem_handle->pa = virt_to_phys(retptr); kmem_entry->mode = 1; if (kmem_handle->flags&KMEM_FLAG_REUSE) { diff --git a/driver/pciDriver.h b/driver/pciDriver.h index 5d6221e..371bd88 100644 --- a/driver/pciDriver.h +++ b/driver/pciDriver.h @@ -58,7 +58,7 @@ #include <linux/ioctl.h> -#define PCIDRIVER_INTERFACE_VERSION 1 /**< Driver API version, only the pcilib with the same driver interface version is allowed */ +#define PCIDRIVER_INTERFACE_VERSION 2 /**< Driver API version, only the pcilib with the same driver interface version is allowed */ /* Identifies the PCI-E Xilinx ML605 */ #define PCIE_XILINX_VENDOR_ID 0x10ee @@ -154,6 +154,7 @@ typedef struct { typedef struct { unsigned long type; unsigned long pa; + unsigned long ba; unsigned long size; unsigned long align; unsigned long use; |