summaryrefslogtreecommitdiff
path: root/shared-core
AgeCommit message (Expand)Author
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
2006-10-17Extend generality for more memory types.Thomas Hellstrom
2006-10-16dev->agp_buffer_map is not initialized for AGP DMA on savagesMichael Karcher
2006-10-17NV40: *Now* fifo ctx switching works for me..Ben Skeggs
2006-10-17NV40: FIFO context switching now WorksForMe(tm)Ben Skeggs
2006-10-17Setup NV40 RAMFC (in wrong location.. but anyway), rearrange the RAMFC setup ...Ben Skeggs
2006-10-17Some info on NV40's RAMFCBen Skeggs
2006-10-15Merge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouv...Stephane Marchesin
2006-10-14Again more work on context switches. They work, sometimes. And when they do t...Stephane Marchesin
2006-10-14remove config.h from build no longer exists kbuild does itDave Airlie
2006-10-14Add the missing breaks.Stephane Marchesin
2006-10-13Fix the fifo context size on nv10, nv20 and nv30.Stephane Marchesin
2006-10-14Fix some randomness in activating a second channel on NV40 (odd GET/PUT vals)...Ben Skeggs
2006-10-12Oops.Stephane Marchesin
1; bzero(info, sizeof *info); dev->sysctl = info; /* Add the sysctl node for DRI if it doesn't already exist */ drioid = SYSCTL_ADD_NODE( &info->ctx, &sysctl__hw_children, OID_AUTO, "dri", CTLFLAG_RW, NULL, "DRI Graphics"); if (!drioid) return 1; /* Find the next free slot under hw.dri */ i = 0; SLIST_FOREACH(oid, SYSCTL_CHILDREN(drioid), oid_link) { if (i <= oid->oid_arg2) i = oid->oid_arg2 + 1; } if (i>9) return 1; /* Add the hw.dri.x for our device */ info->name[0] = '0' + i; info->name[1] = 0; top = SYSCTL_ADD_NODE( &info->ctx, SYSCTL_CHILDREN(drioid), OID_AUTO, info->name, CTLFLAG_RW, NULL, NULL); if (!top) return 1; for (i = 0; i < DRM_SYSCTL_ENTRIES; i++) { oid = sysctl_add_oid( &info->ctx, SYSCTL_CHILDREN(top), OID_AUTO, DRM(sysctl_list)[i].name, CTLTYPE_INT | CTLFLAG_RD, dev, 0, DRM(sysctl_list)[i].f, "A", NULL); if (!oid) return 1; } return 0; } int DRM(sysctl_cleanup)(drm_device_t *dev) { int error; error = sysctl_ctx_free( &dev->sysctl->ctx ); DRM(free)(dev->sysctl, sizeof *dev->sysctl, DRM_MEM_DRIVER); dev->sysctl = NULL; return error; } static int DRM(name_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; char buf[128]; int error; if (dev->unique) { DRM_SYSCTL_PRINT("%s 0x%x %s", dev->name, dev2udev(dev->devnode), dev->unique); } else { DRM_SYSCTL_PRINT("%s 0x%x", dev->name, dev2udev(dev->devnode)); } SYSCTL_OUT(req, "", 1); return 0; } static int DRM(_vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_local_map_t *map; drm_map_list_entry_t *listentry; const char *types[] = { "FB", "REG", "SHM", "AGP", "SG" }; const char *type; int i=0; char buf[128]; int error; DRM_SYSCTL_PRINT("\nslot offset size type flags " "address mtrr\n"); if (dev->maplist != NULL) { TAILQ_FOREACH(listentry, dev->maplist, link) { map = listentry->map; if (map->type < 0 || map->type > 4) type = "??"; else type = types[map->type]; DRM_SYSCTL_PRINT("%4d 0x%08lx 0x%08lx %4.4s 0x%02x 0x%08lx ", i, map->offset, map->size, type, map->flags, (unsigned long)map->handle); if (map->mtrr < 0) { DRM_SYSCTL_PRINT("no\n"); } else { DRM_SYSCTL_PRINT("yes\n"); } i++; } } SYSCTL_OUT(req, "", 1); return 0; } static int DRM(vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; DRM_LOCK; ret = DRM(_vm_info)(oidp, arg1, arg2, req); DRM_UNLOCK; return ret; } /* drm_bufs_info is called whenever a process reads hw.dri.0.bufs. */ static int DRM(_bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_device_dma_t *dma = dev->dma; int i; char buf[128]; int error; if (!dma) return 0; DRM_SYSCTL_PRINT("\n o size count free segs pages kB\n"); for (i = 0; i <= DRM_MAX_ORDER; i++) { if (dma->bufs[i].buf_count) DRM_SYSCTL_PRINT("%2d %8d %5d %5d %5d %5d %5d\n", i, dma->bufs[i].buf_size, dma->bufs[i].buf_count, atomic_read(&dma->bufs[i] .freelist.count), dma->bufs[i].seg_count, dma->bufs[i].seg_count *(1 << dma->bufs[i].page_order), (dma->bufs[i].seg_count * (1 << dma->bufs[i].page_order)) * PAGE_SIZE / 1024); } DRM_SYSCTL_PRINT("\n"); for (i = 0; i < dma->buf_count; i++) { if (i && !(i%32)) DRM_SYSCTL_PRINT("\n"); DRM_SYSCTL_PRINT(" %d", dma->buflist[i]->list); } DRM_SYSCTL_PRINT("\n"); SYSCTL_OUT(req, "", 1); return 0; } static int DRM(bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; DRM_LOCK; ret = DRM(_bufs_info)(oidp, arg1, arg2, req); DRM_UNLOCK; return ret; } static int DRM(_clients_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_file_t *priv; char buf[128]; int error; DRM_SYSCTL_PRINT("\na dev pid uid magic ioctls\n"); TAILQ_FOREACH(priv, &dev->files, link) { DRM_SYSCTL_PRINT("%c %3d %5d %5d %10u %10lu\n", priv->authenticated ? 'y' : 'n', priv->minor, priv->pid, priv->uid, priv->magic, priv->ioctl_count); } SYSCTL_OUT(req, "", 1); return 0; } static int DRM(clients_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; DRM_LOCK; ret = DRM(_clients_info)(oidp, arg1, arg2, req); DRM_UNLOCK; return ret; } #elif defined(__NetBSD__) /* stub it out for now, sysctl is only for debugging */ int DRM(sysctl_init)(drm_device_t *dev) { return 0; } int DRM(sysctl_cleanup)(drm_device_t *dev) { return 0; } #endif