Commit Graph

2174 Commits (fc33686ef044a4a59d48da2a648a0c2d0a1a7fd6)

Author SHA1 Message Date
Dave Airlie 6a27e019bc radeon: fixup checks for crtc in dpms paths 2008-08-28 11:30:20 +10:00
Dave Airlie f9d4c58d43 radeon: braino pointed out on mailing list
thanks to Ville Syrjälä
2008-08-27 12:35:11 +10:00
Dave Airlie a4167e7b57 radeon: avoid oops on encoders with no crtc set 2008-08-27 11:12:19 +10:00
Stephane Marchesin bffbb497e2 Change git-describe into git describe. 2008-08-27 02:27:10 +02:00
Dave Airlie 01b2e7368a radeon/ttm: add support for zeroing the contents of VRAM buffers
This uses a solid fill fastpath, falling back to the slow memset path.
2008-08-26 17:44:47 +10:00
Dave Airlie 203243eea5 drm: add move zero function to memset unclean buffers 2008-08-26 17:43:12 +10:00
Dave Airlie c72a4e20e8 drm/ttm: export drm_bo_add_ttm 2008-08-26 17:42:36 +10:00
Dave Airlie 361ab10d2f radeon: fixup domains and use them properly 2008-08-26 17:39:00 +10:00
Dave Airlie 4c8e8e0d0b drm: add memory clean flag.
When the mapping is clean this flag will be set. This can be used
by a driver to save migrating and allocating pages for an object
that will first be used in VRAM.
2008-08-26 17:33:46 +10:00
Alex Deucher ba61880ac8 radeon: fix warning from radeon_legacy_state removal 2008-08-19 13:06:04 -04:00
Alex Deucher b2c19c788a radeon: legacy lvds updates 2008-08-19 13:03:23 -04:00
Alex Deucher 232c369a05 radeon: first pass at legacy dac detect
- done: primary dac, vga on tvdac
- todo: ext dac, tv on tvdac
2008-08-17 18:38:41 -04:00
Alex Deucher aed70622ab radeon: first pass at bios scratch regs
- todo: updated connected status
2008-08-17 18:09:07 -04:00
Alex Deucher 226c97e3b7 radeon: remove unused legacy state 2008-08-17 15:38:05 -04:00
Alex Deucher 6af286079b radeon: get primary dac adj info from bios tables 2008-08-17 15:33:31 -04:00
Maarten Maathuis a5381cac55 nouveau: make it compile under 2.6.27 2008-08-17 00:41:50 +02:00
Maarten Maathuis ba840fca19 linux: on_each_cpu has 3 args on 2.6.27 2008-08-17 00:35:06 +02:00
Jesse Barnes a2adc69656 i915: finish removing TTM bits
Makes it build again.
2008-08-16 12:09:24 -07:00
Jesse Barnes d313108167 Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem 2008-08-16 11:45:53 -07:00
Jesse Barnes 893315d49e i915: set domain properly on fb mapping, flush out changes
The user visible ioctl does this, but since we call into GEM internals
directly, we have to flush things ourselves.  Fixes initial fb console
corruption.
2008-08-16 11:35:10 -07:00
Dave Airlie 2030db7532 radeon: reserve 64k of VRAM for now for text mode so we don't trample it
need to revisit this later I'm sure
2008-08-15 09:56:42 +10:00
Dave Airlie e0bbd04eb0 radeon: fix LVDS modes problem 2008-08-15 09:42:06 +10:00
Dave Airlie 30ff279e42 radeon: add support for memory map init 2008-08-14 14:43:51 +10:00
Jesse Barnes 5f9e4a764a i915: update cursor handling to use GEM objects 2008-08-13 16:57:42 -07:00
Dave Airlie 2d4420c666 Merge branch 'radeon-gem-cs' into modesetting-gem
Conflicts:

	libdrm/xf86drm.c
	linux-core/Makefile.kernel
	linux-core/drmP.h
	linux-core/drm_compat.h
	linux-core/drm_drv.c
	linux-core/drm_stub.c
	linux-core/drm_vm.c
	shared-core/i915_dma.c
	shared-core/r300_cmdbuf.c
	shared-core/radeon_drv.h
2008-08-14 09:36:34 +10:00
Alex Deucher 2a65759d15 Add com bios asic init bits 2008-08-14 09:19:03 +10:00
Alex Deucher f38fff5416 Fill in and make use of more com bios tables on legacy chips 2008-08-14 09:19:03 +10:00
Alex Deucher 9b79d356c1 Add additional quirks from ddx 2008-08-14 09:19:03 +10:00
Alex Deucher a1f1202470 Fix warnings 2008-08-14 09:19:03 +10:00
Alex Deucher b486ed7f7d Get legacy working finally
- extra ~ in RADEON_WRITE_P()
- re-arrange crtc setup a bit
- add debugging for tracing calls
- fix pitch calculation
2008-08-14 09:19:03 +10:00
Alex Deucher 8867eca872 set base in legacy crtc mode set 2008-08-14 09:19:03 +10:00
Alex Deucher ae89ced7de Convert COM BIOS to table offset lookup function 2008-08-14 09:19:03 +10:00
Alex Deucher 5af426a2b2 Restructure cursor handling and add support for legacy cursors 2008-08-14 09:19:03 +10:00
Alex Deucher f2351ab38c atom: implement crtc lock 2008-08-14 09:19:03 +10:00
Alex Deucher e20c670a5a LUT updates
- Add gamma set for legacy chips
- Add 16 bpp gamma set
2008-08-14 09:19:03 +10:00
Alex Deucher d4f9eaa55a various cleanups
- white space
- move i2c_lock to radeon_i2c.c
- enable tv dac on legacy
2008-08-14 09:19:03 +10:00
Alex Deucher 019745c417 Add legacy dac detect stubs 2008-08-14 09:19:03 +10:00
Alex Deucher b6f5b8ec71 unify connector, i2c handling for atom and legacy 2008-08-14 09:19:02 +10:00
Alex Deucher 5f427e9aae Brute force port of legacy crtc/encoder code
- removed save/init/restore chain with set functions
2008-08-14 09:19:02 +10:00
Alex Deucher 7677c2dba5 on_each_cpu() compat fixup from krh 2008-08-14 09:19:02 +10:00
Dave Airlie 0580785030 radeon: FEDORA: patch to make 3D driver work
set gart buffers start
2008-08-14 09:15:28 +10:00
Dave Airlie 58df2fa0ec radeon: remove debugging 2008-08-14 09:14:56 +10:00
Dave Airlie b0ee12e6bb radeon: use mm_enabled variable to denote memory manager running 2008-08-14 09:14:14 +10:00
Dave Airlie 18020e5e96 radeon: make buffer swap for older drivers work again on GEM 2008-08-14 09:12:36 +10:00
Dave Airlie 957c71ff52 radeon: FEDORA: add old DMA buffers on top of GEM
This really shouldn't go upstream, it just lets me
run the old 3D driver on GEM setup system
2008-08-14 09:10:11 +10:00
Jesse Barnes b8724ae647 Merge branch 'modesetting-101' into modesetting-gem 2008-08-13 10:09:41 -07:00
Jesse Barnes 2f03ba4aad Merge branch 'master' into modesetting-gem
Conflicts:

	libdrm/Makefile.am
	libdrm/xf86drm.h
	shared-core/i915_dma.c
	shared-core/i915_irq.c
2008-08-13 10:08:02 -07:00
Thomas Hellstrom af12ef4f6b Don't call the vblank tasklet with irqs disabled.
If a specific tasklet shares data with irq context,
it needs to take a private irq-blocking spinlock within
the tasklet itself.
2008-08-13 10:04:21 +02:00
Jesse Barnes 085df6491e Add error checking to framebuffer creation
Make the Intel routine return an error if needed and make the core check for
it.
2008-08-12 18:23:58 -07:00
Dave Airlie 08faab27e5 drm_vm: fix for build on 2.6.22
thanks to malc0 for pointing it out
2008-08-11 10:58:41 +10:00
Dave Airlie 280d415957 drm: add OS_HAS_GEM option.
To build i915 driver pass OS_HAS_GEM=1 to make for now
2008-08-11 10:47:00 +10:00
Maarten Maathuis f79ed55462 NV50: enable hotplug irq 2008-08-09 19:47:06 +02:00
Maarten Maathuis 2b7feebb8a NV50: call drm_sysfs_hotplug_event when appropriate 2008-08-09 19:33:32 +02:00
Dave Airlie 12e6a114cf drm: TRUE/true 2008-08-09 17:19:16 +10:00
Eric Anholt e1b8e79796 Merge branch 'drm-gem'
Conflicts:

	shared-core/i915_dma.c

This brings in kernel support and userland interface for intel GEM.
2008-08-08 14:05:01 -07:00
Dave Airlie c2184e450e radeon: add initial support for legacy crtc/encoders.
not all there yet
2008-08-08 16:04:45 +10:00
Jesse Barnes 8074b2e83d Make modesetting-gem build with recent kernels
Needed to merge in VM fault changes & pci_read_base API update.
2008-08-07 17:15:50 -07:00
Jesse Barnes c7fb19e9b0 Merge branch 'drm-gem' into modesetting-gem 2008-08-07 14:02:04 -07:00
Keith Packard ac20e14d23 Switch from shmem_getpage to read_mapping_page 2008-08-06 10:11:11 -07:00
Dave Airlie 8c042a0b05 radeon: fixup PCI GART table with GEM enabled 2008-08-06 15:59:31 +10:00
Dave Airlie 6435958673 radeon: just evict to TT not cached 2008-08-06 15:58:09 +10:00
Dave Airlie a6c075fca6 drm: don't teardown things in modeset paths 2008-08-06 15:57:38 +10:00
Dave Airlie 04b5584c62 pcigart: fixup memset + remove wbinvd 2008-08-06 15:56:08 +10:00
Keith Packard dc0546c87f [gem-intel] Retiring flush requests should clear flushed write_domains
When i915_gem_retire_request has a flush which matches an object write
domain, clear the write domain. This will move the object to the inactive
list rather than the flushing list, avoiding trouble with objects left stuck
on the flushing list.
2008-08-05 16:06:40 -07:00
Keith Packard ceb3d5e383 [gem-intel] Don't clear write_domain until flush completes
In i915_gem_object_wait_rendering, if the object write domain is being
written by the GPU, the appropriate flushing commands are written to the
device and an additional request queued to mark that flush. Finally, the
function blocks on that new request.

The bug was that the write_domain in the object was cleared before the
function blocked.

If the wait is interrupted by a signal, the flushing commands may still be
pending. With the current write_domain information lost, the restarted
syscall will drop right through the write_domain test as that value was
lost, and so the function will not block at all. Oops.

Fixed by simply moving the write_domain clear until after the wait_request
succeeds. Note that the restarted system call will generate an additional
flush sequence and request, but that should be 'harmless', aside from a
slight performance impact.

Someday we'll track flushing more accurately and clear write_domains more
efficiently, but for now, this should suffice.

This bug was discovered in the 2d gem development by running x11perf
-copypixwin500 and noticing that the window got cleared accidentally.
2008-08-05 14:44:53 -07:00
Dave Airlie 4748fbcbd7 radeon: fix blit due to registers wrong 2008-08-05 11:36:37 +10:00
Dave Airlie fd75c02ddd drm: finish bo after lastclose 2008-08-04 14:59:49 +10:00
Dave Airlie 29649ddede radeon: don't use ring if cp not going 2008-08-04 14:56:08 +10:00
Dave Airlie 717dd804d0 drm: fixup master code to use krefs 2008-08-04 14:54:32 +10:00
Dave Airlie 129c8a1181 modesetting: pick_crtcs can't be static 2008-08-04 14:53:14 +10:00
Dave Airlie 922f74f3c9 drm: remove unneeded debugging 2008-08-04 14:52:58 +10:00
Kristian Høgsberg 086716c8e2 Merge commit 'origin/drm-gem' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/drmP.h
	linux-core/drm_mm.c
	linux-core/drm_stub.c
	linux-core/i915_gem.c
	linux-core/i915_opregion.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
2008-08-01 13:35:56 -04:00
Kristian Høgsberg 5052e966ec Merge commit 'origin/master' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/ati_pcigart.c
	linux-core/drm_compat.h
	linux-core/drm_irq.c
	linux-core/drm_lock.c
	linux-core/i915_drv.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
	shared-core/nouveau_mem.c
	shared-core/radeon_cp.c
	shared-core/radeon_drv.h
2008-07-31 15:18:32 -04:00
Dave Airlie 296073dc5f drm: remove object hash 2008-07-31 14:39:25 +10:00
Dave Airlie d2d7f3069d drm: userspace rip out TTM API 2008-07-31 13:31:30 +10:00
Dave Airlie 10d5b037b8 drm: add fault handler support so as to be more like possible upstream 2008-07-31 13:12:36 +10:00
Dave Airlie 55761b2fe7 drm: add fault handler support so as to be more like possible upstream
(cherry picked from commit 10d5b037b8)
2008-07-31 13:11:28 +10:00
Dave Airlie 9b8d71b5eb TTM: remove API and userspace objects.
This removes all the TTM userspace API and all userspace objects.

It also removes the drm_bo_lock.c code
2008-07-31 12:54:48 +10:00
Kristian Høgsberg 6d4e147480 Make it compile again. 2008-07-30 16:34:37 -04:00
Eric Anholt 689548b527 intel-gem: Remove dead field from reverted changes. 2008-07-30 11:29:32 -07:00
Eric Anholt 33c8e03787 Revert "Rename drm_mm.c and its fuctions to drm_memrange."
This reverts commit 3ad8db2071.

We ended up not needing that namespace, and I'd rather not have the churn
for producing diffs.
2008-07-30 11:25:34 -07:00
Dave Airlie fb5542aaa8 radeon: hack gem to get an offset back for Mesa. 2008-07-30 17:06:11 +10:00
Dave Airlie 95c02743c9 i915: more version checks 2008-07-30 16:52:13 +10:00
Dave Airlie 02b09d271c i915: add version checks for opregion on old kernels 2008-07-30 16:26:59 +10:00
Eric Anholt 8fc72aef70 intel-gem: actually add i915_gem_debug.c. 2008-07-29 20:26:38 -07:00
Eric Anholt 0f78e30e0a intel-gem: Check return value of pci_read_base. 2008-07-29 11:10:47 -07:00
Dave Airlie 0452be8826 radeon: move code around putting emit into cs 2008-07-29 18:05:11 +10:00
Dave Airlie 4234f82acc radeon_cs: add relocate hook for mm and non-mm relocations 2008-07-29 16:51:47 +10:00
Eric Anholt e68b57c17d intel-gem: checkpatch.pl on drm_proc.c new contents. 2008-07-28 23:12:41 -07:00
Eric Anholt 1d2bb68d28 Merge commit 'origin/master' into drm-gem
Conflicts:

	linux-core/Makefile.kernel
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
2008-07-28 23:12:26 -07:00
Eric Anholt 487c42bd42 intel-gem: Another checkpatch.pl pass. 2008-07-28 11:45:22 -07:00
Eric Anholt 1bdf35fe19 intel-gem: Fix regression tests.
Main fix is an oops that was triggered by the gtt pwrite path when we don't
have the gtt initialized.  Also, settle on -EBADF for "bad object handle",
and -EINVAL for "reading/writing beyond object boundary".
2008-07-28 11:29:16 -07:00
Eric Anholt f85fd1b42d intel-gem: Speed up tiled readpixels by tracking which pages have been flushed.
This is around 3x or so speedup, since we would read wide rows at a time, and
clflush each tile 8 times as a result.  We'll want code related to this anyway
when we do fault-based per-page clflushing for sw fallbacks.
2008-07-28 11:25:19 -07:00
Dave Airlie dc3a7c023d r300: initial command stream parser for packet 0.
this at least parses the DDX stream and lets me run gnome-terminal/metacity
2008-07-28 17:27:24 +10:00
Dave Airlie 38835f9cd2 radeon command submission start
take code from Jerome munge into a TTM IB re-use
2008-07-28 15:21:13 +10:00
Eric Anholt 04ae66db1c intel-gem: Move debug-only functions to a separate file. 2008-07-26 19:52:47 -07:00
Alex Deucher 5282a505b6 NV50: s/FALSE/false/ 2008-07-26 16:57:02 -04:00
Stefan Becker 514c05cebe radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
2008-07-26 16:49:14 +02:00
Dave Airlie df9871064e radeon: add initial atombios modesetting and GEM -> TTM translation layer.
This is an initial import of the atom bios parser with modesetting support
for r500 hw using atombios. It also includes a simple memory manager
layer that translates a radeon GEM style interface onto TTM internally.

So far this memory manager has only been used for pinned object allocation
for the DDX to test modesetting.
2008-07-26 08:56:23 +10:00
Dave Airlie 31da9492a4 Merge remote branch 'origin/modesetting-101' into modesetting-gem 2008-07-26 08:46:38 +10:00