linux-kernel-test/drivers/staging
Jerome Glisse 771fe6b912 drm/radeon: introduce kernel modesetting for radeon hardware
Add kernel modesetting support to radeon driver, use the ttm memory
manager to manage memory and DRM/GEM to provide userspace API.
In order to avoid backward compatibility issue and to allow clean
design and code the radeon kernel modesetting use different code path
than old radeon/drm driver.

When kernel modesetting is enabled the IOCTL of radeon/drm
driver are considered as invalid and an error message is printed
in the log and they return failure.

KMS enabled userspace will use new API to talk with the radeon/drm
driver. The new API provide functions to create/destroy/share/mmap
buffer object which are then managed by the kernel memory manager
(here TTM). In order to submit command to the GPU the userspace
provide a buffer holding the command stream, along this buffer
userspace have to provide a list of buffer object used by the
command stream. The kernel radeon driver will then place buffer
in GPU accessible memory and will update command stream to reflect
the position of the different buffers.

The kernel will also perform security check on command stream
provided by the user, we want to catch and forbid any illegal use
of the GPU such as DMA into random system memory or into memory
not owned by the process supplying the command stream. This part
of the code is still incomplete and this why we propose that patch
as a staging driver addition, future security might forbid current
experimental userspace to run.

This code support the following hardware : R1XX,R2XX,R3XX,R4XX,R5XX
(radeon up to X1950). Works is underway to provide support for R6XX,
R7XX and newer hardware (radeon from HD2XXX to HD4XXX).

Authors:
    Jerome Glisse <jglisse@redhat.com>
    Dave Airlie <airlied@redhat.com>
    Alex Deucher <alexdeucher@gmail.com>

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-06-15 12:01:53 +10:00
..
agnx dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
altpciechdma dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
android Staging: binder: Defer flush and release operations to avoid deadlocks. 2009-04-17 11:06:27 -07:00
asus_oled Staging: asus_oled: do not use assignment in if condition 2009-04-03 14:53:15 -07:00
at76_usb Staging: at76: convert to netdev_ops 2009-04-17 11:06:24 -07:00
b3dfg Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n) 2009-04-13 15:04:33 -07:00
comedi Staging: comedi: David doesn't want to get comedi patches 2009-05-08 19:39:28 -07:00
dst Staging: DST: fix build dependancy 2009-04-03 14:53:33 -07:00
echo Staging: echo cleanup 2009-04-03 14:54:27 -07:00
epl Staging: epl: convert to netdev_ops 2009-04-17 11:06:24 -07:00
et131x Staging: et131x: convert to netdev_ops 2009-04-17 11:06:24 -07:00
frontier Staging: frontier: Remove unused components of the alphatrack/tranzport sysfs interface. 2009-04-03 14:53:32 -07:00
go7007 go7007: Convert to the new i2c device binding model 2009-04-21 21:47:22 +02:00
heci Staging: heci: add TODO file 2009-04-03 14:54:24 -07:00
line6 Staging: line6: convert to snd_card_create() 2009-04-17 11:06:25 -07:00
me4000 Staging: me4000: make file_operations const 2009-04-03 14:53:25 -07:00
meilhaus Staging: meilhaus: some checkpatch.pl cleanup 2009-04-03 14:53:28 -07:00
mimio Staging: mimio: depends on INPUT 2009-04-03 14:53:29 -07:00
otus otus/zdusb.c: additional USB idnetifier 2009-04-17 11:06:31 -07:00
p9auth Staging: p9auth: clean up #includes 2009-04-03 14:54:24 -07:00
panel trivial: fix typos/grammar errors in Kconfig texts 2009-03-30 15:22:01 +02:00
phison Staging: phison: depends on PCI 2009-04-03 14:53:40 -07:00
poch Staging: poch: fix verification of memory area 2009-01-28 15:49:06 -08:00
pohmelfs Staging: Pohmelfs: Add load balancing between network states with the same priority. 2009-04-17 11:06:31 -07:00
rspiusb Staging: rspiusb: use USB API functions rather than constants 2009-04-03 14:53:28 -07:00
rt2860 Staging: rt2860: convert to netdev_ops 2009-04-17 11:06:24 -07:00
rt2870 Staging: rt2870: new device id 2009-05-08 19:39:27 -07:00
rt3070 Staging: rt3070: convert to netdev_ops 2009-04-17 11:06:25 -07:00
rtl8187se Staging: rtl8187se: Fix compilation warnings and procfs directory leak 2009-05-08 19:39:27 -07:00
serqt_usb serqt: initial clean up pass for tty side 2009-04-07 08:44:05 -07:00
slicoss staging: slicoss: update README 2009-04-17 11:06:31 -07:00
stlc45xx Staging: STLC45XX should depend on GENERIC_HARDIRQS 2009-04-17 11:06:27 -07:00
sxg Staging: sxg: Fix leaks and checksum errors in transmit code path 2009-04-17 11:06:31 -07:00
uc2322 Staging: aten2011: Clean up some tty bits 2009-04-17 11:06:26 -07:00
usbip Staging: BUG to BUG_ON changes 2009-04-03 14:54:26 -07:00
winbond Staging: w35und: unregister device from the ieee80211 stack upon ->disconnect() 2009-05-08 19:39:27 -07:00
wlan-ng Staging: wlan-ng: convert to netdev_ops 2009-04-17 11:06:25 -07:00
Kconfig drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
Makefile Staging: add USB serial Quatech driver 2009-04-03 14:54:27 -07:00
staging.c Staging: workaround build system bug 2008-10-13 14:32:52 -07:00