Ian Romanick [Tue, 7 Aug 2007 00:27:15 +0000 (17:27 -0700)]
Unify infrastructure for freeing on-card / GART memory.
Ian Romanick [Mon, 6 Aug 2007 23:56:20 +0000 (16:56 -0700)]
Release client memory in reclaim_buffers_idlelocked instead of preclose.
Ian Romanick [Mon, 6 Aug 2007 23:35:07 +0000 (16:35 -0700)]
Refactor xgi_(fb|pcie)_free_all into xgi_free_all.
Ian Romanick [Mon, 6 Aug 2007 23:17:23 +0000 (16:17 -0700)]
Replace per-heap semaphores with drm_device::struct_mutex.
Ian Romanick [Mon, 6 Aug 2007 23:09:05 +0000 (16:09 -0700)]
Unify infrastructure for allocating (not yet freeing) on-card / GART memory.
Ian Romanick [Mon, 6 Aug 2007 22:52:06 +0000 (15:52 -0700)]
Eliminate unnecessary function xgi_pcie_free_locked.
Ian Romanick [Mon, 6 Aug 2007 22:43:51 +0000 (15:43 -0700)]
Finish removing allocation "owner" infrastructure.
Ian Romanick [Mon, 6 Aug 2007 22:37:56 +0000 (15:37 -0700)]
Eliminate special-case handling of framebuffer (fake) allocation.
Ian Romanick [Mon, 6 Aug 2007 22:31:34 +0000 (15:31 -0700)]
Eliminate allocation "owner" usage.
Ian Romanick [Wed, 1 Aug 2007 00:27:00 +0000 (17:27 -0700)]
Refactor register dumping code.
Ian Romanick [Mon, 30 Jul 2007 19:01:52 +0000 (12:01 -0700)]
Move additional GE initialization into the kernel.
This code comes directly from the X server.
Ian Romanick [Mon, 30 Jul 2007 17:20:15 +0000 (10:20 -0700)]
Fix GE shut-down sequence.
When the GE is shut down, an empty command packet without a begin-link
must be sent. After this command is sent, wait for the hardware to go
idle. Finally, turn off the GE and disable MMIO.
Ian Romanick [Mon, 30 Jul 2007 17:02:46 +0000 (10:02 -0700)]
Use DRM_READ/DRM_WRITE macros instead of directly accessing MMIO space.
Ian Romanick [Mon, 30 Jul 2007 16:59:19 +0000 (09:59 -0700)]
Use OUT3C5B macro instead of assuming little-endian byte order.
Ian Romanick [Fri, 27 Jul 2007 22:45:59 +0000 (15:45 -0700)]
Convert to new ioctl interface between core DRM and device-specific module.
Ian Romanick [Fri, 27 Jul 2007 00:01:16 +0000 (17:01 -0700)]
Eliminate use of DRM_ERR.
Ian Romanick [Thu, 26 Jul 2007 23:58:59 +0000 (16:58 -0700)]
Eliminate unnecessary (and now wrong) call gto drm_sg_free.
Ian Romanick [Thu, 26 Jul 2007 23:58:28 +0000 (16:58 -0700)]
Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2
Conflicts:
linux-core/drmP.h
linux-core/drm_scatter.c
Dave Airlie [Thu, 26 Jul 2007 05:26:36 +0000 (15:26 +1000)]
drm/bo: set the req pointer for each buffer to validate
Dave Airlie [Thu, 26 Jul 2007 03:25:21 +0000 (13:25 +1000)]
drm: fix size argument for copy to/from user
Eric Anholt [Wed, 25 Jul 2007 19:54:15 +0000 (12:54 -0700)]
Improve the drawable test to use multiple drawables.
Eric Anholt [Sun, 22 Jul 2007 08:51:34 +0000 (09:51 +0100)]
Fix copy'n'paste-o in FreeBSD drawable code.
Ian Romanick [Tue, 24 Jul 2007 23:17:30 +0000 (16:17 -0700)]
Fix typo on previous commit. Sigh...
Ian Romanick [Tue, 24 Jul 2007 22:53:50 +0000 (15:53 -0700)]
Pass correct offset to xgi_find_pcie_virt.
The wrong offset was being passed to xgi_find_pcie_virt. This would
cause an oops in addFlush2D.
Ian Romanick [Tue, 24 Jul 2007 20:36:02 +0000 (13:36 -0700)]
Fix license formatting.
Ian Romanick [Tue, 24 Jul 2007 20:29:29 +0000 (13:29 -0700)]
Fix flags for serveral ioctls.
Ian Romanick [Tue, 24 Jul 2007 20:27:44 +0000 (13:27 -0700)]
Fix bug preventing X server from restarting.
The core DRM lastclose routine automatically destroys all mappings and
releases SG memory. XP10 DRM and DDX assumed this data stayed around
until module unload. xgi_bootstrap was reworked to recreate all these
mappings. In addition, the drm_addmap for the GART backing store was
moved into the kernel. This causes a change to the ioctl protocol and
a version bump.
Ian Romanick [Tue, 24 Jul 2007 01:50:52 +0000 (18:50 -0700)]
Minor log message clean up.
Ian Romanick [Tue, 24 Jul 2007 01:50:07 +0000 (18:50 -0700)]
Minor log message clean up.
Ian Romanick [Mon, 23 Jul 2007 20:26:28 +0000 (13:26 -0700)]
Eliminate XGI_CHECK_PCI_CONFIG.
Based on review comments from airlied, XGI_CHECK_PCI_CONFIG is
removed. He believes (and I tend to agree) that this is a largely
unnecessary workaround for a bug elsewhere.
Adrian Bunk [Mon, 23 Jul 2007 08:15:00 +0000 (18:15 +1000)]
drm_rmmap_ioctl(): remove dead code
This patch removes some obviously dead code spotted by the Coverity
checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Ian Romanick [Sun, 22 Jul 2007 06:00:01 +0000 (23:00 -0700)]
Bump version.
Ian Romanick [Sun, 22 Jul 2007 04:37:45 +0000 (21:37 -0700)]
Remove some extraneous debug messages.
Ian Romanick [Sun, 22 Jul 2007 04:36:11 +0000 (21:36 -0700)]
xgi_mem_alloc::offset is a hardware offset, so it should be u32, not long.
Ian Romanick [Sun, 22 Jul 2007 04:35:06 +0000 (21:35 -0700)]
Rename and document fields of xgi_cmdring_info.
Ian Romanick [Sun, 22 Jul 2007 03:39:22 +0000 (20:39 -0700)]
Make s_cmdring a field in the xgi_info structure instead of a global.
Ian Romanick [Sun, 22 Jul 2007 03:34:56 +0000 (20:34 -0700)]
Clean up xgi_cmd_info and associated code.
There were numerous unnecessary fields in xgi_cmd_info. The remaining
fields had pretty crummy names. Cut out the cruft, and rename the
rest. As a result, the unused parameter "triggerCounter" to
triggerHWCommandList can be removed.
Pekka Paalanen [Sat, 21 Jul 2007 20:13:25 +0000 (23:13 +0300)]
Fix misc ioctl issues, makes Nouveau run.
Debug print fix in drm_release().
Forgotten local variable init in drm_setversion().
Unnecessary put_user() in drm_addmap_ioctl().
ioctl->cmd check broken in drm_ioctl(); workaround.
Dave Airlie [Sat, 21 Jul 2007 12:11:41 +0000 (22:11 +1000)]
fix missing brace placement for IOC_IN
Dave Airlie [Sat, 21 Jul 2007 11:50:25 +0000 (21:50 +1000)]
fix drm no-compile due to BSD :-)
Eric Anholt [Fri, 20 Jul 2007 00:11:11 +0000 (17:11 -0700)]
Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.
The data is now in kernel space, copied in/out as appropriate according to the
This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal
with those failures. This also means that XFree86 4.2.0 support for i810 DRM
is lost.
Eric Anholt [Fri, 20 Jul 2007 13:39:25 +0000 (06:39 -0700)]
Replace filp in ioctl arguments with drm_file *file_priv.
As a fallout, replace filp storage with file_priv storage for "unique
identifier of a client" all over the DRM. There is a 1:1 mapping, so this
should be a noop. This could be a minor performance improvement, as everything
on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls
went the other direction.
Eric Anholt [Fri, 20 Jul 2007 13:42:18 +0000 (06:42 -0700)]
BSD: Replace symlink building with symlinks in git.
Eric Anholt [Fri, 20 Jul 2007 00:00:17 +0000 (17:00 -0700)]
Remove DRM_ERR OS macro.
This was used to make all ioctl handlers return -errno on linux and errno on
*BSD. Instead, just return -errno in shared code, and flip sign on return from
shared code to *BSD code.
Eric Anholt [Fri, 20 Jul 2007 19:55:51 +0000 (12:55 -0700)]
Fix linux spinlock macros after the last commit.
Ian Romanick [Fri, 20 Jul 2007 18:31:01 +0000 (11:31 -0700)]
Clean up flush command generation in addFlush2D.
Ian Romanick [Fri, 20 Jul 2007 18:29:16 +0000 (11:29 -0700)]
Clean up generation of begin commands in xgi_submit_cmdlist
Generate the begin command once in a temporary buffer. Then,
depending on whether the command is to be written directly to the
hardware or to a secondary buffer, copy to command to the correct place.
Ian Romanick [Fri, 20 Jul 2007 17:57:40 +0000 (10:57 -0700)]
Change handling of begin types slightly.
Moved the getCurBatchBeginPort before its only caller. Modified
function to return the command ID instead of the port offset.
Function also now assumes input begin type is value.
Added code to ioctl handler to validate begin type.
Ian Romanick [Fri, 20 Jul 2007 02:09:24 +0000 (19:09 -0700)]
Delete unused variable in xgi_driver_load.
Ian Romanick [Fri, 20 Jul 2007 02:08:47 +0000 (19:08 -0700)]
Fix error handing related to xgi_cmdlist_initialize.
xgi_cmdlist_initialize wasn't correctly checking for errors from
xgi_pcie_alloc. Furthermore, xgi_bootstrap, the one caller of
xgi_cmdlist_initialize, wasn't check its return value.
Ian Romanick [Fri, 20 Jul 2007 02:05:52 +0000 (19:05 -0700)]
Debug message and comment clean up in xgi_submit_cmdlist.
Ian Romanick [Thu, 19 Jul 2007 18:38:56 +0000 (11:38 -0700)]
Rework xgi_(pcie|fb)_free_all to prevent deadlock.
Ian Romanick [Thu, 19 Jul 2007 18:05:13 +0000 (11:05 -0700)]
Move MMIO drm_addmap (and code that depends on it) to xgi_bootstrap.
For reasons that I don't understand, the drm_addmap call would succeed
in xgi_driver_load, but writes to the map later would oops. Moving it
to xgi_bootstrap fixes this problem.
Ian Romanick [Thu, 19 Jul 2007 17:29:18 +0000 (10:29 -0700)]
Initial pass at converting driver to DRM infrastructure.
Eric Anholt [Thu, 19 Jul 2007 13:46:13 +0000 (06:46 -0700)]
FreeBSD warnings cleanup.
Eric Anholt [Thu, 19 Jul 2007 13:31:26 +0000 (06:31 -0700)]
Merge branch 'origin'
Eric Anholt [Thu, 19 Jul 2007 13:17:58 +0000 (06:17 -0700)]
FreeBSD: Fix the recently added drawable add/remove/update code.
Eric Anholt [Thu, 19 Jul 2007 13:17:04 +0000 (06:17 -0700)]
Add a test for drawable add, remove, and update.
Eric Anholt [Thu, 19 Jul 2007 13:02:20 +0000 (06:02 -0700)]
Fix the getclient test (Need this feature for future tests).
Eric Anholt [Thu, 19 Jul 2007 11:59:59 +0000 (04:59 -0700)]
Add some trivial regression tests, one of which fails.
Eric Anholt [Thu, 19 Jul 2007 10:36:57 +0000 (03:36 -0700)]
Add current BSD stuff to .gitignore.
Ben Skeggs [Thu, 19 Jul 2007 06:42:58 +0000 (16:42 +1000)]
nouveau/nv50: get non-default push buffer sizes working.
Eric Anholt [Wed, 18 Jul 2007 21:22:40 +0000 (14:22 -0700)]
Add dry-coded DRM drawable private information storage for FreeBSD.
With this, all modules build again.
Pekka Paalanen [Fri, 6 Jul 2007 17:33:32 +0000 (20:33 +0300)]
nouveau: Make nouveau_wait_for_idle() read PTIMER.
Following my nv28 kmmio dumps, nouveau_wait_for_idle() is modified to
read PTIMER and NV03_PMC_ENABLE. Also a timeout based on PTIMER value is
added, so wait_for_idle() cannot stall indefinitely (unless PTIMER is
halted). The timeout was selected as 1 giga-ticks, which for me is 1s.
Pekka Paalanen [Fri, 6 Jul 2007 16:34:15 +0000 (19:34 +0300)]
nouveau: Add read() method to Engine.timer.
This is not called from anywhere, yet.
Pekka Paalanen [Fri, 6 Jul 2007 10:57:31 +0000 (13:57 +0300)]
nouveau: Add bitfield names for NSOURCE and NSTATUS.
Name strings and pretty-printing in nouveau_graph_dump_trap_info().
Pekka Paalanen [Fri, 6 Jul 2007 09:47:53 +0000 (12:47 +0300)]
nouveau: Replace 0x00400104 and 0x00400108 with names.
NV03_PGRAPH_NSTATUS and NV03_PGRAPH_NSOURCE.
The prefix NV03 is chosen because nv10reg.h had no versioned prefix,
and the code using these registers does not check card_type.
Thomas Hellstrom [Wed, 18 Jul 2007 08:40:03 +0000 (10:40 +0200)]
Fix via dmablit when blit queue is full.
Fix by Simon Farnsworth, Bugzilla Bug #11542
http://bugs.freedesktop.org/show_bug.cgi?id=11542
Dave Airlie [Wed, 18 Jul 2007 05:49:45 +0000 (15:49 +1000)]
fix some missing whitespace/tab
Dave Airlie [Tue, 17 Jul 2007 23:46:16 +0000 (09:46 +1000)]
drm: idr stuff is upstream for 2.6.23
Dave Airlie [Tue, 17 Jul 2007 23:42:06 +0000 (09:42 +1000)]
drm: remove drm_u64_t, replace with uint64_t everwhere
This might break something, stdint.h inclusion in drm.h maybe required
but I'm not sure yet what platforms have it what ones don't.
Dave Airlie [Mon, 16 Jul 2007 23:59:26 +0000 (09:59 +1000)]
drm_context: fix braino
Ian Romanick [Tue, 17 Jul 2007 05:15:41 +0000 (22:15 -0700)]
Add XP5 and XP10 PCI IDs.
Ian Romanick [Tue, 17 Jul 2007 05:15:01 +0000 (22:15 -0700)]
Make drm_sg_free callable in-kernel.
Ian Romanick [Tue, 17 Jul 2007 04:15:58 +0000 (21:15 -0700)]
Log message clean up in WriteRegDWord. Remove unused inline functions.
Ian Romanick [Tue, 17 Jul 2007 04:12:30 +0000 (21:12 -0700)]
Clean ups (primarilly log messages) in xgi_test_rwinkernel.
Ian Romanick [Tue, 17 Jul 2007 04:11:22 +0000 (21:11 -0700)]
Eliminate unnecessary structures and defines.
Ben Skeggs [Tue, 17 Jul 2007 04:06:05 +0000 (14:06 +1000)]
nouveau: Destroy PGRAPH context table on PGRAPH takedown
Ian Romanick [Tue, 17 Jul 2007 03:58:43 +0000 (20:58 -0700)]
Eliminate several useless ioctls and associated cruft.
The ioctlss XGI_ESC_DEVICE_INFO, XGI_ESC_MEM_COLLECT,
XGI_ESC_PCIE_CHECK, XGI_ESC_GET_SCREEN_INFO, XGI_ESC_PUT_SCREEN_INFO,
XGI_ESC_MMIO_INFO, and XGI_ESC_SAREA_INFO, are completely unnecessary.
The will be doubly useless when the driver is converted to the DRM
infrastructure.
Ian Romanick [Tue, 17 Jul 2007 03:56:11 +0000 (20:56 -0700)]
Massive log message clean up in xgi_submit_cmdlist.
Ben Skeggs [Sun, 15 Jul 2007 07:18:15 +0000 (17:18 +1000)]
nouveau: G8x PCIEGART
Actually a NV04-NV50 ttm backend for both PCI and PCIEGART, but PCIGART
support for G8X using the current mm has been hacked on top of it.
Ian Romanick [Mon, 16 Jul 2007 17:56:43 +0000 (10:56 -0700)]
Correct errors in the usage of pci_map_page.
With these changes the driver no longer instantly hard-locks a 6600LE
on a PowerPC G5. I haven't tested any 3D apps yet.
Eric Anholt [Mon, 16 Jul 2007 08:53:06 +0000 (01:53 -0700)]
Fix FreeBSD build.
Dave Airlie [Mon, 16 Jul 2007 03:52:21 +0000 (13:52 +1000)]
drm: fixup old kernel compat code
Dave Airlie [Mon, 16 Jul 2007 03:50:04 +0000 (13:50 +1000)]
drm: fixup compat wrappers
Dave Airlie [Mon, 16 Jul 2007 03:46:37 +0000 (13:46 +1000)]
drm: remove internal sman typedef
Dave Airlie [Mon, 16 Jul 2007 03:45:39 +0000 (13:45 +1000)]
drm: remove drm_ref_t
Dave Airlie [Mon, 16 Jul 2007 03:42:11 +0000 (13:42 +1000)]
drm: remove drm_buf_t
Dave Airlie [Mon, 16 Jul 2007 03:37:02 +0000 (13:37 +1000)]
drm: detypedef ttm/bo/fence code
Dave Airlie [Mon, 16 Jul 2007 02:48:44 +0000 (12:48 +1000)]
drm: remove hashtab/sman and object typedefs
Dave Airlie [Mon, 16 Jul 2007 02:32:51 +0000 (12:32 +1000)]
drm: remove drmP.h internal typedefs
Dave Airlie [Mon, 16 Jul 2007 01:30:53 +0000 (11:30 +1000)]
drm: remove ttm userspace typedefs
Dave Airlie [Mon, 16 Jul 2007 01:22:15 +0000 (11:22 +1000)]
drm: detypedef drm.h and fixup all problems
Dave Airlie [Mon, 16 Jul 2007 01:13:07 +0000 (11:13 +1000)]
drm: fix typedef in drm_os_linux.h
Dave Airlie [Mon, 16 Jul 2007 00:13:58 +0000 (10:13 +1000)]
drm: remove typedefs in drm.h to their own section
Dave Airlie [Mon, 16 Jul 2007 00:05:20 +0000 (10:05 +1000)]
Merge branch 'drm-ttm-cleanup-branch'
Patrice Mandin [Sat, 14 Jul 2007 16:32:11 +0000 (18:32 +0200)]
nouveau: nv10 and nv11/15 are different
Arthur Huillet [Fri, 13 Jul 2007 18:51:52 +0000 (20:51 +0200)]
applied patch from Ian Romanick fixing PCI DMA object creation code
Arthur Huillet [Fri, 13 Jul 2007 14:03:25 +0000 (16:03 +0200)]
Merge commit 'public/master'
Arthur Huillet [Fri, 13 Jul 2007 13:57:17 +0000 (15:57 +0200)]
now attempting to create PCI object only when there is a pci_heap