Commit graph

2259 commits

Author SHA1 Message Date
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
Alan Hourihane
14c49df06b merge fixes 2007-06-29 20:14:09 +01:00
Alan Hourihane
8a78dead29 Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
Conflicts:

	linux-core/drm_drv.c
	linux-core/drm_fops.c
	linux-core/drm_objects.h
	linux-core/drm_stub.c
	shared-core/i915_dma.c
2007-06-29 20:09:44 +01: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
Alan Hourihane
e79e2a5816 Fix type/flags usage problem to check for preferred modes.
Add more debugging to help diagnose problems.
2007-06-28 21:25:13 +01: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