OSDN Git Service
Dave Airlie [Thu, 3 Jan 2008 06:05:13 +0000 (16:05 +1000)]
Merge branch 'r500-support'
Dave Airlie [Thu, 3 Jan 2008 06:03:05 +0000 (16:03 +1000)]
remove duplicate pciids
Xiang, Haihao [Wed, 26 Dec 2007 09:13:58 +0000 (17:13 +0800)]
i915: return fence argument from i915_execbuffer ioctl32 routine
Xiang, Haihao [Tue, 25 Dec 2007 08:57:14 +0000 (16:57 +0800)]
i915: i915_execbuffer ioctl32 routine, fix #13732
Keith Packard [Mon, 17 Dec 2007 06:00:45 +0000 (22:00 -0800)]
Change drm_bo_type_dc to drm_bo_type_device and comment usage of this value.
I couldn't figure out what drm_bo_type_dc was for; Dave Airlie finally clued
me in that it was the 'normal' buffer objects with kernel allocated pages
that could be mmapped from the drm device file.
I thought that 'drm_bo_type_device' was a more descriptive name.
I also added a bunch of comments describing the use of the type enum values and
the functions that use them.
Keith Packard [Mon, 17 Dec 2007 04:16:50 +0000 (20:16 -0800)]
Rename inappropriately named 'mask' fields to 'proposed_flags' instead.
Flags pending validation were stored in a misleadingly named field, 'mask'.
As 'mask' is already used to indicate pieces of a flags field which are
changing, it seems better to use a name reflecting the actual purpose of
this field. I chose 'proposed_flags' as they may not actually end up in
'flags', and in an case will be modified when they are moved over.
This affects the API, but not ABI of the user-mode interface.
Keith Packard [Sun, 16 Dec 2007 09:47:51 +0000 (01:47 -0800)]
Use dummy_read_page for unpopulated kernel-allocated ttm pages.
Previously, dummy_read_page was used only for read-only user allocations; it
filled in pages that were not present in the user address map (presumably,
these were allocated but never written to pages).
This patch allows them to be used for read-only ttms allocated from the
kernel, so that applications can over-allocate buffers without forcing every
page to be allocated.
Keith Packard [Sun, 16 Dec 2007 09:12:07 +0000 (01:12 -0800)]
Move dummy_read_page from drm_ttm_set_user to drm_ttm_create.
I'm hoping to use the dummy_read_page for kernel allocated buffers to avoid
allocating extra pages for read-only buffers (like vertex and batch buffers).
This also eliminates the 'write' parameter to drm_ttm_set_user and just
has DRM_TTM_PAGE_WRITE passed into drm_ttm_create.
Keith Packard [Sun, 16 Dec 2007 08:54:25 +0000 (00:54 -0800)]
Clean up and document drm_ttm.c APIs. drm_bind_ttm -> drm_ttm_bind.
Aside from changing drm_bind_ttm to drm_ttm_bind, this patch
adds only documentation and fixes the functions inside drm_ttm.c
to all be prefixed with drm_ttm_.
Li Zefan [Sun, 16 Dec 2007 23:50:45 +0000 (09:50 +1000)]
drm: don't cast a pointer to pointer of list_head
The casting is safe only when the list_head member is the first member of
the structure.
Jesper Juhl [Sun, 16 Dec 2007 23:45:03 +0000 (09:45 +1000)]
While reading some code I stumbled across the use of 'err' in
drivers/char/drm/mga_dma.c::mga_do_cleanup_dma() and I think there's a small
problem.
The variable is only used inside #if __OS_HAS_AGP which is fine, but all
that
ever happens is an assignment to the variable - it is never actually used
for
anything. The variable is nicely initialized to zero which is also what the
return statement at the end of function returns (always at the moment).
It looks to me like that function should be returning 'err' instead of
always
just returning 0. Here's a patch to do that.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Keith Packard [Fri, 14 Dec 2007 21:19:35 +0000 (13:19 -0800)]
Document drm_ttm_set_user.
Add a comment explaining the parameters for this function
Keith Packard [Fri, 14 Dec 2007 21:19:09 +0000 (13:19 -0800)]
Document drm_buffer_object_validate function.
Just add documentation for this function, no code changes.
Keith Packard [Fri, 14 Dec 2007 20:49:22 +0000 (12:49 -0800)]
Document fence_class mess in drm_bo_setstatus_ioctl
drmBOSetStatus does not bother to set the fence_class parameter.
Fortunately, drm_bo_setstatus_ioctl doesn't end up using it as it
calls drm_bo_handle_validate with use_old_fence_class = 1.
Keith Packard [Fri, 14 Dec 2007 20:45:55 +0000 (12:45 -0800)]
Document drm_bo_handle_validate. Match drm_bo_do_validate parameter order.
Document parameters and usage for drm_bo_handle_validate. Change parameter
order to match drm_bo_do_validate (fence_class has been moved to after
flags, hint and mask values). Existing users of this function have been
changed, but out-of-tree users must be modified separately.
Keith Packard [Fri, 14 Dec 2007 20:33:35 +0000 (12:33 -0800)]
Document drm_bo_do_validate. Remove spurious 'do_wait' parameter.
Add comments about the parameters to drm_bo_do_validate, along
with comments for the DRM_BO_HINT options. Remove the 'do_wait'
parameter as it is duplicated by DRM_BO_HINT_DONT_BLOCK.
Keith Packard [Fri, 14 Dec 2007 19:42:17 +0000 (11:42 -0800)]
Make ttm create/destroy APIs consistent. Pass page_flags in create.
Creating a ttm was done with drm_ttm_init while destruction was done with
drm_destroy_ttm. Renaming these to drm_ttm_create and drm_ttm_destroy makes
their use clearer. Passing page_flags to the create function will allow that
to know whether user or kernel pages are needed, with the goal of allowing
kernel ttms to be saved for later reuse.
Patrice Mandin [Sat, 15 Dec 2007 09:23:30 +0000 (10:23 +0100)]
Revert "nouveau: nv30: missing ramin init, does it brake other hw?"
This reverts commit
46235ea4595152d8dd5f016c18c6845a77db30b0.
Alan Hourihane [Thu, 13 Dec 2007 10:40:36 +0000 (10:40 +0000)]
catch an out of memory condition
Keith Packard [Wed, 12 Dec 2007 04:21:23 +0000 (20:21 -0800)]
Make relocation validate client computed values when debugging
Keith Packard [Thu, 6 Dec 2007 23:12:21 +0000 (15:12 -0800)]
i915: wait for buffer idle before writing relocations
When writing a relocation entry, make sure the target buffer is idle,
otherwise the GPU may see inconsistent data.
Keith Packard [Wed, 5 Dec 2007 04:54:53 +0000 (20:54 -0800)]
Bump driver minor for relocation optimzations
Keith Packard [Tue, 4 Dec 2007 20:22:30 +0000 (12:22 -0800)]
Allow relocation to be skipped when buffers don't move.
One of the costs of superioctl has been the need to perform relocations
inside the kernel. The cost of mapping the buffers to the CPU and writing
data is fairly high, especially if those buffers have been mapped and read
by the GPU.
If we assume that buffers don't move around very often, we can have the
client compute the relocations itself using the previous GPU address. When
that object doesn't move, the kernel can skip computing and writing the
updated data.
Here's a patch which adds a new field to struct drm_bo_info_req called
'presumed_offset', and a new DRM_BO_HINT_PRESUMED_OFFSET that is set when
this field has been filled in by the client.
There are two separate optimizations performed when the presumed_offset is
correct:
1. i915_exec_reloc checks to see if all previous buffer offsets were guessed
correctly. If so, there's no need for it to look at *any* of the
relocations for a buffer. When this happens, it skips the whole
relocation process, simply returning success.
2. i915_apply_reloc checks to see if the target buffer offset was guessed
correctly. If so, it skips mapping the relocatee, computing the
relocation and writing the value. If no relocations are needed, the
relocatee should never be mapped to the CPU, and so the kernel shouldn't
need to wait for any fences to pass.
Dave Airlie [Mon, 10 Dec 2007 05:53:59 +0000 (15:53 +1000)]
Merge branch 'master' into r500-support
Dave Airlie [Mon, 10 Dec 2007 00:13:52 +0000 (10:13 +1000)]
drm: move agp include outside CONFIG_AGP as it isn't dependant on agp in kernel
José Fonseca [Sat, 8 Dec 2007 19:21:27 +0000 (19:21 +0000)]
mach64: comment bus master / ring buffer behavior and security
Jesse Barnes [Fri, 7 Dec 2007 22:24:45 +0000 (14:24 -0800)]
Fix pipe<->plane mapping vs. vblank handling (again)
If drmMinor >= 6, the intel DDX driver will enable vblank events on both
pipes. If drmMinor >= 10 on pre-965 chipsets, the intel DDX driver will
swap the pipe<->plane mapping to allow for framebuffer compression on
laptop screens. This means the secondary vblank counter (corresponding
to pipe B) will be incremented when vblank interrupts occur.
Now Mesa waits for vblank events on whichever plane has a greater
portion of the displayed window. So it will happly ask to wait for the
primary counter even though that one won't increment.
So we can fix this in either the DDX driver, Mesa or the kernel (though
I thought we already had several times).
Since current (and previous) userspace assumes it's talking about a pipe
== plane situation and now uses planes when talking to the kernel, we
should probably just hide the mapping details there (indeed they already
are hidden there for vblank swaps), which this patch does.
So as far as userland is concerned, whether we call things planes or
pipes is irrelevant, as long as kernel developers understand that
userland hands them planes and they have to figure out which pipe that
corresponds to (which will typically be the same on 965+ hardware and
reversed on pre-965 mobile chips).
Dave Airlie [Thu, 6 Dec 2007 06:03:28 +0000 (16:03 +1000)]
take down stuff after asking driver to unload
José Fonseca [Wed, 5 Dec 2007 22:53:02 +0000 (22:53 +0000)]
mach64: make buffer emission macros normal functions
José Fonseca [Wed, 5 Dec 2007 00:10:39 +0000 (00:10 +0000)]
mach64: use utf-8
Kristian Høgsberg [Wed, 5 Dec 2007 19:43:22 +0000 (14:43 -0500)]
Remove references to the sarea_priv perf_boxes field.
This field isn't touched or read by any other code in the stack so it's
time to retire these last few references.
Dave Airlie [Tue, 4 Dec 2007 18:54:58 +0000 (04:54 +1000)]
patch from -mm kernel to use upper_32_bits
Robert Noland [Sun, 2 Dec 2007 06:45:09 +0000 (01:45 -0500)]
bsd: Replace other occurrences of msleep with mtx_sleep
Robert Noland [Sun, 2 Dec 2007 06:23:11 +0000 (01:23 -0500)]
bsd: Now make secondary vblank work
We needed to specifically check for driver support and test the correct
vbl_received value. Also pulled over support for _DRM_VBLANK_NEXTONMISS
from the linux code.
Robert Noland [Sat, 1 Dec 2007 22:09:49 +0000 (17:09 -0500)]
bsd: Hook secondary vblank support.
Robert Noland [Sat, 1 Dec 2007 21:35:48 +0000 (16:35 -0500)]
bsd: Fix typo in i915_drv.c
Robert Noland [Sun, 25 Nov 2007 17:54:31 +0000 (12:54 -0500)]
mtx_sleep is preferred to msleep
Calling semantics are the same and both were introduced in 5.0
Robert Noland [Sun, 25 Nov 2007 17:50:07 +0000 (12:50 -0500)]
Clarify order of operations
Robert Noland [Sat, 24 Nov 2007 06:56:05 +0000 (01:56 -0500)]
DRM_DEBUG already prints the function name.
Robert Noland [Sat, 1 Dec 2007 07:40:13 +0000 (02:40 -0500)]
drm: Add _DRM_DRIVER map flag.
This flag indicates that the driver is responsible for the map.
Robert Noland [Sat, 1 Dec 2007 07:32:23 +0000 (02:32 -0500)]
bsd: Move counter initialization to load time.
Maarten Maathuis [Fri, 30 Nov 2007 21:50:34 +0000 (22:50 +0100)]
nouveau: Properly identify NV40 and NV44 generation.
Jiri Slaby [Wed, 28 Nov 2007 23:55:38 +0000 (09:55 +1000)]
Beside the emitted warning, the added cast (u64 -> unsigned) strips out
part of address on 64 bit. Cast to unsigned long instead.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Dave Airlie [Wed, 28 Nov 2007 23:47:24 +0000 (09:47 +1000)]
drm: enable udev node creation
Dave Airlie [Wed, 28 Nov 2007 23:46:02 +0000 (09:46 +1000)]
drm: oops not a cleanup..
Robert C. Noland III [Wed, 28 Nov 2007 05:33:42 +0000 (00:33 -0500)]
Fix up drm_ati_pcigart_info
Dave Airlie [Wed, 28 Nov 2007 23:37:51 +0000 (09:37 +1000)]
drm: more cleanups
Dave Airlie [Wed, 28 Nov 2007 12:46:06 +0000 (22:46 +1000)]
i965: oops force mi batchbuffer start
Dave Airlie [Mon, 26 Nov 2007 22:43:14 +0000 (08:43 +1000)]
r500: add a bunch of all r5xx pci ids..
fix up a range that may be needed for r500 mesa
Dave Airlie [Thu, 22 Nov 2007 06:10:36 +0000 (16:10 +1000)]
drm: major whitespace/coding style realignment with kernel
Dave Airlie [Thu, 22 Nov 2007 03:29:17 +0000 (13:29 +1000)]
drm: cleanup drm_regman.c coding style
Dave Airlie [Wed, 21 Nov 2007 23:17:34 +0000 (09:17 +1000)]
i915: add context handle to superioctl struct
This will be used later for lockless operation.
Dave Airlie [Wed, 21 Nov 2007 22:15:12 +0000 (08:15 +1000)]
r500: add pci id for X1650
Jerome Glisse [Sun, 18 Nov 2007 18:16:40 +0000 (19:16 +0100)]
drm: don't reset to 0 irq_enabled when client open file descriptor
Dave Airlie [Wed, 21 Nov 2007 03:02:19 +0000 (13:02 +1000)]
r500: suggestion from glisse to not add cliprect offset on r5xx
Dave Airlie [Mon, 19 Nov 2007 22:44:33 +0000 (08:44 +1000)]
radeon: add initial r5xx support
Eric Anholt [Mon, 19 Nov 2007 16:41:23 +0000 (08:41 -0800)]
Fix capitalization of __linux__ define.
Jerome Glisse [Mon, 19 Nov 2007 13:37:21 +0000 (14:37 +0100)]
drm: fix dead lock in drm_buffer_object_transfer
Robert Noland [Tue, 13 Nov 2007 22:50:46 +0000 (17:50 -0500)]
Bug #13233: Fix build on FreeBSD.
Robert Noland [Mon, 19 Nov 2007 06:40:13 +0000 (22:40 -0800)]
Bug #13233: Chase move of agp headers on FreeBSD.
Dave Airlie [Sun, 18 Nov 2007 09:25:31 +0000 (19:25 +1000)]
radeon: refactor out the fb/agp location read/write.
Add a new get param to get the fb location into userspace. Mesa currently
hits MMIO to do this, but this isn't always possible.
Stephane Marchesin [Fri, 16 Nov 2007 14:02:25 +0000 (15:02 +0100)]
nouveau: also mention the number of succcessfully copied bios bytes.
Jeremy Kolb [Fri, 16 Nov 2007 03:09:59 +0000 (22:09 -0500)]
nouveau: rename
Jeremy Kolb [Fri, 16 Nov 2007 01:46:49 +0000 (20:46 -0500)]
nouveau: flip buffer into gart.
Stephane Marchesin [Thu, 15 Nov 2007 19:42:38 +0000 (20:42 +0100)]
nouveau: be verbose about PPC bios for now.
Stephane Marchesin [Thu, 15 Nov 2007 17:01:26 +0000 (18:01 +0100)]
nouveau: revert the nv34 context size change, it was not the culprit after all.
Stephane Marchesin [Thu, 15 Nov 2007 15:00:25 +0000 (16:00 +0100)]
nouveau: use get_property instead of of_get_property on pre-2.6.22 kernels.
Thomas Hellstrom [Thu, 15 Nov 2007 09:38:55 +0000 (10:38 +0100)]
mm fixups.
Dave Airlie [Thu, 15 Nov 2007 03:43:23 +0000 (14:43 +1100)]
i915: remove excess debug output
Stephane Marchesin [Thu, 15 Nov 2007 02:43:22 +0000 (03:43 +0100)]
nouveau: Copy the PPC bios to RAMIN on init, that lets us do proper output detection in user space.
Dave Airlie [Thu, 15 Nov 2007 02:29:55 +0000 (13:29 +1100)]
intel: add flushing for i8xx chipsets.
Add a nut vs hammer style chipset flush for the i8xx chipsets - reenable TTM
code paths
Patrice Mandin [Wed, 14 Nov 2007 22:31:59 +0000 (23:31 +0100)]
nouveau: nv30: missing ramin init, does it brake other hw?
Kristian Høgsberg [Wed, 14 Nov 2007 19:28:34 +0000 (14:28 -0500)]
Add new shared header file drm_internal.h.
This header file is shared across linux and bsd, but is not installed
for user space to access. It's the place to put prototypes and data
types that aren't platform or chipset specific, but still internal to
the drm.
Stephane Marchesin [Wed, 14 Nov 2007 01:52:55 +0000 (02:52 +0100)]
nouveau: adjust the size of the NV34 context. That fixes mobile PPC cards.
Thomas Hellstrom [Tue, 13 Nov 2007 14:42:08 +0000 (15:42 +0100)]
Fix ttmtest.
Ben Skeggs [Tue, 13 Nov 2007 18:36:20 +0000 (05:36 +1100)]
nouveau: Also wait until CACHE1 gets emptied.
Ben Skeggs [Tue, 13 Nov 2007 18:11:11 +0000 (05:11 +1100)]
Revert "nouveau: stub superioctl"
This reverts commit
2370ded79b4176d76cda1ec5f495fd33c2d566ed.
Err.. didn't mean for that to slip in :)
Ben Skeggs [Tue, 13 Nov 2007 18:09:07 +0000 (05:09 +1100)]
Merge branch 'fifo-cleanup' into upstream-master
Ben Skeggs [Tue, 13 Nov 2007 17:24:36 +0000 (04:24 +1100)]
nouveau: Attempt to wait for channel idle before we destroy it.
Ben Skeggs [Tue, 13 Nov 2007 17:15:13 +0000 (04:15 +1100)]
nouveau: Use "new" NV40 USER control regs.
Probably entirely pointless, but a simple change in any case.
Ben Skeggs [Tue, 13 Nov 2007 17:05:48 +0000 (04:05 +1100)]
nouveau: store user control reg offsets in channel struct
Ben Skeggs [Tue, 13 Nov 2007 16:27:37 +0000 (03:27 +1100)]
nouveau: funcs to determine active channel on PFIFO.
Ben Skeggs [Thu, 8 Nov 2007 17:27:23 +0000 (04:27 +1100)]
nouveau: stub superioctl
Jesse Barnes [Sat, 10 Nov 2007 22:39:36 +0000 (14:39 -0800)]
Make sure PLLs are enabled before writing pipe configuration regs
Fix from the X driver. Make sure the PLLs are enabled and not in VGA mode
before writing PIPE(A|B)CONF regs to avoid hangs or crashes.
Patrice Mandin [Fri, 9 Nov 2007 17:08:08 +0000 (18:08 +0100)]
suspend() and resume() need kernel 2.6.22 or later
Thomas Hellstrom [Wed, 7 Nov 2007 17:07:10 +0000 (18:07 +0100)]
Don't overwrite TTM page flags.
Dave Airlie [Wed, 7 Nov 2007 13:10:24 +0000 (23:10 +1000)]
i915: oops disable TTM is backwards
Thomas Hellstrom [Tue, 6 Nov 2007 08:47:57 +0000 (09:47 +0100)]
Avoid buffers not ending up on a list in some cases.
Thomas Hellstrom [Tue, 6 Nov 2007 08:36:25 +0000 (09:36 +0100)]
Add missing drm_regman.c file.
Dave Airlie [Tue, 6 Nov 2007 07:13:46 +0000 (18:13 +1100)]
i915: disable TTM on 8xx chips for now until flushing is solved
Dave Airlie [Tue, 6 Nov 2007 07:00:10 +0000 (18:00 +1100)]
i915: compat code doesn't work in i8xx hw.
Zhenyu Wang [Tue, 6 Nov 2007 06:59:14 +0000 (17:59 +1100)]
[PATCH] i915: fix missing G33 detect in IS_I9XX
G33 detect seems missing with Jesse's suspend/resume patch.
Dave Airlie [Tue, 6 Nov 2007 02:12:10 +0000 (12:12 +1000)]
drm/agp: kernel style fixes
Dave Airlie [Tue, 6 Nov 2007 01:32:58 +0000 (11:32 +1000)]
i915: cleanup most of the whitespace
Thomas Hellstrom [Mon, 5 Nov 2007 12:22:00 +0000 (13:22 +0100)]
Export a symbol.
Thomas Hellstrom [Mon, 5 Nov 2007 12:20:16 +0000 (13:20 +0100)]
Fix a user-buffer check.
Dave Airlie [Mon, 5 Nov 2007 09:14:23 +0000 (19:14 +1000)]
drm: more kernel coding style cleanups
Dave Airlie [Mon, 5 Nov 2007 09:09:18 +0000 (19:09 +1000)]
drm/ttm: apply linux kernel coding style to bo_lock/move/object/ttm.c
Dave Airlie [Mon, 5 Nov 2007 09:05:32 +0000 (19:05 +1000)]
drm/ttm: kernel coding style for bo.c and objects.h
Dave Airlie [Mon, 5 Nov 2007 08:56:46 +0000 (18:56 +1000)]
drm: fix the the typo