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
Dave Airlie
535e3dec8c
drm: remove internal sman typedef
2007-07-16 13:46:37 +10:00
Dave Airlie
191c062933
drm: remove drm_ref_t
2007-07-16 13:45:39 +10:00
Dave Airlie
24311d5d82
drm: remove drm_buf_t
2007-07-16 13:42:11 +10:00
Dave Airlie
be85ad0333
drm: detypedef ttm/bo/fence code
2007-07-16 13:37:02 +10:00
Dave Airlie
6dce9e0735
drm: remove hashtab/sman and object typedefs
2007-07-16 12:48:44 +10:00
Dave Airlie
21ee6fbfb8
drm: remove drmP.h internal typedefs
2007-07-16 12:32:51 +10:00
Dave Airlie
1a07256d60
drm: remove ttm userspace typedefs
2007-07-16 11:30:53 +10:00
Dave Airlie
b95ac8b7b3
drm: detypedef drm.h and fixup all problems
2007-07-16 11:22:15 +10:00
Dave Airlie
4be9554fcd
drm: fix typedef in drm_os_linux.h
2007-07-16 11:13:07 +10:00
Dave Airlie
2134193af6
Merge branch 'drm-ttm-cleanup-branch'
2007-07-16 10:05:20 +10:00
Ian Romanick
5522136b7f
Merge branch 'master' into xgi-0-0-2
2007-07-12 15:28:17 -07:00
Ben Skeggs
750371cb6e
nouveau: separate region_offset into map_handle and offset.
2007-07-12 10:46:57 +10:00
Dave Airlie
2c9e05cf4c
Merge branch 'master' into cleanup
...
Conflicts:
libdrm/xf86drm.c
linux-core/drm_bo.c
linux-core/drm_fence.c
2007-07-11 11:23:41 +10:00
Arthur Huillet
04e4922c0c
Made drm_sg_alloc accessible from inside the DRM - drm_sg_alloc_ioctl is the ioctl wrapper
2007-07-11 02:34:00 +02:00
Ian Romanick
76ca1e858f
Convert occurances of U32 to other types.
...
Most occurances of U32 were converted to u32. These are cases where
the data represents something that will be written to the hardware.
Other cases were converted to 'unsigned int'.
U32 was the last type in xgi_types.h, so that file is removed.
2007-07-09 18:54:25 -07:00
Ian Romanick
5c481d0a42
Eliminiate fields in xgi_info that are duplicates of fields in pci_dev.
2007-07-09 16:43:48 -07:00
Ian Romanick
1f4e24b429
Move types shared with user mode to xgi_drm.h.
2007-07-09 16:33:14 -07:00
Ian Romanick
7268b65d5c
Correct types that are shared with user mode.
2007-07-09 16:22:48 -07:00
Ian Romanick
a3f56dc3d0
Adjust the types of the fields of xgi_aperture.
2007-07-09 16:07:27 -07:00
Ian Romanick
2f2d8b9688
Merge xgi_mem_req and xgi_mem_alloc into a single type.
...
These two structures were used as the request and reply for certain
ioctls. Having a different type for an ioctl's input and output is
just wierd. In addition, each structure contained fields (e.g., pid)
that had no business being there.
This change requires updates to user-space.
2007-07-09 15:59:09 -07:00
Ben Skeggs
c806bba466
nouveau/nv50: Initial channel/object support
...
Should be OK on G84 for a single channel, multiple channels *almost* work.
Untested on G80.
2007-07-09 16:16:44 +10:00
Ian Romanick
86e75b7f7f
Remove XGI_IOCTL_CPUID and associated cruft.
2007-07-05 17:49:13 -07:00
Ian Romanick
8b18276458
Major clean up of xgi_ge_irq_handler
...
Two large blocks of code were moved out of this function into separate
functions. This brought some much needed sanity to the indentation.
Some dead varaibles were removed.
2007-07-05 17:45:44 -07:00
Ian Romanick
2695e8e209
Convert weird rtdsc usage to get_cycles.
...
I'm not convinced that get_cycles is the right approach here, but it's
better than the weird way that rtdsc was being used.
2007-07-05 17:18:12 -07:00
Kristian Høgsberg
d57b7f02d2
Use idr_replace trick to eliminate struct drm_ctx_sarea_list.
2007-07-03 10:41:48 -04:00
Kristian Høgsberg
1814a829eb
Don't take dev->struct_mutex twice in drm_setsareactx.
2007-07-03 10:31:46 -04:00
Michel Dänzer
ea832a8e55
Simplification for previous commit.
...
Dave Airlie pointed out on IRC that idr_replace lets us know if the ID hasn't
been allocated, so we don't need a special pointer value for allocated IDs that
don't have valid information yet.
2007-07-03 12:15:15 +02:00
Michel Dänzer
8d96ba9805
Restore pre-idr semantics for drawable information.
...
There's a difference between a drawable ID not having valid drawable
information and not being allocated at all. Not making the distinction would
break i915 DRM swap scheduling with older X servers that don't push drawable
cliprect information to the DRM.
2007-07-03 11:41:44 +02:00
Kristian Høgsberg
c9d752ff4f
Fix must-check warnings and implement a few error paths.
2007-07-02 17:52:07 -04:00
Kristian Høgsberg
b323ab52aa
Drop drm_drawable_list and add drm_drawable_info directly to the idr.
2007-07-02 15:07:02 -04:00
Ian Romanick
fc37781dd3
Convert a few more U32 variables to more appropriate, generic types.
2007-06-29 21:48:31 -07:00
Ian Romanick
49ccec1b08
Convert xgi_mem_location enum values to less generic names.
2007-06-29 21:38:48 -07:00
Ian Romanick
32584d94e6
Convert open coded list iterators to either list_for_each_entry or list_for_each_entry_safe
2007-06-29 21:35:27 -07:00
Ian Romanick
4403540776
Clean up xgi_pcie_heap_check
...
The whole purpose of xgi_pcie_heap_check is to log information about
entries on the used_list. If XGI_DEBUG is not set, it doesn't print
anything. Therefore we can #ifdef the whole function body.
Convert open-code list iteration to use list_for_each_entry.
2007-06-29 21:15:33 -07:00
Ian Romanick
4c4780bc8e
Stop-gap fix in xgi_submit_cmdlist
...
Comment in the code explains it. Basically, I put an if-statement
around a block of code to prevent a NULL pointer dereference that
should never happen in the first place. Eventually, this will need to
come out.
2007-06-29 21:05:16 -07:00
Ian Romanick
e206c4c59d
Convert some PCI-e GART related variable to generic types.
...
A few of the PCI-e GART related fields in struct xgi_info were
hardcoded to u32. None of them need to be. Convert them to either
unsigned int or bool.
2007-06-29 21:00:50 -07:00
Ian Romanick
3773378658
Delete unused arrays s_emptyBegin and s_flush2D.
2007-06-29 20:49:21 -07:00
Ian Romanick
406ded3816
Replace U(8|16) with u(8|16).
2007-06-29 16:41:32 -07:00
Ian Romanick
ec7730e5ba
Eliminate unnecessary defines of TRUE and FALSE.
2007-06-29 16:37:39 -07:00
Ian Romanick
5da2a3c2d4
Replace BOOL with bool.
2007-06-29 16:37:01 -07:00
Ian Romanick
ba3173fa39
Eliminate unused integer and float typedefs.
2007-06-29 16:35:36 -07:00
Ian Romanick
88328d4ef0
Eliminate structure typedefs
...
Documentation/CodingStyle says that 'typedef struct foo foo_t' is
evil. I tend to agree. Elminate all uses of such construct.
2007-06-29 15:27:38 -07:00
Ian Romanick
33b8476dfb
Fix return type of xgi_find_pcie_block.
...
This function used to return 'void *', which was then cast to
'xgi_pcie_block_t *' at the only caller. I changed the return type to
'struct xgi_pcie_block_s *' and removed the explicit cast.
2007-06-29 09:30:02 -07:00
Thomas Hellstrom
a27af4c4a6
Avoid hitting BUG() for kernel-only fence objects.
2007-06-29 15:22:28 +02:00
Thomas Hellstrom
00f1a66f22
Fence object reference / dereference cleanup.
...
Buffer object dereference cleanup.
Add a struct drm_device member to fence objects:
This can simplify code, particularly in drivers.
2007-06-29 12:58:45 +02:00
Ian Romanick
475c1e67ba
Remove unused type 'struct xgi_pcie_list_s' / xgi_pcie_list_t.
2007-06-28 23:40:36 -07:00
Ian Romanick
8fa24c53f5
Minor clean up of variable declarations in xgi_find_pcie_virt.
2007-06-28 22:32:11 -07:00
Ian Romanick
9c85fb866d
Clean up debug log messages in xgi_find_pcie_block.
2007-06-28 22:26:39 -07:00
Ian Romanick
11ffe4632a
Convert comment header of xgi_find_pcie_virt to kernel doc format.
2007-06-28 22:20:13 -07:00
Ben Skeggs
ce0d528d3c
nouveau/nv50: skeletal backend
2007-06-28 03:26:43 +10:00
Ben Skeggs
695599f18d
nouveau: Nuke DMA_OBJECT_INIT ioctl (bumps interface to 0.0.7)
...
For various reasons, this ioctl was a bad idea.
At channel creation we now automatically create DMA objects covering
available VRAM and GART memory, where the client used to do this themselves.
However, there is still a need to be able to create DMA objects pointing at
specific areas of memory (ie. notifiers). Each channel is now allocated a
small amount of memory from which a client can suballocate things (such as
notifiers), and have a DMA object created which covers the suballocated area.
The NOTIFIER_ALLOC ioctl exposes this functionality.
2007-06-28 03:26:43 +10:00
Ian Romanick
8cee7dca95
Clean up warnings about unused variables and functions.
2007-06-26 13:46:36 -07:00
Ian Romanick
b9ef1467fe
Clean up mixed declarations and code.
2007-06-26 13:39:01 -07:00
Ian Romanick
3547fbda63
Revert over-zealous change from previous commit.
2007-06-26 13:29:28 -07:00
Ian Romanick
3a776fa01e
Add XGI driver to Makefiles.
2007-06-26 13:26:10 -07:00
Ian Romanick
47bf6239aa
Clean up compile-time kernel feature detection.
2007-06-26 13:20:15 -07:00
Ian Romanick
7a053306a9
linux/config.h is deprecated or gone.
2007-06-26 13:16:04 -07:00
Ian Romanick
ec9e494eb9
Gut support for pre-2.6 kernels.
2007-06-26 13:15:22 -07:00
Ian Romanick
434657a258
dos2unix and Lindent
2007-06-26 13:10:30 -07:00
Ian Romanick
7af9d67037
Initial XP10 code drop from XGI.
...
See attachment 10246 on https://bugs.freedesktop.org/show_bug.cgi?id=5921
2007-06-26 13:05:29 -07:00
Ben Skeggs
341bc78207
nouveau: NV1X/2X/3X PFIFO engtab functions
...
Earlier NV1X chips use the NV04 code, see previous commits about NV10 RAMFC
entry size.
2007-06-24 18:58:14 +10:00
Ben Skeggs
05d86d950a
nouveau: NV04 PFIFO engtab functions
2007-06-24 18:57:09 +10:00
Ben Skeggs
f2e64d5276
nouveau: NV4X PFIFO engtab functions
2007-06-24 18:56:01 +10:00
Jesse Barnes
7f2a1cf275
Merge branch 'vblank-rework' into vblank
2007-06-22 11:12:02 -07:00
Jesse Barnes
97dcd7fd25
more vblank rework
...
- use a timer for disabling vblank events to avoid enable/disable calls too
often
- make i915 work with pre-965 chips again (would like to structure this
better, but this hack works on my test system)
2007-06-22 11:06:51 -07:00
Michel Dänzer
d2d53024fb
Fix vblank wait condition.
...
Sync-to-vblank actually works again for me with radeon.
2007-06-22 11:45:23 +02:00
Michel Dänzer
2738bca6f5
Use drm_calloc instead of assigning 0.
2007-06-22 11:44:38 +02:00
David Woodhouse
638ebbab54
fix radeon setparam on 32/64 systems, harder.
...
Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.
Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64. And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386. It would be a no-op with
compat_u64 anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-06-18 12:46:00 +10:00
Jesse Barnes
b6610363e3
First cut at radeon support for the vblank rework.
2007-06-15 11:21:57 -07:00
Michel Dänzer
3d5d41fa98
i915: Fix handling of breadcrumb counter wraparounds.
2007-06-15 17:13:11 +02:00
Michel Dänzer
0f5334be2b
Remove DRIVER_IRQ_VBL(2).
...
If the driver doesn't support vertical blank interrupts, it won't call
drm_vblank_init(), and dev->num_crtcs will be 0.
Also fix an off-by-one test against dev->num_crtcs.
2007-06-15 11:01:51 +02:00
Michel Dänzer
fbee089aca
Make vblank waitqueue per CRTC.
2007-06-15 10:50:22 +02:00
Thomas Hellstrom
84bea38353
Fix i915 sequence mask.
2007-06-15 10:35:52 +02:00
Thomas Hellstrom
3ee31a1f35
Indentation fixes.
2007-06-15 10:31:32 +02:00
Thomas Hellstrom
d34b2c7b9e
Fix refcounting / lock race.
...
Reported by Steve Wilkins / Michel Dnzer.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
e1b8eabeee
Locking fixes and instrumentation.
2007-06-15 10:26:51 +02:00
Michel Dänzer
82e2c3304d
Wake up vblank waitqueue in drm_handle_vblank().
2007-06-15 10:25:50 +02:00
Michel Dänzer
7f95a06c61
Return current sequence number to userspace after blocking wait for vblank.
2007-06-15 10:12:23 +02:00
Michel Dänzer
1000d88ddf
Fix memory leaks in vblank error paths.
...
Also use drm_calloc instead of drm_alloc and memset, and use the size of the
struct instead of the size of the pointer for allocation...
2007-06-15 10:10:33 +02:00
Jesse Barnes
b06268294a
Comment new vblank routines and fixup several issues:
...
- use correct refcount variable in get/put routines
- extract counter update from drm_vblank_get
- make signal handling callback per-crtc
- update interrupt handling logic, drivers should use drm_handle_vblank
- move wakeup and counter update logic to new drm_handle_vblank routine
- fixup usage of get/put in light of counter update extraction
- fix longstanding bug in signal code, update pending counter only
*after* we're sure we'll setup signal handling
2007-06-14 11:32:31 -07:00
Thomas Hellstrom
62082ab3e6
Make sure we read fence->signaled while spinlocked.
2007-06-13 15:38:59 +02:00
Thomas Hellstrom
5156f1c897
Fix fence object deref race.
2007-06-13 15:19:30 +02:00
Jesse Barnes
ca47fa90b7
Update vblank code:
...
- move pre/post modeset ioctl to core
- fixup i915 buffer swap
- fix outstanding signal count code
- create new core vblank init routine
- test (works with glxgears)
- simplify i915 interrupt handler
2007-06-12 13:35:41 -07:00
Jesse Barnes
db689c7b95
Initial checkin of vblank rework. Code attempts to reduce the number
...
of vblank interrupt in order to save power.
2007-06-12 10:44:21 -07:00
Thomas Hellstrom
f984b1b8d1
Fix some obvious bugs.
2007-06-12 12:30:33 +02:00
Thomas Hellstrom
b6b5df24b9
Try to make buffer object / fence object ioctl args 64-bit safe.
...
Introduce tile members for future tiled buffer support.
Allow user-space to explicitly define a fence-class.
Remove the implicit fence-class mechanism.
64-bit wide buffer object flag member.
2007-06-12 12:21:38 +02:00
Dave Airlie
280083d4a2
use krh's idr mods to remove lists from idr code
2007-06-10 15:40:21 +10:00
Dave Airlie
7426da7538
oops must fix this properly at some point
2007-06-07 18:45:00 +10:00
Dave Airlie
e22f428f5f
drm: fix radeon setparam alignment issues on 32/64-bit
2007-06-07 18:41:18 +10:00
Dave Airlie
5bd0ca125e
remove include of linux ioctl32.h from drm drivers
2007-06-05 18:16:44 +10:00
root
a4cddc6596
Revert "drm: add new drm_wait_on function to replace macro"
...
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
2007-06-03 18:12:28 +10:00
Dave Airlie
4e9d215bdf
radeon: add support for vblank on crtc2
...
This add support for CRTC2 vblank on radeon similiar to the i915 support
2007-06-03 16:28:21 +10:00
Dave Airlie
638c8087de
drm: fixup initialisation of list heads and idr
2007-06-01 19:00:24 +10:00
Dave Airlie
056c2f249a
drm: move context handling code to use linux idr
2007-05-27 08:44:38 +10:00
Dave Airlie
f64674743a
drm: convert drawable handling to use Linux idr
...
This cleans this code up a lot and uses the generic Linux idr which is
designed for this.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-27 07:26:52 +10:00
Michel Dänzer
8e083c522e
drm: make sure the drawable code doesn't call malloc(0).
...
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:35:54 +10:00
Dave Airlie
58b2ed7832
Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."
...
This reverts commit 3fdef0dc20
.
ditto not on master yet
2007-05-26 03:48:08 +10:00
Dave Airlie
375f3f2884
Revert "drm/ttm: cleanup most of fence ioctl split out"
...
This reverts commit 3dfc1400e9
.
this shouldn't have gone on master yet
2007-05-26 03:47:48 +10:00
Dave Airlie
ce58e53a01
whitespace fixups from kernel
2007-05-26 03:32:34 +10:00
Dave Airlie
adee6f52e6
ati_pcigart: cut to 80 chars
2007-05-26 03:32:34 +10:00
Dave Airlie
3dfc1400e9
drm/ttm: cleanup most of fence ioctl split out
2007-05-26 03:32:34 +10:00
Dave Airlie
3fdef0dc20
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-26 03:32:34 +10:00
Dave Airlie
7b48f0022a
drm: cleanup use of Linux list handling macros
...
This makes the drms use of the list handling macros a lot cleaner
and more along the lines of how they should be used.
2007-05-26 04:26:24 +10:00
Stephane Marchesin
ea98d7e796
nouveau: don't build the module by default
2007-05-17 17:35:51 +02:00
Dave Airlie
b2a875ba89
ttm: complete drm buffer object ioctl split
...
retain the op operation for validate/fence operations
2007-05-08 18:25:15 +10:00
Dave Airlie
ae677472af
drm/ttm: remove old fence ioctl
2007-05-08 17:55:57 +10:00
Dave Airlie
25c51f539f
drm/ttm: ioctl cleanup for buffer object - user side only
...
This just cleans up the xf86drm.c to what I want and drm.h,
I need to fix up the kernel internals to suit these changes now.
I've moved to using struct instead of typedefs for the bo and it doesn't look
that bad so I'll do the same thing for mm and fence..
2007-05-08 17:53:58 +10:00
Brian
c4e2caec44
s/OJBECTS/OBJECTS/
2007-05-06 10:09:59 -06:00
Dave Airlie
6a62941eca
drm/ttm: cleanup most of fence ioctl split out
2007-05-06 11:35:11 +10:00
Dave Airlie
ee8954cb53
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-06 11:17:30 +10:00
Dave Airlie
c9cd2c768b
drm: remove unused define DRM_HAS_TTM
2007-05-06 10:50:10 +10:00
Dave Airlie
6e860d08d0
drm: add new drm_wait_on function to replace macro
2007-04-28 15:07:43 +10:00
Dave Airlie
e9b3acd257
remove register usage
2007-04-28 15:07:43 +10:00
Dave Airlie
9f9c19065c
remove DRM_GETSAREA and replace with drm_getsarea function
2007-04-28 15:07:43 +10:00
George Sapountzis
3a2c9f4621
linux: minor indent.
2007-04-26 14:16:28 +03:00
Dave Airlie
afc029e935
whitespace cleanup
2007-04-26 16:25:43 +10:00
Dave Airlie
e5c1f1caa2
remove some whitespace violation
2007-04-26 16:22:28 +10:00
Dave Airlie
4b72759b30
drm: nopfn warning on 64-bit
2007-04-26 16:22:11 +10:00
Jesse Barnes
71d44cda52
drm/ttm: allow drm_buffer_object_create to be used in-kernel
2007-04-26 16:09:24 +10:00
Jesse Barnes
3c384a9ad5
Add new buffer object type for kernel allocations that don't initially have a user mapping.
...
(cherry picked from commit 2e21779992
)
2007-04-26 16:04:09 +10:00
Kristian Høgsberg
af3ffcd822
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:06:31 -04:00
Thomas Hellstrom
a8a8108e45
Avoid a fence timeout problem when a signal is pending.
2007-04-20 15:57:41 +02:00
Thomas Hellstrom
1ce9c09231
Fix via compile error
...
(Reported by Benno Schulenberg.)
2007-04-20 15:49:31 +02:00
Thomas Hellstrom
2df2c70e20
Simplify the ttm backend interface and the agp ttm backend.
2007-04-18 16:33:28 +02:00
Thomas Hellstrom
5a96d59ce9
Don't always free up memory space when we unpin buffers.
2007-04-17 14:15:37 +02:00
Thomas Hellstrom
5432cc4abf
Fix buffer object reference problems.
...
(Reported by Dave Airlie).
2007-04-17 10:53:19 +02:00
Thomas Hellstrom
e91ceff6c9
Add a code comment.
2007-04-17 08:46:45 +02:00
Thomas Hellstrom
e6e4946c82
Require the hardware lock for buffer creation
...
(since that implies a validate).
Fix drm_bo_wait_unfenced error messages and codes.
Fix some return codes from libdrm.
2007-04-16 16:23:05 +02:00
Dave Airlie
a70f8e0ab2
radeon: add support for reverse engineered xpress200m
...
The IGPGART setup code was traced using mmio-trace on fglrx by myself
and Phillip Ezolt <phillipezolt@gmail.com> on dri-devel.
This code doesn't let the 3D driver work properly as the card has no
vertex shader support.
Thanks to Matthew Garrett + Ubuntu for providing me some hardware to do this
work on.
2007-04-09 21:52:59 +10:00
Dave Airlie
b25558bb73
fixup install target, not sure what I was smokin...
2007-04-07 07:21:05 +10:00
Dave Airlie
9c79371659
add an install target to the drm modules makefile
2007-04-05 11:18:00 +10:00
Thomas Hellstrom
c496827921
Fix user object reference when caller is not object creator.
...
(Reported by Dave Airlie).
2007-04-03 10:54:23 +02:00
Thomas Hellstrom
38d18acb8f
Add a fence flush event to each fence-signaled check when lazy-waiting
...
to make sure we don't lose any sequence numbers if, for some reason,
they don't generate an IRQ.
2007-04-03 10:29:15 +02:00
Thomas Hellstrom
7743af9449
Evicted no-move buffers can get lost if they end up in another
...
memory type than local.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
d85e243259
Fix an oops when trying to clean a not yet initialized memory type.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
72d457fc19
Make sure CMA (Can't map aperture) pages are mapped uncached.
...
(Should really make this write-combined using PATs, at some point).
2007-04-03 10:29:14 +02:00
Dave Airlie
3f70518f0b
drm/bo: avoid oops if the memory manager for this type isn't initialised
2007-03-29 09:25:04 +10:00
Dave Airlie
81b811da37
drm/i915: set the bo up at firstopen time not after DMA init
...
This is required to use TTM to allocate the ring buffer.
2007-03-27 18:01:31 +10:00
Dave Airlie
72a1190f6d
drm/ttm: make sure dev_mapping is set-up for the first opener of the drm
...
This was causing an oops in my miniglx code to try and use a TTM-only setup.
2007-03-27 17:59:30 +10:00
Ben Skeggs
674cefd4fe
nouveau: move card initialisation into the drm
...
The PGRAPH init for the various cards will need cleaning up at some point,
a lot of the values written there are per-context state left over from the
all the hardcoding done in the ddx.
It's possible some cards get broken by this commit, let me know.
Tested on: NV5, NV18, NV28, NV35, NV40, NV4E
2007-03-26 20:59:37 +10:00
Dave Airlie
5ad43f4675
vm: cleanup drm_vm.c along lines of cleanups queued for kernel
2007-03-24 17:58:27 +11:00
Dave Airlie
8d918b0b63
cleanup more whitespace from ttm merge
2007-03-23 14:56:39 +11:00
Dave Airlie
39795501a8
drm: remove second spinlock init for tasklet lock
2007-03-23 14:56:28 +11:00
Dave Airlie
209870a882
rename badly named define
2007-03-20 10:13:58 +11:00
Alan Hourihane
ef71b6230b
remove i830 reference
2007-03-19 11:46:35 +00:00
Alan Hourihane
cbe31d0dc7
Remove old i830 kernel driver.
2007-03-19 11:46:35 +00:00
Dave Airlie
1e77e52755
more return values fixup
2007-03-19 09:20:04 +11:00
Dave Airlie
46fac17082
fixup return values in drm ioctl
2007-03-19 09:12:08 +11:00
Dave Airlie
c991f8e049
cleanup ioctl expansion code
2007-03-19 08:46:39 +11:00
Dave Airlie
a2e3bae8e2
oops missing else
2007-03-19 08:46:25 +11:00
Dave Airlie
bbb6fc9307
make drm fops const from kernel
2007-03-19 08:36:01 +11:00
Dave Airlie
483f6a113d
use ARRAY_SIZE
2007-03-19 08:32:25 +11:00
Dave Airlie
2d7ecb8422
more tab/space conversion
2007-03-19 08:29:07 +11:00
Dave Airlie
2463b03cb4
whitespace cleanup pending a kernel merge
2007-03-19 08:23:43 +11:00
Dave Airlie
6c4428d40c
clean up more of inline functions agp_remap/drm_lookup_map
2007-03-19 08:09:21 +11:00
Dave Airlie
27197d7836
deinline agp_remap along lines of kernel
2007-03-18 21:45:07 +11:00
Dave Airlie
c4808e206b
remove drm_lookup_map unused now
2007-03-18 21:42:48 +11:00
Maarten Maathuis
6a60b47d12
replace instance of SA_SHIRQ with IRQF_SHARED
...
backwards compat added by airlied
2007-03-11 12:13:58 +11:00
Dave Airlie
c9178c3d01
ati: make pcigart code able to handle variable size PCI GART aperture
...
This code doesn't enable a variable aperture it just modifies the codebase
to allow me fix it up later
2007-03-04 18:16:29 +11:00
Jay Estabrook
6a51da7325
Fix Alpha domain/bus issue
2007-02-27 08:56:20 +00:00
Thomas Hellstrom
80468e7532
Fix build for 2.6.21-rc1.
...
The vm subsystem of 2.6.21 is fully compatible with the buffer object
vm code.
2007-02-26 18:17:54 +01:00
Thomas Hellstrom
2b7a9afa09
Some fencing cleanup.
2007-02-22 17:04:20 +01:00
Dave Airlie
a253de2fcf
drm: remove last usage of VM_OFFSET
2007-02-18 17:59:40 +11:00
Thomas Hellstrom
6d8ed5aedd
Leftover files from previous commit.
2007-02-16 20:25:26 +01:00
Thomas Hellstrom
e0f53e59be
Simple fence object sample driver for via, based on idling the GPU.
...
Buffer object driver for via.
Some changes to buffer object driver callbacks.
Improve fence flushing.
2007-02-16 20:22:24 +01:00
Thomas Hellstrom
7766378d97
Initial support for fence object classes.
...
(Fence objects belonging to different command submission mechanisms).
2007-02-15 12:11:38 +01:00
Michel Dänzer
7803977aa9
Fix build against older kernels.
2007-02-15 09:26:16 +01:00
Thomas Hellstrom
a78f70faad
Merge branch 'ttm-vram-0-1-branch'
2007-02-14 15:33:40 +01:00
Thomas Hellstrom
35eb12d8bf
Fix multiple spinlock unlocking
2007-02-14 15:32:08 +01:00
Thomas Hellstrom
1345076c8f
Rename drm_ttm.h to drm_objects.h
...
Fix up some header incompatibilities in drm_fence.c caused by the previous
commit.
2007-02-14 14:10:10 +01:00
Thomas Hellstrom
8ffc1844b0
Move fence- and buffer-object related header stuff to drm_ttm.h
2007-02-14 14:05:40 +01:00
Thomas Hellstrom
5c9a7b0f94
Remove an intel-specific hack and replace it with a fence driver callback.
2007-02-14 13:31:35 +01:00
Thomas Hellstrom
04760563b8
Set the drm bus map type for each buffer object memory type.
2007-02-14 12:39:02 +01:00
Thomas Hellstrom
7bcb62b45d
Rework buffer object vm code to use nopfn() for kernels >= 2.6.19.
2007-02-14 10:49:37 +01:00
Thomas Hellstrom
6b289db054
Remove debug printout.
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
e1460426b8
Bugzilla Bug #9457
...
Add refcounting of user waiters to the DRM hardware lock, so that we can use the
DRM_LOCK_CONT flag more conservatively.
Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context,
when it is released. This is useful when waiting for idle and can be used
for very simple fence object driver implementations for the new memory manager.
It also resolves the AIGLX startup deadlock for the sis and the via drivers.
i810, i830 still require that the hardware lock is really taken so the deadlock remains
for those two. I'm not sure about ffb. Anyone familiar with that code?
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
9efdae317c
More bugfixes.
...
Fixed memory, pinned buffers and unmappable memory now seems
fully functional.
2007-02-13 20:05:32 +01:00
Adam Jackson
5bd13c5e15
Fix some outdated URLs, remove others.
2007-02-12 15:45:51 -05:00
Thomas Hellstrom
398913dc0e
Lindent.
2007-02-12 20:34:50 +01:00
Thomas Hellstrom
b0c5339ed6
More bugfixes.
2007-02-12 20:32:03 +01:00
Thomas Hellstrom
f02f83ee08
Cleanup and fix support for pinned buffers.
2007-02-12 17:47:57 +01:00
Thomas Hellstrom
85ee2a8d04
Various bugfixes.
2007-02-10 12:06:36 +01:00
Thomas Hellstrom
53aee3122a
I915 accelerated blit copy functional.
...
Fixed - to System memory copies are implemented by
flipping in a cache-coherent TTM,
blitting to it, and then flipping it out.
2007-02-09 16:36:53 +01:00
Thomas Hellstrom
57df398072
Reinstate some LRU handling.
2007-02-09 12:43:18 +01:00
Thomas Hellstrom
d32b21e016
Remove some code that should have gone in
...
commit 6a49d9a8ab
2007-02-09 00:11:53 +01:00
Thomas Hellstrom
99acdaee48
Fix copyright statements.
2007-02-09 00:07:29 +01:00
Thomas Hellstrom
6a49d9a8ab
Fix evict_mutex locking range.
...
Implement unmappable buffers. (fault moves them to mappable when needed).
Various bugfixes.
2007-02-09 00:02:02 +01:00
Thomas Hellstrom
b2bcbf874b
Add an accelerated buffer copy cleanup helper.
...
Export helper functions and make some important buffer-object functions non-static.
Add an i915 accelerated blit buffer move for pci memory buffers.
2007-02-08 21:28:33 +01:00
Thomas Hellstrom
a0ed808d05
Don't create a ttm just to copy from.
2007-02-08 19:06:39 +01:00
Thomas Hellstrom
bf8f46d4c6
Fix mm_block leak.
...
Some other minor fixes.
2007-02-08 18:59:02 +01:00
Thomas Hellstrom
e4b2da4406
A minor function interface change and some memcpy bugfixing.
...
Hooray!! it sort of works with a fixed AGP area as faked VRAM.
2007-02-08 16:21:38 +01:00
Thomas Hellstrom
1257907fa9
Simplify external ttm page allocation.
...
Implement a memcpy fallback for copying between buffers.
2007-02-08 13:29:08 +01:00
Thomas Hellstrom
09984ad77b
Update memory compatibility tests.
...
Now only pinned buffers are broken.
2007-02-08 11:55:24 +01:00
Thomas Hellstrom
c1fbd8a566
Checkpoint commit.
...
Flag handling and memory type selection cleanup.
glxgears won't start.
2007-02-07 17:25:13 +01:00
Thomas Hellstrom
af24465b2e
Fix a stray unlock_kernel() in drm_vm.c
...
Add a file for memory move helpers, drm_bo_move.c
Implement generic memory move.
Cached, no_move and unmapped memory temporarily broken.
2007-02-07 12:52:23 +01:00
Thomas Hellstrom
71b9e876f9
Simplify pci map vs no pci map choice.
2007-02-06 16:59:45 +01:00
Thomas Hellstrom
40ce53dfde
Implement a drm_mem_reg_t substructure in the buffer object type.
2007-02-06 15:56:43 +01:00
Thomas Hellstrom
609e3b0375
Implement a policy for selecting memory types.
2007-02-06 14:20:33 +01:00
Thomas Hellstrom
2d962332de
i915: Add copy-blit operation.
2007-02-05 16:13:32 +01:00
Stephane Marchesin
ebf22aed9a
nouveau: add missing nv04_graph.c symlink.
2007-02-03 06:02:12 +01:00
Stephane Marchesin
d69902db3b
nouveau: fix nv04 graph routines for new register names.
2007-02-03 05:25:36 +01:00
Thomas Hellstrom
63f2abd721
Make also later kernels work with buffer object vm
...
and clean up some function names.
2007-02-02 19:49:11 +01:00
Thomas Hellstrom
c269d560e4
Make vm handle buffer objects instead of ttm objects.
...
Remove ttm objects.
Make vm aware of PCI memory type buffer objects.
(Only works for pre 2.6.16 kernels for now).
2007-02-02 14:47:44 +01:00
Thomas Hellstrom
dd733dea38
Fix missing ttm_open_vma call from previous commit.
...
Honour the ttm backend cant-use-aperture flag.
2007-02-01 13:19:05 +01:00
Thomas Hellstrom
9677c5ecc6
Prepare for removal of the ttm_object type.
2007-02-01 10:53:55 +01:00
Thomas Hellstrom
333c6af47a
Protect drm_mmap against disappearing maps.
...
The map lists and hash tables are protected using dev->struct_mutex,
but drm_mmap strangely never locked this mutex.
2007-02-01 00:38:57 +01:00
Thomas Hellstrom
3024f23c65
memory manager: Make device driver aware of different memory types.
...
Memory types are either fixed (on-card or pre-bound AGP) or not fixed
(dynamically bound) to an aperture. They also carry information about:
1) Whether they can be mapped cached.
2) Whether they are at all mappable.
3) Whether they need an ioremap to be accessible from kernel space.
In this way VRAM memory and, for example, pre-bound AGP appear
identical to the memory manager.
This also makes support for unmappable VRAM simple to implement.
2007-01-31 14:50:57 +01:00
Thomas Hellstrom
36d50687dd
Fix an error-path oops.
2007-01-31 11:03:53 +01:00
Thomas Hellstrom
d399fcf46f
Add a buffer object transfer function.
...
Creates a placeholder for the old buffer contents
when it is transfered to / from static memory like VRAM.
2007-01-30 16:20:23 +01:00
Thomas Hellstrom
9bbdc0fb10
Clean up buffer object destruction somewhat.
2007-01-30 12:35:49 +01:00
Thomas Hellstrom
9a654e71bd
Use pre-defined list_splice function.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
45418bb1b1
s/buf/bo/ for consistency.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
1e4c7d69f5
Some cleanup. A buffer object should only have one active memory type.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
582637641a
Remove a scary error printed when we were leaking memory caches.
...
We don't use memory caches anymore...
Fix memory accounting initialization to only use low or DMA32 memory.
2007-01-25 14:27:29 +01:00
Matthieu Castet
f04347f371
nouveau: nv20 graph ctx switch.
...
Untested...
2007-01-13 23:19:41 +01:00
Matthieu Castet
cd5f543b2f
nouveau: first step to make graph ctx works
...
It is still not working, but now we could use some 3D commands
without needed to run nvidia blob before.
2007-01-13 21:44:50 +01:00
Dave Airlie
69a98d89d5
nouveau: add missing symlink
2007-01-13 08:43:15 +11:00
Jeremy Kolb
4297a83b48
nouveau: get nv30 context switching to work.
...
* Pulled in some registers from nv10reg.h. Needed for context switching.
* Filled in nv30 graphics context (based on nv40_graph.c).
* Figure out nv30 context table, set up on context creation. Allows the cards automatic switching to work.
2007-01-12 00:14:54 -05:00
Dave Airlie
125f3ff367
Revert "nouveau: Fill in context_init for nv10-nv3x."
...
This reverts ac076cb9af
commit.
Well it didn't do anything interesting...
2007-01-10 15:19:47 +11:00
Jeremy Kolb jkolb@brandeis.edu
ac076cb9af
nouveau: Fill in context_init for nv10-nv3x.
...
Fill in the context with the values from PFIFO_CACH1. This should work from nv10 through the nv30 series.
2007-01-09 23:12:37 -05:00
Stephane Marchesin
ec12209c76
nouveau: Don't use DRIVER_USE_MTRR, we already setup our own mtrr over vram.
2007-01-10 04:42:09 +01:00
Dave Airlie
f6ba3b2603
ttm: make ttm alloc/free into alloc_pages/free_pages
...
Add a vmalloc flag to the page flags
2007-01-09 15:51:29 +11:00
Dave Airlie
22821cf01d
add export symbol for memory manager
2007-01-08 22:27:27 +11:00
Dave Airlie
5bf60c9d6c
i830: complete fix for i830 maps
2007-01-08 13:09:51 +11:00
Christoph Hellwig
b147c39263
drm: remove drm_follow_page, and drm_ioremap and ioremapfree
...
This comes from the Re: [patch] paravirt: isolate module ops on lkml
It needs some testing, please report any regressions caused.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-01-08 11:47:15 +11:00
Dave Airlie
fe5770b89e
fixup i810/i830 to use drm_core_ioremap instead of drm_ioremap
2007-01-08 11:46:54 +11:00
Stephane Marchesin
025f281bbf
nouveau: Add an mtrr over the whole FB
2007-01-05 20:49:34 +01:00
Michel Dänzer
972074b5d6
linux-core: Make git ignore generated module symbol version files.
2007-01-02 10:02:44 +01:00
Ben Skeggs
0e0d954584
nouveau: Add nv40-specific PGRAPH code, not hooked up yet.
2007-01-02 14:52:43 +11:00
Dave Airlie
2dcbf6a599
make build against 2.6.20 hopefully
2007-01-01 11:30:38 +11:00
Dave Airlie
87faf62fae
fixup permission along line of kernel
2007-01-01 11:22:35 +11:00
Thomas Hellstrom
975136d6e5
Proper allocation of AGP pages for ttms.
2006-12-27 15:32:09 +01:00
Thomas Hellstrom
72cb361c5c
Bug #9120 .
...
Require at least agpgart version 0.102 for the AGP TTM backend.
This should hopefully avoid crashes when the wrong agpgart
driver is installed.
2006-12-21 12:05:49 +01:00
Thomas Hellstrom
ae58225613
Improve memory manager accounting printout formatting.
2006-12-21 10:43:47 +01:00
Thomas Hellstrom
a467d24829
Fix buggy aligned allocations.
2006-12-21 10:43:46 +01:00
Thomas Hellstrom
9acd4a13f2
Remove the stupid root_node field from the core memory manager.
2006-12-20 19:33:50 +01:00
Thomas Hellstrom
672593f611
Replace vmalloc_32.
...
The vmalloc_32 function together with the memset to clear
the new pages are replaced with a vmalloc_user.
A pre-2.6.18 compat vmalloc_user is added.
Please replace any breakage on machines with > 1GB of memory.
2006-12-20 14:40:36 +01:00
Thomas Hellstrom
3b47b27558
Some via PCI posting flushes.
2006-12-20 13:04:21 +01:00
Dave Airlie
e5c4a26a29
Merge branch 'nouveau-1'
2006-12-20 10:30:16 +11:00
Dave Airlie
dc1b68aacb
fixup symlinks via Makefile
2006-12-20 10:29:43 +11:00
Dave Airlie
744f9ac9c7
add nouveau symlinks via git
2006-12-20 10:28:55 +11:00
Thomas Hellstrom
3b8e6ccd25
Security fix. Zero pages before they are handed to user space.
...
TTM pages were not cleared when allocated and handed to user space.
Sensitive information may leak.
2006-12-19 23:45:59 +01:00
Thomas Hellstrom
72b5d1507a
Security fix. Zero pages before they are handed to user space.
...
Shared memory areas were not cleared when they are allocated and
handed to user space. Sensitive information may leak.
2006-12-19 23:23:17 +01:00
Thomas Hellstrom
81251bf78f
Reclaim buffers locked fixup.
...
Avoid calling reclaim_buffers_locked if we don't have a
hardware lock.
Improve reclaim_buffers_locked deadlock error formatting.
2006-12-19 23:14:11 +01:00
Dave Airlie
737c73d1a0
add kcalloc compat for before 2.6.10
2006-12-19 22:10:34 +11:00
Dave Airlie
bc4c835731
remove do munmap 4 args
2006-12-19 21:51:30 +11:00
Dave Airlie
6333bfdb58
fixup inclusion of agp.h
2006-12-19 21:37:50 +11:00
Dave Airlie
aa07b2ab0e
remove drm pci from 2.5 days
2006-12-19 21:33:47 +11:00
Dave Airlie
ff4b5ccdb4
remove legacy taskqueue code
2006-12-19 21:30:27 +11:00
Dave Airlie
86ff2aeb9b
drm: remove all 2.4 support for drm development tree.
...
Bye bye 2.4 you served us well..
2006-12-19 20:29:03 +11:00
Dave Airlie
656c3a3737
[SPARC]: Respect vm_page_prot in io_remap_page_range().
...
Make sure the callers do a pgprot_noncached() on
vma->vm_page_prot.
Pointed out by Hugh Dickens.
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-12-19 18:27:20 +11:00
Dave Airlie
0ab48b0841
[PATCH] mm: incorrect VM_FAULT_OOM returns from drivers
...
Some drivers are returning OOM when it is not in response to a memory
shortage.
Signed-off-by: Nick Piggin <npiggin@suse.de>
2006-12-19 18:24:44 +11:00
Dave Airlie
303307d254
fix irq args compatiblity with pre 2.6.19
2006-12-19 18:03:20 +11:00
Dave Airlie
2253e334cc
make sizeof match the copy struct
2006-12-19 17:58:14 +11:00
Dave Airlie
6c8712ba8a
use spin_lock_init in via dmablit
2006-12-19 17:58:07 +11:00
Dave Airlie
696f2bfbd1
Revert "drm: ioremap balanced with iounmap for drivers/char/drm"
...
This reverts cc22cd8bde
commit.
I put this patch incorrectly in .. will fix now
2006-12-19 16:44:57 +11:00
Dave Airlie
cc22cd8bde
drm: ioremap balanced with iounmap for drivers/char/drm
...
ioremap must be balanced by an iounmap and failing to do so can result
in a memory leak.
Tested (compilation only) to make sure the files are compiling without
any warning/error due to new changes
Signed-off-by: Amol Lad <amol@verismonetworks.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-19 16:41:10 +11:00
Michael Buesch
b3c88d31e1
drm/linux-core: drmP.h compilation fix
...
I need the following patch to fix compilation of
latest drm/linux-core on my ppc64 machine.
/home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_firstopen’:
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: ‘DRM_MTRR_WC’ undeclared (first use in this function)
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: (Each undeclared identifier is reported only once
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: for each function it appears in.)
/home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_lastclose’:
/home/mb/develop/git/drm/linux-core/savage_bci.c:664: error: ‘DRM_MTRR_WC’ undeclared (first use in this function)
I looked at in-kernel drmP.h and it actually
has the same fix in it.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
2006-12-16 11:27:22 +01:00
Thomas Hellstrom
38ed67196f
Remove the memory caches for fence objects and memory manager nodes,
...
since the support for memory caches has gone from 2.6.20.
2006-12-15 12:37:24 +01:00
Michel Dänzer
a97bb85c2a
Unshare drm_drawable.c again for now.
...
The current version didn't build on BSD, where the new functionality isn't used
yet anyway. Whoever changes that will hopefully be able to make the OSes share
this file as well.
2006-12-01 10:46:21 +01:00
Michel Dänzer
4a0e61d910
Track linux-core symlinks in git.
2006-12-01 10:37:55 +01:00
Dave Airlie
f7affda35b
drm: fixup page alignment on SAREA map on ppc64
2006-11-06 11:44:36 +11:00
Dave Airlie
1e90b7ee8c
Merge branch 'master' into nouveau-1
...
Conflicts:
linux-core/Makefile.kernel
2006-11-06 08:03:18 +11:00
Dave Airlie
94ab96c4d8
nouveau: add compat ioc32 support
2006-11-05 20:39:13 +11:00
Dave Airlie
1e118aeb39
remove config.h
2006-11-05 19:46:30 +11:00
Thomas Hellstrom
4b04c0cc45
Bugzilla Bug #8819
...
Build fixes for powerpc.
Reported by Katerina Barone-Adesi
2006-10-30 11:18:44 +01:00
Thomas Hellstrom
f6d5fecdd2
Last minute changes to support multi-page size buffer offset alignments.
...
This will come in very handy for tiled buffers on intel hardware.
Also add some padding to interface structures to allow future binary backwards
compatible changes.
2006-10-27 11:28:37 +02:00
Thomas Hellstrom
e09544a2d3
New mm function names. Update header.
2006-10-26 21:20:34 +02:00
Thomas Hellstrom
47dbfc4e4a
Add improved alignment functionality to the core memory manager.
...
This makes an allocated block actually align itself and returns any
wasted space to the manager.
Also add some functions to grow and shrink the managed area.
This will be used in the future to manage the buffer object swap cache.
2006-10-26 21:17:43 +02:00
Thomas Hellstrom
b4fba1679b
Add a one-page hole in the file offset space between buffers.
2006-10-26 21:14:23 +02:00
Thomas Hellstrom
7ea059ae07
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
2006-10-21 14:20:28 +02:00
Thomas Hellstrom
9ed4656799
The CPU cache must be flushed _before_ we start modifying the kernel map ptes,
...
otherwise data will be missing, which becomes apparent when the kernel evicts
batch buffers which are likely to be written into in the evicted state,
and then rebound to the AGP aperture.
This means we cannot rely on the AGP module to flush the
cache for us.
2006-10-21 14:17:51 +02:00
Tilman Sauerbeck
a8909a0ebc
Bug #1746 : Set dev_priv_size for the MGA driver.
2006-10-20 17:05:07 +02:00
Thomas Hellstrom
9321592149
We apparently need this global cache flush anyway.
2006-10-20 15:07:21 +02:00
Thomas Hellstrom
3624e43282
Bug #8707 , 2.6.19-rc compatibility for memory manager code.
2006-10-20 15:06:31 +02:00
Thomas Hellstrom
d70347bfc0
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
2006-10-19 17:07:26 +02:00
Thomas Hellstrom
5de4665747
Importing fixes from drm-ttm-0-2-branch
2006-10-19 17:00:03 +02:00
Thomas Hellstrom
e8ba62db72
Make sure delayed delete list is empty on lastclose.
...
Fix some refcounting errors.
Fix some error messages.
2006-10-19 16:58:00 +02:00
Thomas Hellstrom
e22b04f807
Merging drm-ttm-0-2-branch
...
Conflicts:
linux-core/drmP.h
linux-core/drm_drv.c
linux-core/drm_irq.c
linux-core/drm_stub.c
shared-core/drm.h
shared-core/i915_drv.h
shared-core/i915_irq.c
2006-10-18 17:33:19 +02:00
Thomas Hellstrom
11aaa358a0
Remove stray softlink.
2006-10-18 17:18:23 +02:00
Thomas Hellstrom
e172945d66
Avoid driver-specific AGP user-populated types, since we don't know what AGP
...
driver we're on.
Avoid global cache flushes before inserting pages.
In general, they are never mapped, and not accessed through the kernel map, so
a cache flush should not be necessary. The exception is pages that are bound
cached. We might need a cache flush for those.
2006-10-18 16:54:17 +02:00
Thomas Hellstrom
c34faf224b
Remove max number of locked pages check and call, since
...
that is now handled by the memory accounting.
2006-10-17 20:03:26 +02:00
Thomas Hellstrom
89b9441798
Lindent.
2006-10-17 19:57:06 +02:00
Thomas Hellstrom
f22f89e6b3
Add vma list memory usage to memory accounting.
...
Use byte unit for /proc printout of memory usage for small sizes to be
able to detect memory allocation bugs more easily.
2006-10-17 19:52:34 +02:00
Thomas Hellstrom
d515936ea7
Add memory usage accounting to avoid DOS problems.
2006-10-17 19:40:57 +02:00
Thomas Hellstrom
5443dbe35f
Implement mm_lock and mm_unlock functions.
...
The mm_lock function is used when leaving vt. It evicts _all_ buffers.
Buffers with the DRM_BO_NO_MOVE attribute set will be guaranteed to
get the same offset when / if they are rebound.
2006-10-17 16:00:25 +02:00
Thomas Hellstrom
db5c671e86
Remove the memory manager parameter from the put_block function, as this
...
makes the client code a lot cleaner. Prepare buffer manager for lock and
unlock calls.
2006-10-17 11:28:48 +02:00
Thomas Hellstrom
5881ce1b91
Extend generality for more memory types.
...
Fix up init and destruction code.
2006-10-17 11:05:37 +02:00
Thomas Hellstrom
5b2a60f550
Change Intel AGP memory type numbers.
2006-10-16 14:22:27 +02:00
Stephane Marchesin
93fee5cf22
Merge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouveau-1
2006-10-15 00:12:13 +02:00
Dave Airlie
1bab514c0a
remove config.h from build no longer exists kbuild does it
2006-10-14 23:38:20 +10:00
Thomas Hellstrom
540c64c378
Bugfixes.
2006-10-12 16:10:47 +02:00
Thomas Hellstrom
10150df02b
Simplify the AGP backend interface somewhat.
...
Fix buffer bound caching policy changing, Allow
on-the-fly changing of caching policy on bound buffers if the hardware
supports it.
Allow drivers to use driver-specific AGP memory types for TTM AGP pages.
Will make AGP drivers much easier to migrate.
2006-10-12 12:09:16 +02:00
Thomas Hellstrom
3070389367
Compatibility code for 2.6.15-2.6.18. It is ugly but a little comfort is that
...
it will go away in the mainstream kernel.
Some bugfixes, mainly in error paths.
2006-10-11 22:21:01 +02:00
Thomas Hellstrom
f2db76e2f2
Big update:
...
Adapt for new functions in the 2.6.19 kernel.
Remove the ability to have multiple regions in one TTM.
This simplifies a lot of code.
Remove the ability to access TTMs from user space.
We don't need it anymore without ttm regions.
Don't change caching policy for evicted buffers. Instead change it only
when the buffer is accessed by the CPU (on the first page fault).
This tremendously speeds up eviction rates.
Current code is safe for kernels <= 2.6.14.
Should also be OK with 2.6.19 and above.
2006-10-11 13:40:35 +02:00
Thomas Hellstrom
c58574c605
Use a nopage-based approach to fault in pfns.
2006-10-10 10:37:26 +02:00
Thomas Hellstrom
cee659afb5
Get rid of all ugly PTE hacks.
2006-10-03 12:08:07 +02:00
George Sapountzis
f3deef730d
Bug 6242: [mach64] Use private DMA buffers, part #3 .
...
Add DRM_PCI_BUFFER_RO flag for mapping PCI DMA buffer read-only. An additional
flag is needed, since PCI DMA buffers do not have an associated map.
2006-10-02 22:47:23 +03:00
Michel Dänzer
16be6ba63a
Fix type of second argument to spin_lock_irqsave().
...
(cherry picked from f6238cf624
commit)
2006-10-02 15:42:07 +02:00
Michel Dänzer
f6238cf624
Fix type of second argument to spin_lock_irqsave().
2006-10-02 15:33:19 +02:00
Thomas Hellstrom
eacedf41a6
Make the user_token 44-bit for TTMs, and have them occupy a unique file space
...
starting at 0x00100000000. This will hopefully allow us to use
unmap_mapping_range(). Note that user-space will need
64-bit file offset support.
2006-10-02 15:06:35 +02:00
Thomas Hellstrom
a31046b873
Add a buffer object manager for TTM maps.
2006-10-02 14:03:15 +02:00
Thomas Hellstrom
d85b99435f
Allow for 44 bit user-tokens (or drm_file offsets)
2006-10-02 13:49:43 +02:00
Thomas Hellstrom
418b81c65c
Add a comment to previos commit.
2006-10-02 13:37:54 +02:00
Thomas Hellstrom
c6be27401f
Trap and be verbose about a deadlock that occurs with AIGLX and drivers that
...
use drm_reclaim_buffers_locked().
2006-10-02 13:34:30 +02:00
Michel Dänzer
3a16e615ca
Make locked tasklet handling more robust.
...
Initialize the spinlock unconditionally when struct drm_device is filled in,
and return early in drm_locked_tasklet() if the driver doesn't support IRQs.
2006-10-02 11:04:42 +02:00