summaryrefslogtreecommitdiff
path: root/shared-core
AgeCommit message (Expand)Author
2006-12-27nouveau: return the *actual* type of memory alloc'd to userspaceBen Skeggs
2006-12-26nouveau: Alloc cmdbuf for each channel individuallyBen Skeggs
2006-12-21nouveau: save/restore endianness flag on FIFO switchBen Skeggs
2006-12-20Some via PCI posting flushes.Thomas Hellstrom
2006-12-20Merge branch 'nouveau-1'Dave Airlie
2006-12-19fixup i915 return values from kernelDave Airlie
2006-12-19fix comment in r128Dave Airlie
2006-12-19fix some sizes in sis_drv.hDave Airlie
2006-12-19remove inline from large functionDave Airlie
2006-12-19make a savage function static from kernelDave Airlie
2006-12-19fix missing DRM_ERR from kernelDave Airlie
2006-12-14Unify radeon offset checking.Michel Dänzer
2006-12-12Port remaining NV4 RAMIN access from the ddx into the drm.Ben Skeggs
2006-12-03Merge the pciid work.Stephane Marchesin
2006-12-01Unshare drm_drawable.c again for now.Michel Dänzer
2006-11-30Use nouveau_mem.c to allocate RAMIN.Ben Skeggs
2006-11-30Wrap access to objects in RAMIN.Ben Skeggs
2006-11-28For nv10, bit 16 of RAMFC need to be set for 64 bytes fifo context.Matthieu Castet
2006-11-27i915_vblank_tasklet: Try harder to avoid tearing.Michel Dänzer
2006-11-21Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/dr...Stephane Marchesin
2006-11-21Don't spam dmesg if PMC_INTSTAT is 0Ben Skeggs
2006-11-18Only return FIFO number if the FIFO is marked as in use..Ben Skeggs
2006-11-18Check some return vals, fixes a couple of oopses.Ben Skeggs
2006-11-17Dump some useful info when a PGRAPH error occurs.Ben Skeggs
2006-11-16Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/dr...Stephane Marchesin
2006-11-14Completely untested NV10/20/30 FIFO context switching changes.Ben Skeggs
2006-11-14Restructure initialisation a bit.Ben Skeggs
2006-11-14Merge branch 'nouveau-1' of git+ssh://git.freedesktop.org/git/mesa/drm into n...Ben Skeggs
2006-11-14Hack around yet another "X restart borkage without nouveau.ko reload" problem.Ben Skeggs
2006-11-11Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm i...Stephane Marchesin
2006-11-10Fix memory detection on TNT2 M64/TNT2 vanta.Stephane Marchesin
2006-11-07Add drm_u64_t typedef on non-linux to fix libdrm build.Eric Anholt
2006-11-06drm: fixup page alignment on SAREA map on ppc64Dave Airlie
2006-11-06fixup fifo size so it is page alignedDave Airlie
2006-11-06use a uint64_t for this not a pointerDave Airlie
2006-11-06Merge branch 'master' into nouveau-1Dave Airlie
2006-11-06Leave the bottom 64kb of RAMIN untouched.Ben Skeggs
2006-11-05nouveau: add compat ioc32 supportDave Airlie
2006-11-05add powerpc mmio swapper to NV_READ/WRITE macrosDave Airlie
2006-11-04Add some getparams.Stephane Marchesin
2006-11-04Move the context object creation flag handling to the drm.Stephane Marchesin
2006-10-27Reserve the new IOCTLs also for *bsd.Thomas Hellstrom
2006-10-27Last minute changes to support multi-page size buffer offset alignments.Thomas Hellstrom
2006-10-19Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drmThomas Hellstrom
2006-10-18Merging drm-ttm-0-2-branchThomas Hellstrom
2006-10-17Remove max number of locked pages check and call, sinceThomas Hellstrom
2006-10-18Remove hack which delays activation of a additional channel. The previously ...Ben Skeggs
2006-10-18Oops, we have more than 4 subchannels..Ben Skeggs
2006-10-17Useful output on a FIFO error interrupt.Ben Skeggs
2006-10-17typoBen Skeggs
, &dmah->busaddr, GFP_KERNEL | __GFP_COMP); #ifdef DRM_DEBUG_MEMORY if (dmah->vaddr == NULL) { spin_lock(&drm_mem_lock); ++drm_mem_stats[area].fail_count; spin_unlock(&drm_mem_lock); kfree(dmah); return NULL; } spin_lock(&drm_mem_lock); ++drm_mem_stats[area].succeed_count; drm_mem_stats[area].bytes_allocated += size; drm_ram_used += size; spin_unlock(&drm_mem_lock); #else if (dmah->vaddr == NULL) { kfree(dmah); return NULL; } #endif memset(dmah->vaddr, 0, size); /* XXX - Is virt_to_page() legal for consistent mem? */ /* Reserve */ for (addr = (unsigned long)dmah->vaddr, sz = size; sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) { SetPageReserved(virt_to_page(addr)); } return dmah; } EXPORT_SYMBOL(drm_pci_alloc); /** * \brief Free a PCI consistent memory block without freeing its descriptor. * * This function is for internal use in the Linux-specific DRM core code. */ void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t *dmah) { unsigned long addr; size_t sz; #ifdef DRM_DEBUG_MEMORY int area = DRM_MEM_DMA; int alloc_count; int free_count; #endif if (!dmah->vaddr) { #ifdef DRM_DEBUG_MEMORY DRM_MEM_ERROR(area, "Attempt to free address 0\n"); #endif } else { /* XXX - Is virt_to_page() legal for consistent mem? */ /* Unreserve */ for (addr = (unsigned long)dmah->vaddr, sz = dmah->size; sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) { ClearPageReserved(virt_to_page(addr)); } dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr, dmah->busaddr); } #ifdef DRM_DEBUG_MEMORY spin_lock(&drm_mem_lock); free_count = ++drm_mem_stats[area].free_count; alloc_count = drm_mem_stats[area].succeed_count; drm_mem_stats[area].bytes_freed += size; drm_ram_used -= size; spin_unlock(&drm_mem_lock); if (free_count > alloc_count) { DRM_MEM_ERROR(area, "Excess frees: %d frees, %d allocs\n", free_count, alloc_count); } #endif } /** * \brief Free a PCI consistent memory block */ void drm_pci_free(struct drm_device *dev, drm_dma_handle_t *dmah) { __drm_pci_free(dev, dmah); kfree(dmah); } EXPORT_SYMBOL(drm_pci_free); /*@}*/