Jeremy Kolb [Fri, 12 Jan 2007 05:13:05 +0000 (00:13 -0500)]
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.
Michel Dänzer [Thu, 11 Jan 2007 08:02:07 +0000 (09:02 +0100)]
radeon: Fix u32 overflows when determining AGP base address in card space.
The overflows could lead to the AGP aperture overlapping the framebuffer area
in the card's address space when the latter is located at the very end of the
32 bit address space, which would result in a freeze on X server startup,
probably because the card read commands from the framebuffer instead of from
AGP.
See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392915 .
Dave Airlie [Wed, 10 Jan 2007 04:19:47 +0000 (15:19 +1100)]
Revert "nouveau: Fill in context_init for nv10-nv3x."
This reverts
ac076cb9aff976e8fae567cfa82a898bfc2712e8 commit.
Well it didn't do anything interesting...
Jeremy Kolb jkolb@brandeis.edu [Wed, 10 Jan 2007 04:12:37 +0000 (23:12 -0500)]
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.
Stephane Marchesin [Wed, 10 Jan 2007 03:42:09 +0000 (04:42 +0100)]
nouveau: Don't use DRIVER_USE_MTRR, we already setup our own mtrr over vram.
Dave Airlie [Tue, 9 Jan 2007 04:51:29 +0000 (15:51 +1100)]
ttm: make ttm alloc/free into alloc_pages/free_pages
Add a vmalloc flag to the page flags
Dave Airlie [Tue, 9 Jan 2007 02:38:36 +0000 (13:38 +1100)]
novueau: try resource 3 if resource 2 is 0 length
This happens on my NV43 PPC
Stephane Marchesin [Mon, 8 Jan 2007 19:55:57 +0000 (20:55 +0100)]
nouveau: fix nv4a context size.
Dave Airlie [Mon, 8 Jan 2007 11:26:35 +0000 (22:26 +1100)]
add export symbol for memory manager
Stephane Marchesin [Mon, 8 Jan 2007 04:02:40 +0000 (05:02 +0100)]
nouveau: nv4a context support.
Stephane Marchesin [Mon, 8 Jan 2007 02:50:34 +0000 (03:50 +0100)]
Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm
Dave Airlie [Mon, 8 Jan 2007 02:09:12 +0000 (13:09 +1100)]
i830: complete fix for i830 maps
Ben Skeggs [Mon, 8 Jan 2007 01:50:44 +0000 (12:50 +1100)]
nouveau: oops
Ben Skeggs [Mon, 8 Jan 2007 01:47:22 +0000 (12:47 +1100)]
nouveau: nv43 context stuff
Christoph Hellwig [Sun, 7 Jan 2007 23:55:49 +0000 (10:55 +1100)]
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>
Dave Airlie [Mon, 8 Jan 2007 11:27:11 +0000 (22:27 +1100)]
fixup i810/i830 to use drm_core_ioremap instead of drm_ioremap
Stephane Marchesin [Sun, 7 Jan 2007 23:11:39 +0000 (00:11 +0100)]
nouveau: fix a stupid bug from me.
Ben Skeggs [Sun, 7 Jan 2007 13:37:39 +0000 (00:37 +1100)]
nouveau: avoid allocating vram that's used as instance memory.
Ben Skeggs [Sun, 7 Jan 2007 12:56:45 +0000 (23:56 +1100)]
nouveau: map pci resource 2 on >=nv40
Keith Packard [Sun, 7 Jan 2007 01:40:50 +0000 (17:40 -0800)]
Revert i915 drm driver name to i915; miniglx doesn't work otherwise
Yes, this driver supports the new memory manager, that is indicated by the
version number being >= 1.7.
Wang Zhenyu [Mon, 4 Dec 2006 07:48:04 +0000 (15:48 +0800)]
Bump i915 minor for ARB_OC ioctl
Zou Nan hai [Mon, 4 Dec 2006 07:48:04 +0000 (15:48 +0800)]
i915: ARB_Occlusion_query(MMIO ioctl) support.
This adds a new ioctl for passing counter information from the chip back to
applications, these counters include the data needed to perform OC.
Ben Skeggs [Sat, 6 Jan 2007 07:05:21 +0000 (18:05 +1100)]
nouveau: get c51 doing glxgears without the binary driver's help.
Ben Skeggs [Sat, 6 Jan 2007 06:50:00 +0000 (17:50 +1100)]
nouveau: Use PMC_BOOT_0 to determine which ctx_voodoo to load.
Stephane Marchesin [Fri, 5 Jan 2007 19:59:45 +0000 (20:59 +0100)]
nouveau: oops, we don't need OS_HAS_MTRR actually.
Stephane Marchesin [Fri, 5 Jan 2007 19:50:46 +0000 (20:50 +0100)]
Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm
Stephane Marchesin [Fri, 5 Jan 2007 19:49:34 +0000 (20:49 +0100)]
nouveau: Add an mtrr over the whole FB
Matthieu Castet [Fri, 5 Jan 2007 18:41:12 +0000 (19:41 +0100)]
Merge branch 'master' of git+ssh://matc@git.freedesktop.org/git/mesa/drm/
Matthieu Castet [Fri, 5 Jan 2007 18:40:11 +0000 (19:40 +0100)]
Add basic pgraph context for nv10.
It only fake a context switch : pgraph state are not save/restored.
Stephane Marchesin [Fri, 5 Jan 2007 18:37:06 +0000 (19:37 +0100)]
Cleanup the nv04 fifo code a bit.
Michel Dänzer [Tue, 2 Jan 2007 09:05:48 +0000 (10:05 +0100)]
i915: Fix a DRM_ERROR that should be DRM_DEBUG.
It would clutter up the kernel output in a situation which is legitimate before
X.org 7.2 and handled correctly by the 3D driver.
Michel Dänzer [Tue, 2 Jan 2007 09:03:56 +0000 (10:03 +0100)]
Make git ignore Emacs style backup files and cscope files.
Michel Dänzer [Tue, 2 Jan 2007 09:02:44 +0000 (10:02 +0100)]
linux-core: Make git ignore generated module symbol version files.
Ben Skeggs [Tue, 2 Jan 2007 05:35:00 +0000 (16:35 +1100)]
nouveau: oops, forgot to free RAMIN..
Ben Skeggs [Tue, 2 Jan 2007 04:56:10 +0000 (15:56 +1100)]
nouveau: Hookup nv40_graph_init.
Now I can get 3D + working grctx switching on my NV40 without
the binary driver initialising the card first. However, this
change also breaks 3D on my C51 even *with* the binary driver's
help. So, it's likely that the weird voodoo is card-specific.
Ben Skeggs [Tue, 2 Jan 2007 04:08:04 +0000 (15:08 +1100)]
nouveau: Hook up grctx code for NV4x.
This is enough to get grctx switching going on my NV40 and C51 after
the binary driver has initialised the card first.
Bumping the drm patchlevel because the ddx needs some modifications to
have NV4x work at all with these changes.
Ben Skeggs [Tue, 2 Jan 2007 03:52:43 +0000 (14:52 +1100)]
nouveau: Add nv40-specific PGRAPH code, not hooked up yet.
Ben Skeggs [Tue, 2 Jan 2007 03:41:34 +0000 (14:41 +1100)]
nouveau: Only clobber PFIFO if no channels are already alloc'd
With this change the GPU is responsible for doing the channel switch
itself. This is needed for the upcoming NV4x PGRAPH context work as
we don't yet know enough to manually swap PGRAPH contexts.
Dave Airlie [Mon, 1 Jan 2007 00:30:38 +0000 (11:30 +1100)]
make build against 2.6.20 hopefully
Dave Airlie [Mon, 1 Jan 2007 00:22:35 +0000 (11:22 +1100)]
fixup permission along line of kernel
Thomas Hellstrom [Thu, 28 Dec 2006 21:17:08 +0000 (22:17 +0100)]
Add some new via chipsets.
Disable 3D functionality and AGP DMA for chipsets with the DX9 3D engine.
Thomas Hellstrom [Wed, 27 Dec 2006 18:46:46 +0000 (19:46 +0100)]
Leftover from previous commit.
Thomas Hellstrom [Wed, 27 Dec 2006 18:38:33 +0000 (19:38 +0100)]
Allow for non-power-of-two texture pitch alignment.
Thomas Hellstrom [Wed, 27 Dec 2006 14:32:09 +0000 (15:32 +0100)]
Proper allocation of AGP pages for ttms.
Ben Skeggs [Tue, 26 Dec 2006 14:58:57 +0000 (01:58 +1100)]
nouveau: return the *actual* type of memory alloc'd to userspace
Ben Skeggs [Tue, 26 Dec 2006 12:30:26 +0000 (23:30 +1100)]
nouveau: Alloc cmdbuf for each channel individually
Thomas Hellstrom [Thu, 21 Dec 2006 11:05:49 +0000 (12:05 +0100)]
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.
Thomas Hellstrom [Thu, 21 Dec 2006 09:40:25 +0000 (10:40 +0100)]
Improve memory manager accounting printout formatting.
Thomas Hellstrom [Thu, 21 Dec 2006 09:32:13 +0000 (10:32 +0100)]
Fix buggy aligned allocations.
Ben Skeggs [Thu, 21 Dec 2006 06:43:48 +0000 (17:43 +1100)]
nouveau: save/restore endianness flag on FIFO switch
This makes my G5 survive glxinfo and nouveau_demo - airlied
Thomas Hellstrom [Wed, 20 Dec 2006 18:33:50 +0000 (19:33 +0100)]
Remove the stupid root_node field from the core memory manager.
Thomas Hellstrom [Wed, 20 Dec 2006 13:40:36 +0000 (14:40 +0100)]
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.
Thomas Hellstrom [Wed, 20 Dec 2006 12:04:21 +0000 (13:04 +0100)]
Some via PCI posting flushes.
Dave Airlie [Tue, 19 Dec 2006 23:30:16 +0000 (10:30 +1100)]
Merge branch 'nouveau-1'
Dave Airlie [Tue, 19 Dec 2006 23:29:43 +0000 (10:29 +1100)]
fixup symlinks via Makefile
Dave Airlie [Tue, 19 Dec 2006 23:28:55 +0000 (10:28 +1100)]
add nouveau symlinks via git
Dave Airlie [Tue, 19 Dec 2006 23:22:43 +0000 (10:22 +1100)]
remove unused via/sis files from lk build
Thomas Hellstrom [Tue, 19 Dec 2006 22:45:59 +0000 (23:45 +0100)]
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.
Thomas Hellstrom [Tue, 19 Dec 2006 22:23:17 +0000 (23:23 +0100)]
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.
Thomas Hellstrom [Tue, 19 Dec 2006 22:14:11 +0000 (23:14 +0100)]
Reclaim buffers locked fixup.
Avoid calling reclaim_buffers_locked if we don't have a
hardware lock.
Improve reclaim_buffers_locked deadlock error formatting.
Dave Airlie [Tue, 19 Dec 2006 11:10:34 +0000 (22:10 +1100)]
add kcalloc compat for before 2.6.10
Dave Airlie [Tue, 19 Dec 2006 10:51:30 +0000 (21:51 +1100)]
remove do munmap 4 args
Dave Airlie [Tue, 19 Dec 2006 10:48:18 +0000 (21:48 +1100)]
fixup i915 return values from kernel
Dave Airlie [Tue, 19 Dec 2006 10:48:06 +0000 (21:48 +1100)]
fixup i915 defines in create script
Dave Airlie [Tue, 19 Dec 2006 10:37:50 +0000 (21:37 +1100)]
fixup inclusion of agp.h
Dave Airlie [Tue, 19 Dec 2006 10:33:47 +0000 (21:33 +1100)]
remove drm pci from 2.5 days
Dave Airlie [Tue, 19 Dec 2006 10:30:27 +0000 (21:30 +1100)]
remove legacy taskqueue code
Dave Airlie [Tue, 19 Dec 2006 09:29:03 +0000 (20:29 +1100)]
drm: remove all 2.4 support for drm development tree.
Bye bye 2.4 you served us well..
Dave Airlie [Tue, 19 Dec 2006 07:27:20 +0000 (18:27 +1100)]
[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>
Dave Airlie [Tue, 19 Dec 2006 07:24:44 +0000 (18:24 +1100)]
[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>
Dave Airlie [Tue, 19 Dec 2006 07:03:20 +0000 (18:03 +1100)]
fix irq args compatiblity with pre 2.6.19
Dave Airlie [Tue, 19 Dec 2006 06:57:16 +0000 (17:57 +1100)]
use unifdef to clean up some code
Dave Airlie [Tue, 19 Dec 2006 06:57:01 +0000 (17:57 +1100)]
fix comment in r128
Dave Airlie [Tue, 19 Dec 2006 06:46:10 +0000 (17:46 +1100)]
fix some sizes in sis_drv.h
Dave Airlie [Tue, 19 Dec 2006 06:42:45 +0000 (17:42 +1100)]
make sizeof match the copy struct
Dave Airlie [Tue, 19 Dec 2006 06:22:04 +0000 (17:22 +1100)]
remove inline from large function
Dave Airlie [Tue, 19 Dec 2006 06:03:42 +0000 (17:03 +1100)]
make a savage function static from kernel
Dave Airlie [Tue, 19 Dec 2006 05:58:48 +0000 (16:58 +1100)]
use spin_lock_init in via dmablit
Dave Airlie [Tue, 19 Dec 2006 05:58:27 +0000 (16:58 +1100)]
fix missing DRM_ERR from kernel
Dave Airlie [Tue, 19 Dec 2006 05:44:57 +0000 (16:44 +1100)]
Revert "drm: ioremap balanced with iounmap for drivers/char/drm"
This reverts
cc22cd8bde39f3e4be8ca9f726a773b0270ebdbc commit.
I put this patch incorrectly in .. will fix now
Dave Airlie [Tue, 19 Dec 2006 05:39:13 +0000 (16:39 +1100)]
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>
Michael Buesch [Fri, 15 Dec 2006 13:24:24 +0000 (14:24 +0100)]
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>
Thomas Hellstrom [Fri, 15 Dec 2006 11:37:24 +0000 (12:37 +0100)]
Remove the memory caches for fence objects and memory manager nodes,
since the support for memory caches has gone from 2.6.20.
Michel Dänzer [Thu, 14 Dec 2006 18:31:56 +0000 (19:31 +0100)]
Unify radeon offset checking.
Replace r300_check_offset() with generic radeon_check_offset(), which doesn't
reject valid offsets when the framebuffer area is at the very end of the card's
32 bit address space. Make radeon_check_and_fixup_offset() use
radeon_check_offset() as well.
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=7697 .
Ben Skeggs [Mon, 11 Dec 2006 13:11:42 +0000 (00:11 +1100)]
Port remaining NV4 RAMIN access from the ddx into the drm.
Should fix lockups seen on NV4 cards.
Stephane Marchesin [Sun, 3 Dec 2006 09:02:54 +0000 (10:02 +0100)]
Merge the pciid work.
Add getparams for AGP and FB physical adresses.
Fix the MEM_ALLOC issue properly.
Fix context switches for nv44.
Change the DRM version to 0.0.1.
Michel Dänzer [Fri, 1 Dec 2006 10:00:32 +0000 (11:00 +0100)]
Core build fix for BSD.
Michel Dänzer [Fri, 1 Dec 2006 09:46:21 +0000 (10:46 +0100)]
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.
Michel Dänzer [Sat, 21 Oct 2006 14:14:20 +0000 (16:14 +0200)]
Track linux-core symlinks in git.
Ben Skeggs [Wed, 29 Nov 2006 23:31:42 +0000 (10:31 +1100)]
Use nouveau_mem.c to allocate RAMIN.
Ben Skeggs [Wed, 29 Nov 2006 21:35:42 +0000 (08:35 +1100)]
Wrap access to objects in RAMIN.
This will make it easier to support extra RAMIN in vram at a later point.
Matthieu Castet [Tue, 28 Nov 2006 20:32:03 +0000 (21:32 +0100)]
For nv10, bit 16 of RAMFC need to be set for 64 bytes fifo context.
When cleaning a fifo, we shouldn't assume everybody use nv40 ;)
Fill DMA_SUBROUTINE fill correct value.
Michel Dänzer [Thu, 26 Oct 2006 11:15:30 +0000 (13:15 +0200)]
i915_vblank_tasklet: Try harder to avoid tearing.
Previously, if there were several buffer swaps scheduled for the same vertical
blank, all but the first blit emitted stood a chance of exhibiting tearing. In
order to avoid this, split the blits along slices of each output top to bottom.
Stephane Marchesin [Tue, 21 Nov 2006 22:32:58 +0000 (23:32 +0100)]
Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1
Ben Skeggs [Tue, 21 Nov 2006 00:41:46 +0000 (11:41 +1100)]
Don't spam dmesg if PMC_INTSTAT is 0
Ben Skeggs [Fri, 17 Nov 2006 23:09:29 +0000 (10:09 +1100)]
Only return FIFO number if the FIFO is marked as in use..
Ben Skeggs [Fri, 17 Nov 2006 23:03:45 +0000 (10:03 +1100)]
Check some return vals, fixes a couple of oopses.
Ben Skeggs [Thu, 16 Nov 2006 21:05:23 +0000 (08:05 +1100)]
Dump some useful info when a PGRAPH error occurs.
The "channel" detect doesn't work on my nv40, but the rest
seems to produce sane info.
Stephane Marchesin [Thu, 16 Nov 2006 13:47:52 +0000 (14:47 +0100)]
Merge branch 'nouveau-1' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1
Ben Skeggs [Mon, 13 Nov 2006 22:00:31 +0000 (09:00 +1100)]
Completely untested NV10/20/30 FIFO context switching changes.