Commit Graph

1833 Commits (64cef1e46554fbf82388acfcfc8051ce956a3dc2)

Author SHA1 Message Date
Jesse Barnes 731cd5526e libdrm: add mode setting files
Add mode setting files to libdrm, including xf86drmMode.* and the new
drm_mode.h header.  Also add a couple of tests to sanity check the
kernel interfaces and update code to support them.
2008-12-17 10:11:37 -08:00
Jesse Barnes 9583c099b4 Revert "Merge branch 'modesetting-gem'"
This reverts commit 6656db1055.

We really just want the libdrm and ioctl bits, not all the driver
stuff.
2008-12-10 15:50:22 -08:00
Jesse Barnes d5d5aca7f9 Merge branch 'master' into modesetting-gem 2008-12-03 11:53:36 -08:00
Ben Skeggs 7e4e0fbbb8 nv50: support NV94 chipset 2008-11-23 18:49:09 +11:00
Ben Skeggs 52232ad702 nv50: update context-related tables for original 8800GTS
I either messed up when I pulled these from a mmio-trace last time, or
the previous values didn't work on my card.  Hopefully it's the former!

In any case, at least one of the original NV50 chipsets work now.
2008-11-21 13:18:58 +11:00
Jesse Barnes 2e2fd6c632 DRM: make drm_map_type match upstream kernel
Since the TTM type isn't upstream yet, we need to make sure libdrm uses
what the kernel uses, which is _DRM_GEM = 6.
2008-11-20 11:00:29 -08:00
Jesse Barnes 5923831baf DRM: make drm_map_type match kernel
GEM is upstream, but TTM isn't, so _DRM_GEM needs to be 6, not 7.
2008-11-20 10:57:33 -08:00
Stephane Marchesin c029ed2510 Unbreak drm build. 2008-11-19 23:17:27 +01:00
Jesse Barnes c67a83dfe1 Merge branch 'modesetting-gem' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-gem 2008-11-19 12:42:49 -08:00
Jerome Glisse 7270731a8b radeon: protect cs ioctl atomic part with a mutex
A small subset of CS need to be atomic (relocation+IB commit to
ring) right now, because of the way relocation are handled, we
need to protect the whole ioctl.
2008-11-16 18:11:00 +01:00
Jesse Barnes 965b4d662a Merge branch 'master' into modesetting-gem
Conflicts:

	libdrm/Makefile.am
	libdrm/intel/intel_bufmgr.h
	libdrm/intel/intel_bufmgr_fake.c
	libdrm/intel/intel_bufmgr_gem.c
	shared-core/drm.h
	shared-core/i915_dma.c
	shared-core/i915_irq.c
	shared-core/radeon_cp.c
	shared-core/radeon_drv.h
2008-11-13 15:30:06 -08:00
Jesse Barnes 276c07d885 libdrm: add support for i915 GTT mapping ioctl
Add a drm_intel_gem_bo_map_gtt() function for mapping a buffer object
through the aperture rather than directly to its CPU cacheable memory.
2008-11-13 13:52:04 -08:00
Jakob Bornecrantz 9a4cb7eab4 mode: Minor reodering and renaming 2008-11-12 19:17:18 +01:00
Jakob Bornecrantz 17789a409d mode: Reorder the ioctls and numbering
This is to fill in the gaps left by the removal of
	the hotplug ioctls. And they also look better :)
2008-11-12 19:10:50 +01:00
Jakob Bornecrantz 1ead45c8f0 mode: Remove hotplug support from ioctl interface 2008-11-12 18:40:04 +01:00
Jakob Bornecrantz 13948c635d mode: Unify types for ids and strings 2008-11-12 18:16:38 +01:00
Dave Airlie 15464f5181 radeon: add gart useable size to report to userspace 2008-11-10 15:38:32 +10:00
Dave Airlie 994f240503 radeon: fix ring tail overflow issue since alignment 2008-11-10 15:25:27 +10:00
Dave Airlie 758376e6eb radeon: disable HDP read cache for now 2008-11-10 15:25:12 +10:00
Dave Airlie 08ef5b5e67 radeon: force all ring writes to 16-dword alignment. 2008-11-10 15:24:42 +10:00
Jerome Glisse 7abb8416a7 radeon: add more packet3 relocations handling 2008-11-09 18:48:46 +01:00
Dave Airlie 68fcb7770e radeon: make build again 2008-11-03 09:58:12 +10:00
Dave Airlie 0e1df6216e radeon: add mtrr support for VRAM aperture. 2008-11-03 09:52:25 +10:00
Dave Airlie 2b9a7d5381 radeon: disable AGP for certain chips if not specified until we figure it out 2008-11-03 09:51:57 +10:00
Dave Airlie d3aa052f61 radeon: disable debugging message 2008-11-03 09:51:33 +10:00
Dave Airlie 28c9eb7b74 radeon: commit ring after emitting the buffer discards 2008-11-03 09:50:46 +10:00
Dave Airlie e829d5b6bc radeon: setup isync cntl properly 2008-11-03 09:47:49 +10:00
Dave Airlie 31b8a640db radeon: overhaul ring interactions
emit in 16-dword blocks, emit irqs at same time as everything else
2008-11-03 09:46:54 +10:00
Dave Airlie 4ef8ace9a9 radeon: add proc debugging for interrupts/ring 2008-11-03 09:45:43 +10:00
Dave Airlie be3dac976e radeon: only enable dynclks if asked for 2008-11-03 09:44:32 +10:00
Dave Airlie 31f8d4218c radeon: add wait rendering API 2008-11-03 09:44:03 +10:00
Dave Airlie fc25c81eab radeon: rs480 fixes for bus mastering 2008-11-03 09:43:29 +10:00
Dave Airlie 4ccec67a23 radeon: remove unused gem indirect ioctl 2008-11-03 09:42:01 +10:00
Dave Airlie 6000fa6862 radeon: CS2 make it all work with new relocs style 2008-11-03 09:40:52 +10:00
Dave Airlie 35f0805592 radeon: don't copy to user the cs ids 2008-11-03 09:40:24 +10:00
Dave Airlie 8b2925468d radeon: make new CS2 command submission interface port older interface to this 2008-11-03 09:39:53 +10:00
Dave Airlie fd9e05b3f4 radeon: release agp on module unload 2008-11-03 09:33:32 +10:00
Dave Airlie 624da91277 radeon: add r423 bits to modesetting 2008-11-03 09:33:12 +10:00
Dave Airlie 1c817cc3fc radeon: pull bus master enable into its own function 2008-11-03 09:32:39 +10:00
Dave Airlie b4803991c8 radeon: update proper chip family 2008-11-03 09:30:48 +10:00
Dave Airlie 3fd0e1483e radeon: fixup scratch register interactions properly 2008-11-03 09:29:22 +10:00
Dave Airlie a066a5f908 radeon: make writeback work again 2008-11-03 09:28:56 +10:00
Dave Airlie 0dbe3436ee radeon: fix some warnings 2008-11-03 09:28:36 +10:00
Dave Airlie 52ef9d87db radeon: fix small typo in agp code 2008-11-03 09:27:00 +10:00
Dave Airlie d275f99c9a radeon: don't enable dynclks on rs48x 2008-11-03 09:26:00 +10:00
Dave Airlie 48f2227516 radeon: export radeon_modeset 2008-11-03 09:25:32 +10:00
Dave Airlie f74721fc25 radeon: fix unused agp functionality 2008-11-03 09:24:13 +10:00
Dave Airlie b09cb93e2d radeon: add some more r100 support to test AGP 2008-11-03 09:23:19 +10:00
Jesse Barnes 1db35ba583 libdrm: fix ABI change in drm_mode_get_encoder
The encoder_type field should be at the top to match the kernel.
2008-10-29 12:18:15 -07:00
Eric Anholt 0e86731232 intel: Add dri_bufmgr_check_aperture support for bufmgr_gem.
This relies on a new kernel ioctl to get the available aperture size.

In order to provide reasonable performance from dri_bufmgr_check_aperture, we
now require that once a buffer has been used as the target of a relocation,
it gets no further relocations added to it.  This cuts the cost of
check_aperture from 10% to 1% in the 3D driver with no code changes, but
slightly complicates our plans for the 2D driver.
2008-10-28 14:27:49 -07:00
Ben Skeggs 48b73904b4 nv50: move context-related tables a separate header file
This turns the various nvXX_graph_init_ctxvals() methods into tables,
and speeds up compliation of nv50_graph.c quite a bit.  This has bothered
me for a while, but others are complaining now so it's time to fix it :)
2008-10-28 11:56:07 +11:00
Robert Noland 145d2d610b i915: Since FreeBSD doesn't have gem support yet, don't advertise it.
This allows us to not crash X when using newer Intel ddx drivers.
2008-10-27 14:39:05 -04:00
Alex Deucher e1372f6727 radeon: fix error in busmaster enable logic
- logic was wrong.  rs400/rs480 should clear the RADEON_BUS_MASTER_DIS bit
- should fix kernel bug 11798
2008-10-27 13:18:07 -04:00
Alex Deucher 848f00d773 radeon: fix some fallout from the busmaster disable cleanup
rs400 is just like rs480.  I mixed up the internal
chipset names for rs600 and rs400.
2008-10-27 12:59:39 -04:00
Dave Airlie 389b7617b5 drm: make handles 32-bits again not sure why they changed 2008-10-27 17:06:23 +10:00
Matthias Hopf 1d930fc75b drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)
Olaf Kirch noticed that the i915_set_status_page() function of the i915
kernel driver calls ioremap with an address offset that is supplied by
userspace via ioctl. The function zeroes the mapped memory via memset
and tells the hardware about the address. Turns out that access to that
ioctl is not restricted to root so users could probably exploit that to
do nasty things. We haven't tried to write actual exploit code though.

It only affects the Intel G33 series and newer.
2008-10-25 12:15:50 -04:00
Jakob Bornecrantz 34a3ebffc3 mode: Try to settle on a standard for struct fields 2008-10-24 18:46:47 +02:00
Jakob Bornecrantz 0796bf8c6b mode: Indent defines 2008-10-24 18:23:39 +02:00
Dave Airlie 26076bf24a radeon: add initial agp support.
This add agpmode command line option.
2008-10-16 10:59:31 +10:00
Dave Airlie 8d9a11c55c radeon: add CS support for r100/r200 in 2D driver 2008-10-16 10:57:31 +10:00
Dave Airlie d958cd7bb9 radeon: use discardable flags on no backing store objects 2008-10-16 10:51:31 +10:00
Robert Noland a8f73c214d i915: Cleanup interrupt handling 2008-10-09 22:11:55 -04:00
Alex Deucher 728d8e226f radeon: add comment to clarify bus mastering on PCIE chips 2008-10-06 12:12:49 -04:00
Alex Deucher 6f9dfa098f radeon: fix duplicate define in my last commit
That's what I get for committing at 3 AM.
2008-10-06 12:01:11 -04:00
Dave Airlie 8e5f5ed189 radeon: PCIE cards don't appear to have explicit bus master 2008-10-07 04:47:54 +10:00
Alex Deucher 4b98f6d74f radeon: fix bus master enabled bits on newer asics 2008-10-06 03:08:27 -04:00
Mihail Zenkov 5a36cce349 radeon: fix missing bit from rs740 patch
See bug 17908
2008-10-06 00:49:15 -04:00
Alex Deucher ce40261012 radeon: Add support for HD2100 IGP (RS740) 2008-10-04 20:43:21 -04:00
Dave Airlie 7b3aa62648 Merge remote branch 'origin/modesetting-gem' into modesetting-gem 2008-09-30 14:17:27 +10:00
Dave Airlie 972f657265 Merge remote branch 'origin/master' into modesetting-gem
Conflicts:

	libdrm/Makefile.am
	libdrm/dri_bufmgr.h
	linux-core/drm_irq.c
	linux-core/drm_sysfs.c
	linux-core/drm_ttm.c
	shared-core/i915_dma.c
	shared-core/i915_irq.c
	shared-core/nouveau_drv.h
	shared-core/radeon_cp.c
2008-09-30 14:13:49 +10:00
Alex Deucher 09b2dfcedc radeon: make atom on r4xx a module option
default is legacy modesetting.  pass module option r4xx_atom
to try using atom on r4xx.
2008-09-26 17:20:04 -04:00
Jakob Bornecrantz ea9711b954 Seperate modesetting userspace bits into drm_mode.h 2008-09-25 23:13:19 +02:00
Dave Airlie 35e379ce5a radeon: add r600 modesetting registers writes 2008-09-24 15:25:35 +10:00
Alex Deucher 34af71c42a radeon: add function to configure PCIE lanes 2008-09-18 16:07:41 -04:00
Alex Deucher e1e782af5d Radeon: restructure PLL data
- store pixel clocks, core clock, and memory clocks separately
- grab all pll limits from bios tables
2008-09-18 15:11:48 -04:00
Dave Airlie 3a497db786 radeon: fixup buffer and cs bits 2008-09-18 10:22:23 +10:00
Dave Airlie 8f38c28a39 radeon: fail properly if we can't create the ring.
Normally this will be due to an AGP driver needing updating
2008-09-18 10:19:08 +10:00
Dave Airlie 515aa0800c radeon: do proper memory controller init and setup 2008-09-18 10:17:27 +10:00
Dave Airlie ed961cb428 radeon: remove unneeded debugging 2008-09-18 10:14:32 +10:00
Dave Airlie 8f23d4a44c make text reserve 256k 2008-09-18 10:12:13 +10:00
Dave Airlie 2a6dad31d8 radeon: add initial suspend/resume support
plus a bunch of fixes
2008-09-18 10:11:23 +10:00
Ben Skeggs ee6bcabc50 nv50: add initial context for chipset 0xaa
This just doesn't look right..
2008-09-17 22:18:03 +10:00
Ben Skeggs d55e8090fa nv50: add initial context to match ctxprog for chipset 0x50 2008-09-17 22:03:38 +10:00
Ben Skeggs 4d2f1257fa nv50: add ctxprog for chipset 0x50 2008-09-17 15:13:27 +10:00
Ben Skeggs 301be1dc9b nv50: add ctxprog for chipset 0xaa 2008-09-17 15:02:54 +10:00
Ben Skeggs f152482bde nv50: add support for chipset 0x92 2008-09-17 14:52:22 +10:00
Robert Noland 6f2479c674 [FreeBSD] Ensure that drm_pci_alloc is never called while locks are held. 2008-09-06 18:37:06 -04:00
Dave Airlie f60d9a04b8 radeon: change interface from headers add pin_domain into padding 2008-09-07 08:09:24 +10:00
Robert Noland 3f915f68e8 i915: fix i915_ring_validate() 2008-09-05 12:38:41 -04:00
Stephane Marchesin ce84511f4d nouveau: 8200 cards are 0xA0 family. 2008-09-05 00:17:52 +02:00
Dave Airlie cd7d71f19c radeon: make writeback work after suspend/resume.
While re-writing this for modesetting, I find we disable writeback on
resume.
2008-08-31 07:27:26 +10:00
vehemens 71f0a3e389 [FreeBSD] Replace typedefs on bsd.
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:05 -04:00
Dave Airlie 7552b2a6c3 drm: fix some whitespace 2008-08-27 13:41:53 +10:00
Dave Airlie 361ab10d2f radeon: fixup domains and use them properly 2008-08-26 17:39:00 +10:00
Robert Noland c8fd8d3a0d i915: Fix i915 build on FreeBSD
ifdef out all the gem stuff for now.  Also, the msi stuff isn't portable
the way it is... I'll try and fix that up sometime soon.
2008-08-24 15:53:17 -04:00
Robert Noland d0acbe4553 i915: Convert vblank on disabled pipe DRM_ERROR to DRM_DEBUG. 2008-08-24 15:25:20 -04:00
Robert Noland 739b01dde4 i915: Clear sarea_priv during lastclose.
sarea_priv needs to be NULL before i915_initialized is called to
properly reset it.  The stale value produces a panic any time something
opens/closes drm without calling initialize.  i.e. version checking
2008-08-24 15:25:20 -04:00
Robert Noland 1f3c4dd938 i915: Free dev->dev_private on unload. 2008-08-24 15:25:19 -04:00
Robert Noland 16c1a87580 i915: Move spinlock init / destroy to load / unload time.
This resolves the panic on FreeBSD during VT switch, without attempting
any of the more lofty goals for the time being.
2008-08-24 15:25:19 -04:00
root 0da66c27fa nouveau: fifo and graphics engine suspend and resume for nv04-nv4x
Corresponding DDX patch at http://people.freedesktop.org/~stuart/nv0x-nv4x_suspend/
2008-08-19 02:01:14 +01:00