Commit graph

1220 commits

Author SHA1 Message Date
Eric Anholt
f9c27aa50b Copy the important parts of object_validate into object_create().
This should let us allocate buffers without holding the hardware lock.

While here, add DRM_DEBUG info for the drm_bo ioctls, so you can see something
more specific than just the cmd value per ioctl.
2007-07-26 11:18:27 -07:00
Eric Anholt
cf2d569dac Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning.
This cleans up the create/validate interfaces for this very uncommon path, and
makes pinned object creation much easier to use for the X Server.
2007-07-26 10:15:11 -07:00
Dave Airlie
4175dd8181 drm/bo: set the req pointer for each buffer to validate 2007-07-26 15:26:36 +10:00
Dave Airlie
e2d00715cc drm: fix size argument for copy to/from user 2007-07-26 13:26:04 +10:00
Ian Romanick
2bafeb673f Fix typo on previous commit. Sigh... 2007-07-24 16:17:30 -07:00
Ian Romanick
75a68635a8 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.
2007-07-24 15:53:50 -07:00
Ian Romanick
8e64d2ae86 Fix license formatting. 2007-07-24 13:36:02 -07:00
Ian Romanick
2ef2997ee3 Fix flags for serveral ioctls. 2007-07-24 13:29:29 -07:00
Ian Romanick
887cb31ee9 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.
2007-07-24 13:27:44 -07:00
Ian Romanick
46214fc397 Minor log message clean up. 2007-07-23 18:50:52 -07:00
Ian Romanick
388a2c54ee Minor log message clean up. 2007-07-23 18:50:07 -07:00
Eric Anholt
03e932e32b linux: Make DRM_IOCTL_GET_CLIENT return EINVAL when it can't find client #idx.
Fixes the getclient test and dritest -c.
2007-07-23 15:11:12 -07:00
Ian Romanick
2097d743f2 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.
2007-07-23 13:26:28 -07:00
Adrian Bunk
7e6d08f670 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>
2007-07-23 18:15:00 +10:00
Ian Romanick
94203840fe Bump version. 2007-07-21 23:00:01 -07:00
Ian Romanick
699207cf2f Remove some extraneous debug messages. 2007-07-21 21:37:45 -07:00
Ian Romanick
1a0775760c Rename and document fields of xgi_cmdring_info. 2007-07-21 21:35:06 -07:00
Ian Romanick
3265a61f89 Make s_cmdring a field in the xgi_info structure instead of a global. 2007-07-21 20:39:22 -07:00
Ian Romanick
5d6fdd9d79 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.
2007-07-21 20:34:56 -07:00
Pekka Paalanen
0844c46759 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.
2007-07-21 23:13:25 +03:00
Dave Airlie
b43b0b2b32 fix missing brace placement for IOC_IN 2007-07-21 22:11:41 +10:00
Dave Airlie
f68ad6d1ab fix drm no-compile due to BSD :-) 2007-07-21 21:50:25 +10:00
Eric Anholt
5b38e13416 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.
2007-07-20 18:16:42 -07:00
Eric Anholt
c1119b1b09 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.
2007-07-20 13:39:45 -07:00
Eric Anholt
e39286eb5e 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.
2007-07-20 12:53:52 -07:00
Eric Anholt
5dc9fd96d7 Fix linux spinlock macros after the last commit. 2007-07-20 12:55:51 -07:00
Ian Romanick
ed82d5398a Clean up flush command generation in addFlush2D. 2007-07-20 11:31:01 -07:00
Ian Romanick
659209cb2d 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.
2007-07-20 11:29:16 -07:00
Ian Romanick
6bd8483074 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.
2007-07-20 10:57:40 -07:00
Ian Romanick
56665a42f4 Delete unused variable in xgi_driver_load. 2007-07-19 19:09:24 -07:00
Ian Romanick
970674f486 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.
2007-07-19 19:08:47 -07:00
Ian Romanick
a33f548729 Debug message and comment clean up in xgi_submit_cmdlist. 2007-07-19 19:05:52 -07:00
Ian Romanick
15245b670e Rework xgi_(pcie|fb)_free_all to prevent deadlock. 2007-07-19 11:38:56 -07:00
Ian Romanick
2f53ce4af2 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.
2007-07-19 11:05:13 -07:00
Ian Romanick
5ba94c2ab8 Initial pass at converting driver to DRM infrastructure. 2007-07-19 10:29:18 -07:00
Eric Anholt
05204b9c8d Merge branch 'origin' 2007-07-19 06:31:26 -07:00
Eric Anholt
33a50412c2 Add dry-coded DRM drawable private information storage for FreeBSD.
With this, all modules build again.
2007-07-18 14:22:49 -07:00
Thomas Hellstrom
1ff858fe3a Fix via dmablit when blit queue is full.
Fix by Simon Farnsworth, Bugzilla Bug #11542
http://bugs.freedesktop.org/show_bug.cgi?id=11542
2007-07-18 10:40:03 +02:00
Dave Airlie
a64b5d8d37 fix some missing whitespace/tab 2007-07-18 15:49:45 +10:00
Dave Airlie
3a71e87742 drm: idr stuff is upstream for 2.6.23 2007-07-18 09:46:16 +10:00
Dave Airlie
6ad1df2176 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.
2007-07-18 09:42:06 +10:00
Dave Airlie
bff698d0ed drm_context: fix braino 2007-07-18 09:27:21 +10:00
Ian Romanick
7f98815d00 Make drm_sg_free callable in-kernel. 2007-07-16 22:15:01 -07:00
Ian Romanick
bcba7ba981 Log message clean up in WriteRegDWord. Remove unused inline functions. 2007-07-16 21:15:58 -07:00
Ian Romanick
5b08ab258f Clean ups (primarilly log messages) in xgi_test_rwinkernel. 2007-07-16 21:12:30 -07:00
Ian Romanick
658ff2daf3 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.
2007-07-16 20:58:43 -07:00
Ian Romanick
4575d5b8f1 Massive log message clean up in xgi_submit_cmdlist. 2007-07-16 20:56:11 -07:00
Ben Skeggs
ec67c2def9 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.
2007-07-17 13:51:14 +10:00
Dave Airlie
23631fca09 drm: fixup old kernel compat code 2007-07-16 13:52:21 +10:00
Dave Airlie
0accdc1f69 drm: fixup compat wrappers 2007-07-16 13:50:04 +10:00