Commit graph

1300 commits

Author SHA1 Message Date
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