struct BM_MAPPING *pMapping, u32 uFlags, u32 dev_vaddr_alignment,
struct IMG_DEV_VIRTADDR *pDevVAddr)
{
- struct PVRSRV_DEVICE_NODE *psDeviceNode;
-#ifdef PDUMP
- u32 ui32PDumpSize = pMapping->uSize;
-#endif
-
- psDeviceNode = pBMContext->psDeviceNode;
+ struct PVRSRV_DEVICE_NODE *psDeviceNode = pBMContext->psDeviceNode;
if (uFlags & PVRSRV_MEM_INTERLEAVED)
-
pMapping->uSize *= 2;
-#ifdef PDUMP
- if (uFlags & PVRSRV_MEM_DUMMY)
-
- ui32PDumpSize = pMapping->pBMHeap->sDevArena.ui32DataPageSize;
-#endif
if (!psDeviceNode->pfnMMUAlloc(pMapping->pBMHeap->pMMUHeap,
pMapping->uSize, 0, dev_vaddr_alignment,
return IMG_FALSE;
}
- PDUMPMALLOCPAGES(psDeviceNode->sDevId.eDeviceType,
- pMapping->DevVAddr.uiAddr, pMapping->CpuVAddr,
- pMapping->hOSMemHandle, ui32PDumpSize,
- pMapping->pBMHeap->sDevArena.ui32DataPageSize,
- (void *)pMapping);
+#ifdef PDUMP
+ {
+ u32 ui32PDumpSize = pMapping->uSize;
+
+ if (uFlags & PVRSRV_MEM_DUMMY)
+ ui32PDumpSize =
+ pMapping->pBMHeap->sDevArena.ui32DataPageSize;
+
+ PDUMPMALLOCPAGES(psDeviceNode->sDevId.eDeviceType,
+ pMapping->DevVAddr.uiAddr, pMapping->CpuVAddr,
+ pMapping->hOSMemHandle, ui32PDumpSize,
+ pMapping->pBMHeap->sDevArena.ui32DataPageSize,
+ (void *)pMapping);
+ }
+#endif
switch (pMapping->eCpuMemoryOrigin) {
case hm_wrapped:
struct PVRSRV_DEVICE_NODE *psDeviceNode;
#ifdef PDUMP
u32 ui32PSize;
-#endif
-
-#ifdef PDUMP
if (pMapping->ui32Flags & PVRSRV_MEM_DUMMY)
ui32PSize = pMapping->pBMHeap->sDevArena.ui32DataPageSize;
struct DEV_ARENA_DESCRIPTOR *psDevArena;
};
-
-#if defined(PDUMP)
-static void MMU_PDumpPageTables(struct MMU_HEAP *pMMUHeap,
- struct IMG_DEV_VIRTADDR DevVAddr, size_t uSize,
- IMG_BOOL bForUnmap, void *hUniqueTag);
-#endif
-
#define PAGE_TEST 0
MMU_InvalidateDirectoryCache(psMMUContext->psDevInfo);
}
+#if defined(PDUMP)
+static void MMU_PDumpPageTables(struct MMU_HEAP *pMMUHeap,
+ struct IMG_DEV_VIRTADDR DevVAddr,
+ size_t uSize, IMG_BOOL bForUnmap, void *hUniqueTag)
+{
+ u32 ui32NumPTEntries;
+ u32 ui32PTIndex;
+ u32 *pui32PTEntry;
+
+ struct MMU_PT_INFO **ppsPTInfoList;
+ u32 ui32PDIndex;
+ u32 ui32PTDumpCount;
+
+ ui32NumPTEntries =
+ (uSize + SGX_MMU_PAGE_SIZE - 1) >> SGX_MMU_PAGE_SHIFT;
+
+ ui32PDIndex =
+ DevVAddr.uiAddr >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
+
+ ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
+
+ ui32PTIndex = (DevVAddr.uiAddr & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
+
+ PDUMPCOMMENT("Page table mods (num entries == %08X) %s",
+ ui32NumPTEntries, bForUnmap ? "(for unmap)" : "");
+
+ while (ui32NumPTEntries > 0) {
+ struct MMU_PT_INFO *psPTInfo = *ppsPTInfoList++;
+
+ if (ui32NumPTEntries <= 1024 - ui32PTIndex)
+ ui32PTDumpCount = ui32NumPTEntries;
+ else
+ ui32PTDumpCount = 1024 - ui32PTIndex;
+
+ if (psPTInfo) {
+ pui32PTEntry = (u32 *)psPTInfo->PTPageCpuVAddr;
+ PDUMPMEM2(PVRSRV_DEVICE_TYPE_SGX,
+ (void *)&pui32PTEntry[ui32PTIndex],
+ ui32PTDumpCount * sizeof(u32), 0,
+ IMG_FALSE, PDUMP_PT_UNIQUETAG, hUniqueTag);
+ }
+
+ ui32NumPTEntries -= ui32PTDumpCount;
+
+ ui32PTIndex = 0;
+ }
+
+ PDUMPCOMMENT("Finished page table mods %s",
+ bForUnmap ? "(for unmap)" : "");
+}
+#endif
+
static void MMU_UnmapPagesAndFreePTs(struct MMU_HEAP *psMMUHeap,
struct IMG_DEV_VIRTADDR sDevVAddr,
u32 ui32PageCount, void *hUniqueTag)
}
-#if defined(PDUMP)
-static void MMU_PDumpPageTables(struct MMU_HEAP *pMMUHeap,
- struct IMG_DEV_VIRTADDR DevVAddr,
- size_t uSize, IMG_BOOL bForUnmap, void *hUniqueTag)
-{
- u32 ui32NumPTEntries;
- u32 ui32PTIndex;
- u32 *pui32PTEntry;
-
- struct MMU_PT_INFO **ppsPTInfoList;
- u32 ui32PDIndex;
- u32 ui32PTDumpCount;
-
- ui32NumPTEntries =
- (uSize + SGX_MMU_PAGE_SIZE - 1) >> SGX_MMU_PAGE_SHIFT;
-
- ui32PDIndex =
- DevVAddr.uiAddr >> (SGX_MMU_PAGE_SHIFT + SGX_MMU_PT_SHIFT);
-
- ppsPTInfoList = &pMMUHeap->psMMUContext->apsPTInfoList[ui32PDIndex];
-
- ui32PTIndex = (DevVAddr.uiAddr & SGX_MMU_PT_MASK) >> SGX_MMU_PAGE_SHIFT;
-
- PDUMPCOMMENT("Page table mods (num entries == %08X) %s",
- ui32NumPTEntries, bForUnmap ? "(for unmap)" : "");
-
- while (ui32NumPTEntries > 0) {
- struct MMU_PT_INFO *psPTInfo = *ppsPTInfoList++;
-
- if (ui32NumPTEntries <= 1024 - ui32PTIndex)
- ui32PTDumpCount = ui32NumPTEntries;
- else
- ui32PTDumpCount = 1024 - ui32PTIndex;
-
- if (psPTInfo) {
- pui32PTEntry = (u32 *)psPTInfo->PTPageCpuVAddr;
- PDUMPMEM2(PVRSRV_DEVICE_TYPE_SGX,
- (void *)&pui32PTEntry[ui32PTIndex],
- ui32PTDumpCount * sizeof(u32), 0,
- IMG_FALSE, PDUMP_PT_UNIQUETAG, hUniqueTag);
- }
-
- ui32NumPTEntries -= ui32PTDumpCount;
-
- ui32PTIndex = 0;
- }
-
- PDUMPCOMMENT("Finished page table mods %s",
- bForUnmap ? "(for unmap)" : "");
-}
-#endif
-
static void MMU_MapPage(struct MMU_HEAP *pMMUHeap,
struct IMG_DEV_VIRTADDR DevVAddr,
struct IMG_DEV_PHYADDR DevPAddr, u32 ui32MemFlags)