Home | History | Annotate | only in /src/sys/dev/drm
History log of /src/sys/dev/drm
RevisionDateAuthorComments
 1.4 21-Jun-2009  mrg remove the old drm sources.
 1.3 13-Jun-2008  bjs branches: 1.3.10;
DRM_IOCTL_SG_ALLOC needs IOWR, not IOR!
 1.2 21-Nov-2007  bjs branches: 1.2.14; 1.2.16; 1.2.18; 1.2.20; 1.2.22;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm.h was added on branch yamt-lazymbuf on 2007-09-03 14:33:36 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm.h was added on branch vmlocking on 2007-04-10 13:24:47 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm.h was added on branch yamt-idlelwp on 2007-03-24 14:55:21 +0000
 1.2.22.1 18-Jun-2008  simonb Sync with head.
 1.2.20.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.2.18.2 18-Jul-2009  yamt sync with head.
 1.2.18.1 04-May-2009  yamt sync with head.
 1.2.16.1 17-Jun-2008  yamt sync with head.
 1.2.14.1 29-Jun-2008  mjf Sync with HEAD.
 1.3.10.1 23-Jul-2009  jym Sync with HEAD.
 1.36 21-Jun-2009  mrg remove the old drm sources.
 1.35 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.34 21-Apr-2009  rafal Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:

rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.

Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).

With feedback from ad@, ok mrg@
 1.33 29-Mar-2009  mrg add a comment explaining DRM_NETBSD_ADDR2HANDLE/DRM_NETBSD_HANDLE2ADDR:

* This hack strips the top bit from amd64 addresses, which avoid
* udv_attach() returning NULL for "negative" offset.
* A better hack would be to encode the offset of some kernel data
* structure..

add a new DRM_HANDLE_NEEDS_MASK macro to check whether the above need to
be applied for various mapping types (_DRM_SHM and _DRM_SCATTER_GATHER.)
 1.32 07-Jul-2008  mrg branches: 1.32.2; 1.32.4; 1.32.6; 1.32.10;
revert unnecessary changes to 3rd party code.
 1.31 03-Jul-2008  drochner split device/softc
 1.30 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.29 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.28 09-Jun-2008  freza branches: 1.28.2;
o Split device_t/softc for agp(4).
o agp_ali.c: remove unused 'agp' member from agp_ali_softc.
o drm: agp_find_device() returns 'void *', not a device_t.
o Use device_t, cfdata_t instead of struct pointers.
o Don't cast void pointers in assignments.
 1.27 19-May-2008  jmcneill Don't use MALLOC_DECLARE / MALLOC_DEFINE if building as a module.
 1.26 19-May-2008  bjs NOTE: this commit message accompnies the last one for sys/dev/pci/drm.

Revert condvar changes; there seem to be other locking issues
(independent of these changes insofar as I can tell), and it will
only complicate things for now to introduce more changes.

Argh!
 1.25 18-May-2008  jmcneill Allow building as a module.
 1.24 18-May-2008  bjs Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz as
mstohz(333) (this seems to eliminate lockups for me using the r300
driver). Tested with i915 and radeon on amd64.
 1.23 06-May-2008  bjs branches: 1.23.2;
Revert all the changes this time.
 1.22 06-May-2008  bjs Revert last commit -- breaks i915.
 1.21 06-May-2008  bjs A few steps down the yellow brick road toward bus_dma-ification:

- Add drm_dmamem_alloc/drm_dmamem_free to drm_memory.c to nicely wrap up
the bus_dma API.

- Start using the above in drm_pci.c.

- Add DRM_NETBSD_DMA_ADDR/DRM_NETBSD_DMA_VADDR macros.

Locking:

- Use IPL_NONE for all locks except the IRQ lock, which runs at IPL_VM.

- Use IPL_VM instead of IPL_TTY with pci_intr_establish() for consistency's
sake. These two changes seem to eliminate the presistent lockups I was
having (NetBSD-current/amd64 r300).

- Start getting rid of DRM_SPININIT/DRM_SPINUNINIT and DRM_SPINLOCK/
DRM_SPINUNLOCK ... these annoy me to no end--not to mention that they
locks may or may not be spinlocks! It's a linux frob, really.
We're way beyond merging any useful bsd-core code on a large scale, which
was the only good reason to keep them around.

Memory allocation:

- Change drm_memory.c so that it contains generally useful, memory
allocation functions using kmem(9) (mostly used by the drivers
themselves). However, I expect to use this more in the future
in the "bsd core". These functions always use KM_NOSLEEP.
The new drm_dmamem_alloc function has a wait argument which
takes DRM_DMA_WAIT/DRM_DMA_NOWAIT (defined as their bus_dma
counterparts), and honors this hint in its calls to kmem(9)
and bus_dma(9) functions.

- Got rid of these functions' "area" argument--it's been deprecated for
ages. Provide macros in drmP.h to deal with the os-independent code.

- Declare these functions inline -- I believe they're used enough
by the i915 and radeon drivers to justify it. Please let me know
if I am mistaken.

NOTE: With these changes, a glxgears score which was previously
~3900fps is now ~4400fps (same setup as mentioned above). I realize
that using kmem(9) could cause problems, but I can't seem to run into
any with my test setup. If anyone smells regression, please let me
know.
 1.20 05-May-2008  jmcneill Use aprint instead of DRM_INFO macro to cleanup attachment messages.
 1.19 04-May-2008  jmcneill For _DRM_SHM allocations, do not use the VA as drm_map handle on x86_64
since udv_attach will not accept a larger offset than signed 64-bit will
provide. Not the best fix, but good enough for now -- at least an X server
will now startup and get proper mappings.
 1.18 02-May-2008  bjs Wedge in a smattering of updates for ati_pcigart.c and radeon support:

-- detypedef drm_ati_pcigart_info
-- add support for variable sized apertures in ati_pcigart.c
-- Add support for radeon IGP adapters (untested on NetBSD)
-- Update r300_reg.h to a much newer version.
-- Miscellaneous fixes in radeon_cp.c, radeon_state.c.

TODO: r300_cmdbuf.c (?)

Please report any regressions to me. While I try to make sure the
updates are somewhat coherent, our initial code base is old enough
such that it's quite difficult to be absolutely certain. I hope to
rebase the NetBSD-specific code on the BSD code at the head of GIT
within a month or two, so this will do for now.
 1.17 23-Apr-2008  xtraeme branches: 1.17.2;
DRM_SPINLOCK() wants a spin mutex, it may be called from interrupt
context. Switch it to IPL_VM.
 1.16 15-Apr-2008  bjs branches: 1.16.2;
Change the DRM_SPININIT macro to call mutex_init with MUTEX_DEFAULT
and IPL_NONE. MUTEX_DRIVER is no longer part of the stable API. Moreover,
IPL_TTY is now IPL_VM, and this code should not be running with such a
high ipl.
 1.15 02-Mar-2008  bjs Fix bus_dmamem_free() call to provide 'segs' as the second argument.
While here, add DRM_PCI_DMAADDR macro so that we set handle->busaddr
in a portable way.
Next is the more difficult [annoying] part: use bus_dma(9) with
scatter/gather buffers.
 1.14 22-Dec-2007  ad branches: 1.14.2; 1.14.6;
membar_memory -> membar_sync
 1.13 21-Dec-2007  ad Use new style memory barriers.
 1.12 15-Dec-2007  perry __FUNCTION__ -> __func__
 1.11 04-Dec-2007  bjs branches: 1.11.4;
drm unbreaking, round 1:

Fix the bus_dma(9) use in drm_pci.c and chnage struct drm_dma_handle_t
to match it. Remove member dmaaddr from drm_dma_handle_t as well,
as I don't see it used anywhere. Compile-tested only for now; please
report any problems to me. Thanks.
 1.10 21-Nov-2007  bjs branches: 1.10.2;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.9 01-Nov-2007  bjs branches: 1.9.2;
Until I have a chance to further evaluate and re-work the locking here,
change from an adaptive to spin mutex @ IPL_TTY. This seems to mitigate
or eliminate a lot of locking-related issues (such as a hang when running
glxgears under AIGLX). Tested by me and Vincent <10.50@free.fr>.

In this code, we have three locks: irq, dma, and device. If anyone has
any thoughts on how to improve this situation, e.g. by using different
lock types/priorities/soft interrupts/etc. for different locks, please
share them with me.

NOTE: I've had the best results thusfar using Mesa 7.0.2-rc1 (r300 users
could even try the r300 driver code from the master branch) and xorg-server
1.4+patches from GIT.
 1.8 19-Oct-2007  bjs First round of DRM improvements: switch to mutex(9), make use of &
operator consistent in locking macros, use mb(9) for memory barrier ops
(to be replaced with bus_space_barrier(9) at a later date; this is not
necessary for x86 but might be for e.g. mips).


More to come. Try it out! It's a lot more stable now just with the
mutex(9) changes.
 1.7 19-Oct-2007  ad machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.6 28-Mar-2007  jmcneill branches: 1.6.2; 1.6.10; 1.6.12; 1.6.14; 1.6.18;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.5 23-Mar-2007  dogcow branches: 1.5.2;
caddr_t -> char *, even though it's in #ifdef __FreeBSD__ sections, just
so grep -r won't show it any more.
 1.4 23-Mar-2007  drochner Free ressources more agressively.
(The natural place for this would be on each close, but we don't have
a driver entry point for this.)
from Yorick Hardy
 1.3 22-Mar-2007  xtraeme Use void * rather than caddr_t to fix the build.
 1.2 21-Mar-2007  jmcneill In drm_ioremap, provide extra slots for mapping AGP memory space; it's not
reasonable to assume that these regions will show up in a VGA BAR.
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.5.2.3 15-Apr-2007  yamt sync with head.
 1.5.2.2 24-Mar-2007  yamt sync with head.
 1.5.2.1 23-Mar-2007  yamt file drmP.h was added on branch yamt-idlelwp on 2007-03-24 14:55:21 +0000
 1.6.18.3 21-Nov-2007  bouyer Sync with HEAD
 1.6.18.2 13-Nov-2007  bouyer Sync with HEAD
 1.6.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.6.14.7 17-Mar-2008  yamt sync with head.
 1.6.14.6 21-Jan-2008  yamt sync with head
 1.6.14.5 07-Dec-2007  yamt sync with head
 1.6.14.4 15-Nov-2007  yamt sync with head.
 1.6.14.3 27-Oct-2007  yamt sync with head.
 1.6.14.2 03-Sep-2007  yamt sync with head.
 1.6.14.1 28-Mar-2007  yamt file drmP.h was added on branch yamt-lazymbuf on 2007-09-03 14:33:37 +0000
 1.6.12.3 23-Mar-2008  matt sync with HEAD
 1.6.12.2 09-Jan-2008  matt sync with HEAD
 1.6.12.1 06-Nov-2007  matt sync with HEAD
 1.6.10.4 09-Dec-2007  jmcneill Sync with HEAD.
 1.6.10.3 21-Nov-2007  joerg Sync with HEAD.
 1.6.10.2 04-Nov-2007  jmcneill Sync with HEAD.
 1.6.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.6.2.3 23-Oct-2007  ad Sync with head.
 1.6.2.2 10-Apr-2007  ad Sync with head.
 1.6.2.1 28-Mar-2007  ad file drmP.h was added on branch vmlocking on 2007-04-10 13:24:48 +0000
 1.9.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.9.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.10.2.2 26-Dec-2007  ad Sync with head.
 1.10.2.1 08-Dec-2007  ad Sync with head.
 1.11.4.1 02-Jan-2008  bouyer Sync with HEAD
 1.14.6.5 28-Sep-2008  mjf Sync with HEAD.
 1.14.6.4 02-Jul-2008  mjf Sync with HEAD.
 1.14.6.3 29-Jun-2008  mjf Sync with HEAD.
 1.14.6.2 02-Jun-2008  mjf Sync with HEAD.
 1.14.6.1 03-Apr-2008  mjf Sync with HEAD.
 1.14.2.1 24-Mar-2008  keiichi sync with head.
 1.16.2.3 17-Jun-2008  yamt sync with head.
 1.16.2.2 04-Jun-2008  yamt sync with head
 1.16.2.1 18-May-2008  yamt sync with head.
 1.17.2.4 18-Jul-2009  yamt sync with head.
 1.17.2.3 16-May-2009  yamt sync with head
 1.17.2.2 04-May-2009  yamt sync with head.
 1.17.2.1 16-May-2008  yamt sync with head.
 1.23.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.23.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.28.2.3 18-Jul-2008  simonb Sync with head.
 1.28.2.2 03-Jul-2008  simonb Sync with head.
 1.28.2.1 27-Jun-2008  simonb Sync with head.
 1.32.10.2 23-Jul-2009  jym Sync with HEAD.
 1.32.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.32.6.1 23-Apr-2009  snj Pull up following revision(s) (requested by rafal in ticket #717):
sys/dev/drm/drmP.h: revision 1.34
sys/dev/drm/drm_drv.c: revision 1.24
sys/dev/drm/drm_scatter.c: revision 1.8
Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:
rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.
Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).
With feedback from ad@, ok mrg@
 1.32.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.32.2.2 07-Jul-2008  mrg revert unnecessary changes to 3rd party code.
 1.32.2.1 07-Jul-2008  mrg file drmP.h was added on branch haad-dm on 2008-07-07 00:33:24 +0000
 1.8 21-Jun-2009  mrg remove the old drm sources.
 1.7 03-Jul-2008  drochner branches: 1.7.10;
split device/softc
 1.6 09-Jun-2008  freza branches: 1.6.2;
o Split device_t/softc for agp(4).
o agp_ali.c: remove unused 'agp' member from agp_ali_softc.
o drm: agp_find_device() returns 'void *', not a device_t.
o Use device_t, cfdata_t instead of struct pointers.
o Don't cast void pointers in assignments.
 1.5 05-May-2008  jmcneill branches: 1.5.2;
Use aprint instead of DRM_INFO macro to cleanup attachment messages.
 1.4 11-Dec-2007  lukem branches: 1.4.8; 1.4.10; 1.4.12;
use __KERNEL_RCSID()
 1.3 21-Nov-2007  bjs branches: 1.3.2; 1.3.4; 1.3.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.2 28-Mar-2007  jmcneill branches: 1.2.2; 1.2.10; 1.2.12; 1.2.14; 1.2.18; 1.2.20;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.1 20-Mar-2007  drochner branches: 1.1.2;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.2.3 15-Apr-2007  yamt sync with head.
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_agpsupport.c was added on branch yamt-idlelwp on 2007-03-24 14:55:21 +0000
 1.2.20.2 27-Dec-2007  mjf Sync with HEAD.
 1.2.20.1 08-Dec-2007  mjf Sync with HEAD.
 1.2.18.1 21-Nov-2007  bouyer Sync with HEAD
 1.2.14.4 21-Jan-2008  yamt sync with head
 1.2.14.3 07-Dec-2007  yamt sync with head
 1.2.14.2 03-Sep-2007  yamt sync with head.
 1.2.14.1 28-Mar-2007  yamt file drm_agpsupport.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:37 +0000
 1.2.12.1 09-Jan-2008  matt sync with HEAD
 1.2.10.1 21-Nov-2007  joerg Sync with HEAD.
 1.2.2.2 10-Apr-2007  ad Sync with head.
 1.2.2.1 28-Mar-2007  ad file drm_agpsupport.c was added on branch vmlocking on 2007-04-10 13:24:48 +0000
 1.3.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.3.4.1 11-Dec-2007  yamt sync with head.
 1.3.2.1 26-Dec-2007  ad Sync with head.
 1.4.12.3 18-Jul-2009  yamt sync with head.
 1.4.12.2 04-May-2009  yamt sync with head.
 1.4.12.1 16-May-2008  yamt sync with head.
 1.4.10.2 17-Jun-2008  yamt sync with head.
 1.4.10.1 18-May-2008  yamt sync with head.
 1.4.8.3 28-Sep-2008  mjf Sync with HEAD.
 1.4.8.2 29-Jun-2008  mjf Sync with HEAD.
 1.4.8.1 02-Jun-2008  mjf Sync with HEAD.
 1.5.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.5.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.6.2.1 03-Jul-2008  simonb Sync with head.
 1.7.10.1 23-Jul-2009  jym Sync with HEAD.
 1.8 21-Jun-2009  mrg remove the old drm sources.
 1.7 03-Jun-2008  dyoung branches: 1.7.12;
Make the atomic macros compile: do not discard 'volatile' qualification
from argument `p'. Use `b' instead of `bit'.
 1.6 28-May-2008  bjs Rework drm_atomic.h for correctness and readability:

- Use macros where appropriate.
- Remove code for other operating systems -- we don't need it.
- In atomic_read/atomic_set, cast to volatile.
- Misc. cleanup.
 1.5 18-May-2008  bjs Oops, did not compile. Fix it.
 1.4 18-May-2008  bjs atomic_add_32 -> atomic_and_32. For atomic_read/atomic_write, cast
to volatile uint32_t *.
 1.3 25-Apr-2008  xtraeme branches: 1.3.2; 1.3.4;
Adapt to recent NetBSD which has an atomic MI API. With code from
bjs@ and ad@.
 1.2 21-Nov-2007  bjs branches: 1.2.14; 1.2.16;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_atomic.h was added on branch yamt-lazymbuf on 2007-09-03 14:33:38 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_atomic.h was added on branch vmlocking on 2007-04-10 13:24:48 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_atomic.h was added on branch yamt-idlelwp on 2007-03-24 14:55:22 +0000
 1.2.16.3 17-Jun-2008  yamt sync with head.
 1.2.16.2 04-Jun-2008  yamt sync with head
 1.2.16.1 18-May-2008  yamt sync with head.
 1.2.14.2 05-Jun-2008  mjf Sync with HEAD.

Also fix build.
 1.2.14.1 02-Jun-2008  mjf Sync with HEAD.
 1.3.4.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.3.2.2 18-Jul-2009  yamt sync with head.
 1.3.2.1 04-May-2009  yamt sync with head.
 1.7.12.1 23-Jul-2009  jym Sync with HEAD.
 1.7 21-Jun-2009  mrg remove the old drm sources.
 1.6 29-Jun-2008  jmcneill branches: 1.6.10;
Revert previous, i915drm works again.
 1.5 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.4 11-Dec-2007  lukem branches: 1.4.8; 1.4.12; 1.4.14; 1.4.16;
use __KERNEL_RCSID()
 1.3 21-Nov-2007  bjs branches: 1.3.2; 1.3.4; 1.3.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.2 29-Mar-2007  jmcneill branches: 1.2.2; 1.2.10; 1.2.12; 1.2.14; 1.2.18; 1.2.20;
In drm_remove_magic, free the magic entry when it is found instead of
attempting to free a NULL reference in the error case. From Yorick Hardy.
 1.1 20-Mar-2007  drochner branches: 1.1.2;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.2.3 15-Apr-2007  yamt sync with head.
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_auth.c was added on branch yamt-idlelwp on 2007-03-24 14:55:22 +0000
 1.2.20.2 27-Dec-2007  mjf Sync with HEAD.
 1.2.20.1 08-Dec-2007  mjf Sync with HEAD.
 1.2.18.1 21-Nov-2007  bouyer Sync with HEAD
 1.2.14.4 21-Jan-2008  yamt sync with head
 1.2.14.3 07-Dec-2007  yamt sync with head
 1.2.14.2 03-Sep-2007  yamt sync with head.
 1.2.14.1 29-Mar-2007  yamt file drm_auth.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:38 +0000
 1.2.12.1 09-Jan-2008  matt sync with HEAD
 1.2.10.1 21-Nov-2007  joerg Sync with HEAD.
 1.2.2.2 10-Apr-2007  ad Sync with head.
 1.2.2.1 29-Mar-2007  ad file drm_auth.c was added on branch vmlocking on 2007-04-10 13:24:48 +0000
 1.3.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.3.4.1 11-Dec-2007  yamt sync with head.
 1.3.2.1 26-Dec-2007  ad Sync with head.
 1.4.16.2 03-Jul-2008  simonb Sync with head.
 1.4.16.1 27-Jun-2008  simonb Sync with head.
 1.4.14.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.14.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.4.12.1 18-Jul-2009  yamt sync with head.
 1.4.8.2 02-Jul-2008  mjf Sync with HEAD.
 1.4.8.1 29-Jun-2008  mjf Sync with HEAD.
 1.6.10.1 23-Jul-2009  jym Sync with HEAD.
 1.12 21-Jun-2009  mrg remove the old drm sources.
 1.11 29-Mar-2009  mrg drm_addmap():
- for _DRM_CONSISTENT mappings, keep the handle.
- use DRM_HANDLE_NEEDS_MASK()

drm_mapbufs():
- use DRM_HANDLE_NEEDS_MASK()

drm_mmap():
- use DRM_HANDLE_NEEDS_MASK()
- for _DRM_SCATTER_GATHER and _DRM_SHM, use vtophys() on the
adjusted offset. XXX


this is gets radeon working on amd64 with an older PCI 9250 card.

XXX: need to excise vtophys() usage.
XXX: need to finish porting these fixes to external.
 1.10 29-Jun-2008  jmcneill branches: 1.10.4; 1.10.10;
Revert previous, i915drm works again.
 1.9 20-Jun-2008  bjs - Don't use btop, as only three (?) platforms define this macro; use
round_page(x) >> PAGE_SHIFT instead.

- Add bus_space_mmap() in drm_vm.c to give a proper cookie to the device pager;
this gets rid of one of the two #ifdef macppc conditionals.
 1.8 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.7 04-May-2008  jmcneill branches: 1.7.2; 1.7.4;
For _DRM_SHM allocations, do not use the VA as drm_map handle on x86_64
since udv_attach will not accept a larger offset than signed 64-bit will
provide. Not the best fix, but good enough for now -- at least an X server
will now startup and get proper mappings.
 1.6 11-Dec-2007  lukem branches: 1.6.8; 1.6.10; 1.6.12;
use __KERNEL_RCSID()
 1.5 21-Nov-2007  bjs branches: 1.5.2; 1.5.4; 1.5.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.4 04-Apr-2007  rmind branches: 1.4.2; 1.4.10; 1.4.12; 1.4.14; 1.4.18; 1.4.20;
drm_do_addbufs_pci: Fix the mess of malloc()s and free()s, which
do not accept NULL arguments.
Found via CID: 4439
 1.3 28-Mar-2007  jmcneill Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.2 21-Mar-2007  jmcneill branches: 1.2.2;
Pass a proper vaddr to uvm_mmap.
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.2.2.3 15-Apr-2007  yamt sync with head.
 1.2.2.2 24-Mar-2007  yamt sync with head.
 1.2.2.1 21-Mar-2007  yamt file drm_bufs.c was added on branch yamt-idlelwp on 2007-03-24 14:55:22 +0000
 1.4.20.2 27-Dec-2007  mjf Sync with HEAD.
 1.4.20.1 08-Dec-2007  mjf Sync with HEAD.
 1.4.18.1 21-Nov-2007  bouyer Sync with HEAD
 1.4.14.4 21-Jan-2008  yamt sync with head
 1.4.14.3 07-Dec-2007  yamt sync with head
 1.4.14.2 03-Sep-2007  yamt sync with head.
 1.4.14.1 04-Apr-2007  yamt file drm_bufs.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:49 +0000
 1.4.12.1 09-Jan-2008  matt sync with HEAD
 1.4.10.1 21-Nov-2007  joerg Sync with HEAD.
 1.4.2.2 10-Apr-2007  ad Sync with head.
 1.4.2.1 04-Apr-2007  ad file drm_bufs.c was added on branch vmlocking on 2007-04-10 13:24:49 +0000
 1.5.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.5.4.1 11-Dec-2007  yamt sync with head.
 1.5.2.1 26-Dec-2007  ad Sync with head.
 1.6.12.3 18-Jul-2009  yamt sync with head.
 1.6.12.2 04-May-2009  yamt sync with head.
 1.6.12.1 16-May-2008  yamt sync with head.
 1.6.10.1 18-May-2008  yamt sync with head.
 1.6.8.3 02-Jul-2008  mjf Sync with HEAD.
 1.6.8.2 29-Jun-2008  mjf Sync with HEAD.
 1.6.8.1 02-Jun-2008  mjf Sync with HEAD.
 1.7.4.2 03-Jul-2008  simonb Sync with head.
 1.7.4.1 27-Jun-2008  simonb Sync with head.
 1.7.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.7.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.10.10.2 23-Jul-2009  jym Sync with HEAD.
 1.10.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.10.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.5 21-Jun-2009  mrg remove the old drm sources.
 1.4 18-Mar-2009  cegger bzero -> memset
 1.3 11-Dec-2007  lukem branches: 1.3.12; 1.3.20; 1.3.26;
use __KERNEL_RCSID()
 1.2 21-Nov-2007  bjs branches: 1.2.2; 1.2.4; 1.2.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.4 21-Jan-2008  yamt sync with head
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_context.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:49 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_context.c was added on branch vmlocking on 2007-04-10 13:24:49 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_context.c was added on branch yamt-idlelwp on 2007-03-24 14:55:23 +0000
 1.2.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.4.1 11-Dec-2007  yamt sync with head.
 1.2.2.1 26-Dec-2007  ad Sync with head.
 1.3.26.2 23-Jul-2009  jym Sync with HEAD.
 1.3.26.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.3.20.1 28-Apr-2009  skrll Sync with HEAD.
 1.3.12.2 18-Jul-2009  yamt sync with head.
 1.3.12.1 04-May-2009  yamt sync with head.
 1.8 21-Jun-2009  mrg remove the old drm sources.
 1.7 19-May-2008  bjs branches: 1.7.12;
NOTE: this commit message accompnies the last one for sys/dev/pci/drm.

Revert condvar changes; there seem to be other locking issues
(independent of these changes insofar as I can tell), and it will
only complicate things for now to introduce more changes.

Argh!
 1.6 18-May-2008  bjs Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz as
mstohz(333) (this seems to eliminate lockups for me using the r300
driver). Tested with i915 and radeon on amd64.
 1.5 11-Dec-2007  lukem branches: 1.5.10; 1.5.12;
use __KERNEL_RCSID()
 1.4 21-Nov-2007  bjs branches: 1.4.2; 1.4.4; 1.4.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.3 19-Oct-2007  bjs branches: 1.3.2;
First round of DRM improvements: switch to mutex(9), make use of &
operator consistent in locking macros, use mb(9) for memory barrier ops
(to be replaced with bus_space_barrier(9) at a later date; this is not
necessary for x86 but might be for e.g. mips).


More to come. Try it out! It's a lot more stable now just with the
mutex(9) changes.
 1.2 21-Mar-2007  jmcneill branches: 1.2.2; 1.2.4; 1.2.12; 1.2.14; 1.2.16; 1.2.20;
Try not to free NULL pointers.
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.2.20.2 21-Nov-2007  bouyer Sync with HEAD
 1.2.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.2.16.5 21-Jan-2008  yamt sync with head
 1.2.16.4 07-Dec-2007  yamt sync with head
 1.2.16.3 27-Oct-2007  yamt sync with head.
 1.2.16.2 03-Sep-2007  yamt sync with head.
 1.2.16.1 21-Mar-2007  yamt file drm_dma.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:50 +0000
 1.2.14.2 09-Jan-2008  matt sync with HEAD
 1.2.14.1 06-Nov-2007  matt sync with HEAD
 1.2.12.2 21-Nov-2007  joerg Sync with HEAD.
 1.2.12.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.2.4.2 10-Apr-2007  ad Sync with head.
 1.2.4.1 21-Mar-2007  ad file drm_dma.c was added on branch vmlocking on 2007-04-10 13:24:49 +0000
 1.2.2.2 24-Mar-2007  yamt sync with head.
 1.2.2.1 21-Mar-2007  yamt file drm_dma.c was added on branch yamt-idlelwp on 2007-03-24 14:55:23 +0000
 1.3.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.3.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.4.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.4.4.1 11-Dec-2007  yamt sync with head.
 1.4.2.1 26-Dec-2007  ad Sync with head.
 1.5.12.1 18-Jul-2009  yamt sync with head.
 1.5.10.2 04-Jun-2008  yamt sync with head
 1.5.10.1 18-May-2008  yamt sync with head.
 1.7.12.1 23-Jul-2009  jym Sync with HEAD.
 1.4 21-Jun-2009  mrg remove the old drm sources.
 1.3 11-Dec-2007  lukem branches: 1.3.12; 1.3.26;
use __KERNEL_RCSID()
 1.2 21-Nov-2007  bjs branches: 1.2.2; 1.2.4; 1.2.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.4 21-Jan-2008  yamt sync with head
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_drawable.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:50 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_drawable.c was added on branch vmlocking on 2007-04-10 13:24:49 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_drawable.c was added on branch yamt-idlelwp on 2007-03-24 14:55:23 +0000
 1.2.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.4.1 11-Dec-2007  yamt sync with head.
 1.2.2.1 26-Dec-2007  ad Sync with head.
 1.3.26.1 23-Jul-2009  jym Sync with HEAD.
 1.3.12.1 18-Jul-2009  yamt sync with head.
 1.26 21-Jun-2009  mrg remove the old drm sources.
 1.25 12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.24 21-Apr-2009  rafal Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:

rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.

Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).

With feedback from ad@, ok mrg@
 1.23 17-Apr-2009  joerg Move initialisation of the irq spinlock into the device handling code,
at least the Intel driver depends on it whether the IRQ is currently
enabled or not.
 1.22 31-Jan-2009  bouyer branches: 1.22.2;
Pass a bus_space_tag_t as first argument of bus_space_unmap, not an int.
 1.21 20-Jan-2009  drochner Change major()/minor() to return 32-bit types again, called
devmajor_t/devminor_t, as proposed on tech-kern.
This avoids 64-bit arithmetics and 64-bit printf formats in parts
of the kernel where it is not really useful, and helps clarity.
 1.20 18-Jan-2009  mrg Don't attempt to unload a DRM device that's in use. (Note:
Unloading doesn't work right in any case -- it doesn't clean up the
sysctl tree, among other things. This code needs Work, but at least
this prevents it crashing randomly due to autounload while X is
running.) Also, fix the dependency list for radeondrm.

contributed anonymously.
 1.19 03-Jul-2008  drochner branches: 1.19.4; 1.19.6;
split device/softc
 1.18 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.17 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.16 30-May-2008  jmcneill branches: 1.16.2;
Don't call devsw_attach/detach if _MODULE is not defined
 1.15 19-May-2008  bjs NOTE: this commit message accompnies the last one for sys/dev/pci/drm.

Revert condvar changes; there seem to be other locking issues
(independent of these changes insofar as I can tell), and it will
only complicate things for now to introduce more changes.

Argh!
 1.14 18-May-2008  jmcneill Allow building as a module.
 1.13 18-May-2008  bjs Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz as
mstohz(333) (this seems to eliminate lockups for me using the r300
driver). Tested with i915 and radeon on amd64.
 1.12 05-May-2008  jmcneill branches: 1.12.2;
Use aprint instead of DRM_INFO macro to cleanup attachment messages.
 1.11 03-May-2008  drochner make device lock adaptive
(needed because pfind() is called from inside)
 1.10 21-Mar-2008  ad branches: 1.10.2; 1.10.4;
Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
 1.9 04-Mar-2008  drochner -map 64-bit PCI BARs
-integrate some bits from upstream to support i965
from Yorick Hardy per PM
 1.8 11-Dec-2007  lukem branches: 1.8.4; 1.8.8;
use __KERNEL_RCSID()
 1.7 21-Nov-2007  bjs branches: 1.7.2; 1.7.4; 1.7.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.6 19-Oct-2007  bjs branches: 1.6.2;
First round of DRM improvements: switch to mutex(9), make use of &
operator consistent in locking macros, use mb(9) for memory barrier ops
(to be replaced with bus_space_barrier(9) at a later date; this is not
necessary for x86 but might be for e.g. mips).


More to come. Try it out! It's a lot more stable now just with the
mutex(9) changes.
 1.5 28-Mar-2007  jmcneill branches: 1.5.2; 1.5.10; 1.5.12; 1.5.14; 1.5.18;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.4 23-Mar-2007  drochner branches: 1.4.2;
Free ressources more agressively.
(The natural place for this would be on each close, but we don't have
a driver entry point for this.)
from Yorick Hardy
 1.3 22-Mar-2007  jmcneill Newline after foodrm0 at vga0 message.
 1.2 21-Mar-2007  jmcneill Initialize extra AGP resource slots.
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.4.2.3 15-Apr-2007  yamt sync with head.
 1.4.2.2 24-Mar-2007  yamt sync with head.
 1.4.2.1 23-Mar-2007  yamt file drm_drv.c was added on branch yamt-idlelwp on 2007-03-24 14:55:23 +0000
 1.5.18.2 21-Nov-2007  bouyer Sync with HEAD
 1.5.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.5.14.7 24-Mar-2008  yamt sync with head.
 1.5.14.6 17-Mar-2008  yamt sync with head.
 1.5.14.5 21-Jan-2008  yamt sync with head
 1.5.14.4 07-Dec-2007  yamt sync with head
 1.5.14.3 27-Oct-2007  yamt sync with head.
 1.5.14.2 03-Sep-2007  yamt sync with head.
 1.5.14.1 28-Mar-2007  yamt file drm_drv.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:51 +0000
 1.5.12.3 23-Mar-2008  matt sync with HEAD
 1.5.12.2 09-Jan-2008  matt sync with HEAD
 1.5.12.1 06-Nov-2007  matt sync with HEAD
 1.5.10.2 21-Nov-2007  joerg Sync with HEAD.
 1.5.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.5.2.2 10-Apr-2007  ad Sync with head.
 1.5.2.1 28-Mar-2007  ad file drm_drv.c was added on branch vmlocking on 2007-04-10 13:24:50 +0000
 1.6.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.6.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.7.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.7.4.1 11-Dec-2007  yamt sync with head.
 1.7.2.1 26-Dec-2007  ad Sync with head.
 1.8.8.5 28-Sep-2008  mjf Sync with HEAD.
 1.8.8.4 02-Jul-2008  mjf Sync with HEAD.
 1.8.8.3 29-Jun-2008  mjf Sync with HEAD.
 1.8.8.2 02-Jun-2008  mjf Sync with HEAD.
 1.8.8.1 03-Apr-2008  mjf Sync with HEAD.
 1.8.4.1 24-Mar-2008  keiichi sync with head.
 1.10.4.4 18-Jul-2009  yamt sync with head.
 1.10.4.3 16-May-2009  yamt sync with head
 1.10.4.2 04-May-2009  yamt sync with head.
 1.10.4.1 16-May-2008  yamt sync with head.
 1.10.2.2 04-Jun-2008  yamt sync with head
 1.10.2.1 18-May-2008  yamt sync with head.
 1.12.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.12.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.16.2.2 03-Jul-2008  simonb Sync with head.
 1.16.2.1 27-Jun-2008  simonb Sync with head.
 1.19.6.2 23-Apr-2009  snj Pull up following revision(s) (requested by rafal in ticket #717):
sys/dev/drm/drmP.h: revision 1.34
sys/dev/drm/drm_drv.c: revision 1.24
sys/dev/drm/drm_scatter.c: revision 1.8
Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:
rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.
Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).
With feedback from ad@, ok mrg@
 1.19.6.1 23-Apr-2009  snj Pull up following revision(s) (requested by joerg in ticket #714):
sys/dev/drm/drm_drv.c: revision 1.23
sys/dev/drm/drm_irq.c: revision 1.17
Move initialisation of the irq spinlock into the device handling code,
at least the Intel driver depends on it whether the IRQ is currently
enabled or not.
 1.19.4.3 28-Apr-2009  skrll Sync with HEAD.
 1.19.4.2 03-Mar-2009  skrll Sync with HEAD.
 1.19.4.1 19-Jan-2009  skrll Sync with HEAD.
 1.22.2.2 23-Jul-2009  jym Sync with HEAD.
 1.22.2.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.5 21-Jun-2009  mrg remove the old drm sources.
 1.4 11-Dec-2007  lukem branches: 1.4.12; 1.4.26;
use __KERNEL_RCSID()
 1.3 21-Nov-2007  bjs branches: 1.3.2; 1.3.4; 1.3.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.2 23-Mar-2007  drochner branches: 1.2.2; 1.2.4; 1.2.12; 1.2.14; 1.2.16; 1.2.20; 1.2.22;
Free ressources more agressively.
(The natural place for this would be on each close, but we don't have
a driver entry point for this.)
from Yorick Hardy
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.2.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.2.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.2.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.2.16.4 21-Jan-2008  yamt sync with head
 1.2.16.3 07-Dec-2007  yamt sync with head
 1.2.16.2 03-Sep-2007  yamt sync with head.
 1.2.16.1 23-Mar-2007  yamt file drm_fops.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:51 +0000
 1.2.14.1 09-Jan-2008  matt sync with HEAD
 1.2.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.2.4.2 10-Apr-2007  ad Sync with head.
 1.2.4.1 23-Mar-2007  ad file drm_fops.c was added on branch vmlocking on 2007-04-10 13:24:50 +0000
 1.2.2.2 24-Mar-2007  yamt sync with head.
 1.2.2.1 23-Mar-2007  yamt file drm_fops.c was added on branch yamt-idlelwp on 2007-03-24 14:55:23 +0000
 1.3.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.3.4.1 11-Dec-2007  yamt sync with head.
 1.3.2.1 26-Dec-2007  ad Sync with head.
 1.4.26.1 23-Jul-2009  jym Sync with HEAD.
 1.4.12.1 18-Jul-2009  yamt sync with head.
 1.4 21-Jun-2009  mrg remove the old drm sources.
 1.3 11-Dec-2007  lukem branches: 1.3.12; 1.3.26;
use __KERNEL_RCSID()
 1.2 21-Nov-2007  bjs branches: 1.2.2; 1.2.4; 1.2.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.4 21-Jan-2008  yamt sync with head
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_ioctl.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:51 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_ioctl.c was added on branch vmlocking on 2007-04-10 13:24:50 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_ioctl.c was added on branch yamt-idlelwp on 2007-03-24 14:55:24 +0000
 1.2.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.4.1 11-Dec-2007  yamt sync with head.
 1.2.2.1 26-Dec-2007  ad Sync with head.
 1.3.26.1 23-Jul-2009  jym Sync with HEAD.
 1.3.12.1 18-Jul-2009  yamt sync with head.
 1.18 21-Jun-2009  mrg remove the old drm sources.
 1.17 17-Apr-2009  joerg Move initialisation of the irq spinlock into the device handling code,
at least the Intel driver depends on it whether the IRQ is currently
enabled or not.
 1.16 07-Jul-2008  mrg branches: 1.16.2; 1.16.4; 1.16.6; 1.16.10;
revert unnecessary changes to 3rd party code.
 1.15 03-Jul-2008  drochner split device/softc
 1.14 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.13 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.12 19-May-2008  bjs branches: 1.12.2;
NOTE: this commit message accompnies the last one for sys/dev/pci/drm.

Revert condvar changes; there seem to be other locking issues
(independent of these changes insofar as I can tell), and it will
only complicate things for now to introduce more changes.

Argh!
 1.11 18-May-2008  bjs Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz as
mstohz(333) (this seems to eliminate lockups for me using the r300
driver). Tested with i915 and radeon on amd64.
 1.10 06-May-2008  bjs branches: 1.10.2;
Revert last commit -- breaks i915.
 1.9 06-May-2008  bjs A few steps down the yellow brick road toward bus_dma-ification:

- Add drm_dmamem_alloc/drm_dmamem_free to drm_memory.c to nicely wrap up
the bus_dma API.

- Start using the above in drm_pci.c.

- Add DRM_NETBSD_DMA_ADDR/DRM_NETBSD_DMA_VADDR macros.

Locking:

- Use IPL_NONE for all locks except the IRQ lock, which runs at IPL_VM.

- Use IPL_VM instead of IPL_TTY with pci_intr_establish() for consistency's
sake. These two changes seem to eliminate the presistent lockups I was
having (NetBSD-current/amd64 r300).

- Start getting rid of DRM_SPININIT/DRM_SPINUNINIT and DRM_SPINLOCK/
DRM_SPINUNLOCK ... these annoy me to no end--not to mention that they
locks may or may not be spinlocks! It's a linux frob, really.
We're way beyond merging any useful bsd-core code on a large scale, which
was the only good reason to keep them around.

Memory allocation:

- Change drm_memory.c so that it contains generally useful, memory
allocation functions using kmem(9) (mostly used by the drivers
themselves). However, I expect to use this more in the future
in the "bsd core". These functions always use KM_NOSLEEP.
The new drm_dmamem_alloc function has a wait argument which
takes DRM_DMA_WAIT/DRM_DMA_NOWAIT (defined as their bus_dma
counterparts), and honors this hint in its calls to kmem(9)
and bus_dma(9) functions.

- Got rid of these functions' "area" argument--it's been deprecated for
ages. Provide macros in drmP.h to deal with the os-independent code.

- Declare these functions inline -- I believe they're used enough
by the i915 and radeon drivers to justify it. Please let me know
if I am mistaken.

NOTE: With these changes, a glxgears score which was previously
~3900fps is now ~4400fps (same setup as mentioned above). I realize
that using kmem(9) could cause problems, but I can't seem to run into
any with my test setup. If anyone smells regression, please let me
know.
 1.8 08-Apr-2008  cegger branches: 1.8.2; 1.8.4;
use aprint_*_dev and device_xname
 1.7 15-Dec-2007  perry branches: 1.7.6;
__FUNCTION__ -> __func__
 1.6 11-Dec-2007  lukem use __KERNEL_RCSID()
 1.5 21-Nov-2007  bjs branches: 1.5.2; 1.5.4; 1.5.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.4 19-Oct-2007  bjs branches: 1.4.2;
First round of DRM improvements: switch to mutex(9), make use of &
operator consistent in locking macros, use mb(9) for memory barrier ops
(to be replaced with bus_space_barrier(9) at a later date; this is not
necessary for x86 but might be for e.g. mips).


More to come. Try it out! It's a lot more stable now just with the
mutex(9) changes.
 1.3 28-Mar-2007  jmcneill branches: 1.3.2; 1.3.10; 1.3.12; 1.3.14; 1.3.18;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.2 21-Mar-2007  drochner branches: 1.2.2;
remove a debug printf which I had left in accidentally,
print the standard "dv_xname: interrupting at ..." line instead
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.2.2.3 15-Apr-2007  yamt sync with head.
 1.2.2.2 24-Mar-2007  yamt sync with head.
 1.2.2.1 21-Mar-2007  yamt file drm_irq.c was added on branch yamt-idlelwp on 2007-03-24 14:55:24 +0000
 1.3.18.2 21-Nov-2007  bouyer Sync with HEAD
 1.3.18.1 25-Oct-2007  bouyer Sync with HEAD.
 1.3.14.5 21-Jan-2008  yamt sync with head
 1.3.14.4 07-Dec-2007  yamt sync with head
 1.3.14.3 27-Oct-2007  yamt sync with head.
 1.3.14.2 03-Sep-2007  yamt sync with head.
 1.3.14.1 28-Mar-2007  yamt file drm_irq.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:52 +0000
 1.3.12.2 09-Jan-2008  matt sync with HEAD
 1.3.12.1 06-Nov-2007  matt sync with HEAD
 1.3.10.2 21-Nov-2007  joerg Sync with HEAD.
 1.3.10.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.3.2.2 10-Apr-2007  ad Sync with head.
 1.3.2.1 28-Mar-2007  ad file drm_irq.c was added on branch vmlocking on 2007-04-10 13:24:50 +0000
 1.4.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.4.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.5.6.2 02-Jan-2008  bouyer Sync with HEAD
 1.5.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.5.4.1 11-Dec-2007  yamt sync with head.
 1.5.2.1 26-Dec-2007  ad Sync with head.
 1.7.6.4 28-Sep-2008  mjf Sync with HEAD.
 1.7.6.3 02-Jul-2008  mjf Sync with HEAD.
 1.7.6.2 29-Jun-2008  mjf Sync with HEAD.
 1.7.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.8.4.2 18-Jul-2009  yamt sync with head.
 1.8.4.1 04-May-2009  yamt sync with head.
 1.8.2.2 04-Jun-2008  yamt sync with head
 1.8.2.1 18-May-2008  yamt sync with head.
 1.10.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.10.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.12.2.3 18-Jul-2008  simonb Sync with head.
 1.12.2.2 03-Jul-2008  simonb Sync with head.
 1.12.2.1 27-Jun-2008  simonb Sync with head.
 1.16.10.2 23-Jul-2009  jym Sync with HEAD.
 1.16.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.16.6.1 23-Apr-2009  snj Pull up following revision(s) (requested by joerg in ticket #714):
sys/dev/drm/drm_drv.c: revision 1.23
sys/dev/drm/drm_irq.c: revision 1.17
Move initialisation of the irq spinlock into the device handling code,
at least the Intel driver depends on it whether the IRQ is currently
enabled or not.
 1.16.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.16.2.2 07-Jul-2008  mrg revert unnecessary changes to 3rd party code.
 1.16.2.1 07-Jul-2008  mrg file drm_irq.c was added on branch haad-dm on 2008-07-07 00:33:24 +0000
 1.4 21-Jun-2009  mrg remove the old drm sources.
 1.3 14-Oct-2008  bjs branches: 1.3.8;
Fix handling of lists with a single entry in list_for_each_safe();
this also plugs a memory leak.
 1.2 21-Nov-2007  bjs branches: 1.2.14; 1.2.18; 1.2.24;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_linux_list.h was added on branch yamt-lazymbuf on 2007-09-03 14:33:52 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_linux_list.h was added on branch vmlocking on 2007-04-10 13:24:51 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_linux_list.h was added on branch yamt-idlelwp on 2007-03-24 14:55:24 +0000
 1.2.24.1 19-Oct-2008  haad Sync with HEAD.
 1.2.18.2 18-Jul-2009  yamt sync with head.
 1.2.18.1 04-May-2009  yamt sync with head.
 1.2.14.1 17-Jan-2009  mjf Sync with HEAD.
 1.3.8.1 23-Jul-2009  jym Sync with HEAD.
 1.8 21-Jun-2009  mrg remove the old drm sources.
 1.7 19-May-2008  bjs branches: 1.7.12;
NOTE: this commit message accompnies the last one for sys/dev/pci/drm.

Revert condvar changes; there seem to be other locking issues
(independent of these changes insofar as I can tell), and it will
only complicate things for now to introduce more changes.

Argh!
 1.6 18-May-2008  bjs Use cv(9) instead of mtsleep/wakeup. Also, define drm_hz as
mstohz(333) (this seems to eliminate lockups for me using the r300
driver). Tested with i915 and radeon on amd64.
 1.5 11-Dec-2007  lukem branches: 1.5.10; 1.5.12;
use __KERNEL_RCSID()
 1.4 07-Dec-2007  bjs branches: 1.4.2; 1.4.4;
Bring in some modest fixes from GIT that seemed appropriate to me and did not
break functionality. I've tested this on a PCIE R423 (X800).

- In drm_drv.c, check that the requested context lock matches the holder
of the lock.

- Unify radeon offset checking. (r300_cmdbuf.c, radeon_drv.h, radeon_state.c)
[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]

NOTE: There is another AGP fix that I didn't have time to merge
that I thought might help with getting this to work on macppc.
Contact me if you're interested. Hi macallan@! ;)

radeon_cp.c, radeon_drv.h: (GIT id: bb5f2158dbd30dbbffa3881fac75b71d71ecaaf9)
- set the address to access the aperture on the CPU side correctly
[This code relied on the CPU and GPU address for the aperture being the same,
On some r5xx hardware I was playing with I noticed that this isn't always true.
I wonder if this will fix some of those r4xx DRI issues we've seen in the past.]

- Commit the ring after earch partial texture. (radeon_state.c)
(GIT ID: ac8406420ea80ffe5ccaadc1ff0124f95709a23d)
[Commit the ring after each partial texture upload blit.
This makes sure each blit starts as early as possible, which may improve
texture upload performance in some cases.]

If anyone's having any issues in particular--especially those which
can be _teased apart from AGP driver issues--please let me know
and I'll investigate. Thanks. There are also tons of fixes for the i915,
but I don't want to change too much at once.
 1.3 21-Nov-2007  bjs branches: 1.3.2;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.2 19-Oct-2007  bjs branches: 1.2.2;
First round of DRM improvements: switch to mutex(9), make use of &
operator consistent in locking macros, use mb(9) for memory barrier ops
(to be replaced with bus_space_barrier(9) at a later date; this is not
necessary for x86 but might be for e.g. mips).


More to come. Try it out! It's a lot more stable now just with the
mutex(9) changes.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.20.2 21-Nov-2007  bouyer Sync with HEAD
 1.1.20.1 25-Oct-2007  bouyer Sync with HEAD.
 1.1.16.5 21-Jan-2008  yamt sync with head
 1.1.16.4 07-Dec-2007  yamt sync with head
 1.1.16.3 27-Oct-2007  yamt sync with head.
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_lock.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:53 +0000
 1.1.14.2 09-Jan-2008  matt sync with HEAD
 1.1.14.1 06-Nov-2007  matt sync with HEAD
 1.1.12.3 09-Dec-2007  jmcneill Sync with HEAD.
 1.1.12.2 21-Nov-2007  joerg Sync with HEAD.
 1.1.12.1 26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_lock.c was added on branch vmlocking on 2007-04-10 13:24:51 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_lock.c was added on branch yamt-idlelwp on 2007-03-24 14:55:24 +0000
 1.2.2.2 27-Dec-2007  mjf Sync with HEAD.
 1.2.2.1 08-Dec-2007  mjf Sync with HEAD.
 1.3.2.2 26-Dec-2007  ad Sync with head.
 1.3.2.1 08-Dec-2007  ad Sync with head.
 1.4.4.1 13-Dec-2007  bouyer Sync with HEAD
 1.4.2.1 11-Dec-2007  yamt sync with head.
 1.5.12.1 18-Jul-2009  yamt sync with head.
 1.5.10.2 04-Jun-2008  yamt sync with head
 1.5.10.1 18-May-2008  yamt sync with head.
 1.7.12.1 23-Jul-2009  jym Sync with HEAD.
 1.17 21-Jun-2009  mrg remove the old drm sources.
 1.16 15-Feb-2009  jmcneill Only pull in genfb.h if _KERNEL_OPT is defined. Reported by Kurt Schreiner
 1.15 15-Feb-2009  jmcneill Use genfb_borrow; drm works with genfb now.
 1.14 29-Jun-2008  jmcneill branches: 1.14.4; 1.14.10;
Revert previous, i915drm works again.
 1.13 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.12 19-May-2008  jmcneill branches: 1.12.2;
Don't use MALLOC_DECLARE / MALLOC_DEFINE if building as a module.
 1.11 18-May-2008  jmcneill Allow building as a module.
 1.10 06-May-2008  bjs branches: 1.10.2;
Revert last commit -- breaks i915.
 1.9 06-May-2008  bjs A few steps down the yellow brick road toward bus_dma-ification:

- Add drm_dmamem_alloc/drm_dmamem_free to drm_memory.c to nicely wrap up
the bus_dma API.

- Start using the above in drm_pci.c.

- Add DRM_NETBSD_DMA_ADDR/DRM_NETBSD_DMA_VADDR macros.

Locking:

- Use IPL_NONE for all locks except the IRQ lock, which runs at IPL_VM.

- Use IPL_VM instead of IPL_TTY with pci_intr_establish() for consistency's
sake. These two changes seem to eliminate the presistent lockups I was
having (NetBSD-current/amd64 r300).

- Start getting rid of DRM_SPININIT/DRM_SPINUNINIT and DRM_SPINLOCK/
DRM_SPINUNLOCK ... these annoy me to no end--not to mention that they
locks may or may not be spinlocks! It's a linux frob, really.
We're way beyond merging any useful bsd-core code on a large scale, which
was the only good reason to keep them around.

Memory allocation:

- Change drm_memory.c so that it contains generally useful, memory
allocation functions using kmem(9) (mostly used by the drivers
themselves). However, I expect to use this more in the future
in the "bsd core". These functions always use KM_NOSLEEP.
The new drm_dmamem_alloc function has a wait argument which
takes DRM_DMA_WAIT/DRM_DMA_NOWAIT (defined as their bus_dma
counterparts), and honors this hint in its calls to kmem(9)
and bus_dma(9) functions.

- Got rid of these functions' "area" argument--it's been deprecated for
ages. Provide macros in drmP.h to deal with the os-independent code.

- Declare these functions inline -- I believe they're used enough
by the i915 and radeon drivers to justify it. Please let me know
if I am mistaken.

NOTE: With these changes, a glxgears score which was previously
~3900fps is now ~4400fps (same setup as mentioned above). I realize
that using kmem(9) could cause problems, but I can't seem to run into
any with my test setup. If anyone smells regression, please let me
know.
 1.8 13-Mar-2008  bjs branches: 1.8.2; 1.8.4;
Don't include i810 hack if DRM_NO_AGP is defined, as it results in
an undefined symbol (agp_i810_borrow) at kernel link time.
 1.7 04-Mar-2008  drochner -map 64-bit PCI BARs
-integrate some bits from upstream to support i965
from Yorick Hardy per PM
 1.6 22-Feb-2008  drochner Add a horrible hack to allow the DRM driver to get at the bus_space_handle
allocated by the AGP driver in the case of Intel chipset graphics.
This is different from the patch by Yorick Hardy circulated a while ago
in that it doesn't change the semantics of reference counting within
the (3rd-party) DRM code -- it just bypasses it.
Needless to say that it is uglier, but it eases future updates to
the DRM code because the change there is just 2 LOC.

Imo, a cleaner solution for all that would be to attach "agp" to "vga"
in the intel chipset graphics case, which better reflects how the hardware
is structured. This would still need a hack to the DRM code, but
it would be confined to childs of the "vga" device, without need for
global variables.
Since there is a variety of intel chipsets with AGP and/or builtin
graphics options, this would need a considerable testing effort.
 1.5 11-Dec-2007  lukem branches: 1.5.4; 1.5.8;
use __KERNEL_RCSID()
 1.4 21-Nov-2007  bjs branches: 1.4.2; 1.4.4; 1.4.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.3 28-Mar-2007  jmcneill branches: 1.3.2; 1.3.10; 1.3.12; 1.3.14; 1.3.18; 1.3.20;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.2 21-Mar-2007  jmcneill branches: 1.2.2;
In drm_ioremap, provide extra slots for mapping AGP memory space; it's not
reasonable to assume that these regions will show up in a VGA BAR.
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.2.2.3 15-Apr-2007  yamt sync with head.
 1.2.2.2 24-Mar-2007  yamt sync with head.
 1.2.2.1 21-Mar-2007  yamt file drm_memory.c was added on branch yamt-idlelwp on 2007-03-24 14:55:25 +0000
 1.3.20.2 27-Dec-2007  mjf Sync with HEAD.
 1.3.20.1 08-Dec-2007  mjf Sync with HEAD.
 1.3.18.1 21-Nov-2007  bouyer Sync with HEAD
 1.3.14.6 17-Mar-2008  yamt sync with head.
 1.3.14.5 27-Feb-2008  yamt sync with head.
 1.3.14.4 21-Jan-2008  yamt sync with head
 1.3.14.3 07-Dec-2007  yamt sync with head
 1.3.14.2 03-Sep-2007  yamt sync with head.
 1.3.14.1 28-Mar-2007  yamt file drm_memory.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:53 +0000
 1.3.12.2 23-Mar-2008  matt sync with HEAD
 1.3.12.1 09-Jan-2008  matt sync with HEAD
 1.3.10.1 21-Nov-2007  joerg Sync with HEAD.
 1.3.2.2 10-Apr-2007  ad Sync with head.
 1.3.2.1 28-Mar-2007  ad file drm_memory.c was added on branch vmlocking on 2007-04-10 13:24:51 +0000
 1.4.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.4.4.1 11-Dec-2007  yamt sync with head.
 1.4.2.1 26-Dec-2007  ad Sync with head.
 1.5.8.4 02-Jul-2008  mjf Sync with HEAD.
 1.5.8.3 29-Jun-2008  mjf Sync with HEAD.
 1.5.8.2 02-Jun-2008  mjf Sync with HEAD.
 1.5.8.1 03-Apr-2008  mjf Sync with HEAD.
 1.5.4.1 24-Mar-2008  keiichi sync with head.
 1.8.4.2 18-Jul-2009  yamt sync with head.
 1.8.4.1 04-May-2009  yamt sync with head.
 1.8.2.1 04-Jun-2008  yamt sync with head
 1.10.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.10.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.12.2.2 03-Jul-2008  simonb Sync with head.
 1.12.2.1 27-Jun-2008  simonb Sync with head.
 1.14.10.2 23-Jul-2009  jym Sync with HEAD.
 1.14.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.14.4.1 03-Mar-2009  skrll Sync with HEAD.
 1.3 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.2 01-Jun-2008  bjs branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
Use symbolic names for mem->phase, make error reporting more sensible.
 1.1 28-May-2008  bjs Add work-in-progress of NetBSD-specific code. I will be committing a lot
more changes shortly (as soon as I work out the mmap offset insanity).
 1.2.8.3 07-Sep-2008  wrstuden Delete a bunch of things that are now gone in head.
 1.2.8.2 23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.2.8.1 01-Jun-2008  wrstuden file drm_netbsd.c was added on branch wrstuden-revivesa on 2008-06-23 05:02:13 +0000
 1.2.6.1 03-Jul-2008  simonb Sync with head.
 1.2.4.2 04-Jun-2008  yamt sync with head
 1.2.4.1 01-Jun-2008  yamt file drm_netbsd.c was added on branch yamt-pf42 on 2008-06-04 02:05:10 +0000
 1.2.2.3 02-Jul-2008  mjf Sync with HEAD.
 1.2.2.2 02-Jun-2008  mjf Sync with HEAD.
 1.2.2.1 01-Jun-2008  mjf file drm_netbsd.c was added on branch mjf-devfs2 on 2008-06-02 13:23:15 +0000
 1.3 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.2 01-Jun-2008  bjs branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8;
Use symbolic names for mem->phase, make error reporting more sensible.
 1.1 28-May-2008  bjs Add work-in-progress of NetBSD-specific code. I will be committing a lot
more changes shortly (as soon as I work out the mmap offset insanity).
 1.2.8.3 07-Sep-2008  wrstuden Delete a bunch of things that are now gone in head.
 1.2.8.2 23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.2.8.1 01-Jun-2008  wrstuden file drm_netbsd.h was added on branch wrstuden-revivesa on 2008-06-23 05:02:13 +0000
 1.2.6.1 03-Jul-2008  simonb Sync with head.
 1.2.4.2 04-Jun-2008  yamt sync with head
 1.2.4.1 01-Jun-2008  yamt file drm_netbsd.h was added on branch yamt-pf42 on 2008-06-04 02:05:10 +0000
 1.2.2.3 02-Jul-2008  mjf Sync with HEAD.
 1.2.2.2 02-Jun-2008  mjf Sync with HEAD.
 1.2.2.1 01-Jun-2008  mjf file drm_netbsd.h was added on branch mjf-devfs2 on 2008-06-02 13:23:15 +0000
 1.15 21-Jun-2009  mrg remove the old drm sources.
 1.14 29-Mar-2009  mrg include the size in a falled allocation message.
 1.13 29-Jun-2008  jmcneill branches: 1.13.4; 1.13.10;
Revert previous, i915drm works again.
 1.12 20-Jun-2008  bjs - Don't use btop, as only three (?) platforms define this macro; use
round_page(x) >> PAGE_SHIFT instead.

- Add bus_space_mmap() in drm_vm.c to give a proper cookie to the device pager;
this gets rid of one of the two #ifdef macppc conditionals.
 1.11 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.10 06-May-2008  bjs branches: 1.10.2; 1.10.4;
Revert last commit -- breaks i915.
 1.9 06-May-2008  bjs A few steps down the yellow brick road toward bus_dma-ification:

- Add drm_dmamem_alloc/drm_dmamem_free to drm_memory.c to nicely wrap up
the bus_dma API.

- Start using the above in drm_pci.c.

- Add DRM_NETBSD_DMA_ADDR/DRM_NETBSD_DMA_VADDR macros.

Locking:

- Use IPL_NONE for all locks except the IRQ lock, which runs at IPL_VM.

- Use IPL_VM instead of IPL_TTY with pci_intr_establish() for consistency's
sake. These two changes seem to eliminate the presistent lockups I was
having (NetBSD-current/amd64 r300).

- Start getting rid of DRM_SPININIT/DRM_SPINUNINIT and DRM_SPINLOCK/
DRM_SPINUNLOCK ... these annoy me to no end--not to mention that they
locks may or may not be spinlocks! It's a linux frob, really.
We're way beyond merging any useful bsd-core code on a large scale, which
was the only good reason to keep them around.

Memory allocation:

- Change drm_memory.c so that it contains generally useful, memory
allocation functions using kmem(9) (mostly used by the drivers
themselves). However, I expect to use this more in the future
in the "bsd core". These functions always use KM_NOSLEEP.
The new drm_dmamem_alloc function has a wait argument which
takes DRM_DMA_WAIT/DRM_DMA_NOWAIT (defined as their bus_dma
counterparts), and honors this hint in its calls to kmem(9)
and bus_dma(9) functions.

- Got rid of these functions' "area" argument--it's been deprecated for
ages. Provide macros in drmP.h to deal with the os-independent code.

- Declare these functions inline -- I believe they're used enough
by the i915 and radeon drivers to justify it. Please let me know
if I am mistaken.

NOTE: With these changes, a glxgears score which was previously
~3900fps is now ~4400fps (same setup as mentioned above). I realize
that using kmem(9) could cause problems, but I can't seem to run into
any with my test setup. If anyone smells regression, please let me
know.
 1.8 02-Mar-2008  bjs branches: 1.8.4;
Fix bus_dmamem_free() call to provide 'segs' as the second argument.
While here, add DRM_PCI_DMAADDR macro so that we set handle->busaddr
in a portable way.
Next is the more difficult [annoying] part: use bus_dma(9) with
scatter/gather buffers.
 1.7 11-Dec-2007  lukem branches: 1.7.4; 1.7.8;
use __KERNEL_RCSID()
 1.6 04-Dec-2007  bjs branches: 1.6.2; 1.6.4;
drm unbreaking, round 1:

Fix the bus_dma(9) use in drm_pci.c and chnage struct drm_dma_handle_t
to match it. Remove member dmaaddr from drm_dma_handle_t as well,
as I don't see it used anywhere. Compile-tested only for now; please
report any problems to me. Thanks.
 1.5 21-Nov-2007  bjs branches: 1.5.2;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.4 21-Mar-2007  drochner branches: 1.4.2; 1.4.4; 1.4.12; 1.4.14; 1.4.16; 1.4.20; 1.4.22;
since no boundary restrictions apply, a zero boundary argument to
bus_dmamem_alloc() is the right thing
 1.3 21-Mar-2007  xtraeme Fix previous, use %zd.
 1.2 21-Mar-2007  macallan - pass a sane boundary parameter to bus_dmamem_alloc
- sprinkle aprint_error()
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.4.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.4.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.4.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.4.16.5 17-Mar-2008  yamt sync with head.
 1.4.16.4 21-Jan-2008  yamt sync with head
 1.4.16.3 07-Dec-2007  yamt sync with head
 1.4.16.2 03-Sep-2007  yamt sync with head.
 1.4.16.1 21-Mar-2007  yamt file drm_pci.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:54 +0000
 1.4.14.2 23-Mar-2008  matt sync with HEAD
 1.4.14.1 09-Jan-2008  matt sync with HEAD
 1.4.12.2 09-Dec-2007  jmcneill Sync with HEAD.
 1.4.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.4.4.2 10-Apr-2007  ad Sync with head.
 1.4.4.1 21-Mar-2007  ad file drm_pci.c was added on branch vmlocking on 2007-04-10 13:24:51 +0000
 1.4.2.2 24-Mar-2007  yamt sync with head.
 1.4.2.1 21-Mar-2007  yamt file drm_pci.c was added on branch yamt-idlelwp on 2007-03-24 14:55:25 +0000
 1.5.2.2 26-Dec-2007  ad Sync with head.
 1.5.2.1 08-Dec-2007  ad Sync with head.
 1.6.4.1 13-Dec-2007  bouyer Sync with HEAD
 1.6.2.1 11-Dec-2007  yamt sync with head.
 1.7.8.3 02-Jul-2008  mjf Sync with HEAD.
 1.7.8.2 29-Jun-2008  mjf Sync with HEAD.
 1.7.8.1 03-Apr-2008  mjf Sync with HEAD.
 1.7.4.1 24-Mar-2008  keiichi sync with head.
 1.8.4.2 18-Jul-2009  yamt sync with head.
 1.8.4.1 04-May-2009  yamt sync with head.
 1.10.4.2 03-Jul-2008  simonb Sync with head.
 1.10.4.1 27-Jun-2008  simonb Sync with head.
 1.10.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.10.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.13.10.2 23-Jul-2009  jym Sync with HEAD.
 1.13.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.13.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.3 21-Jun-2009  mrg remove the old drm sources.
 1.2 21-Nov-2007  bjs branches: 1.2.18; 1.2.32;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_sarea.h was added on branch yamt-lazymbuf on 2007-09-03 14:33:54 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_sarea.h was added on branch vmlocking on 2007-04-10 13:24:52 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_sarea.h was added on branch yamt-idlelwp on 2007-03-24 14:55:25 +0000
 1.2.32.1 23-Jul-2009  jym Sync with HEAD.
 1.2.18.1 18-Jul-2009  yamt sync with head.
 1.9 21-Jun-2009  mrg remove the old drm sources.
 1.8 21-Apr-2009  rafal Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:

rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.

Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).

With feedback from ad@, ok mrg@
 1.7 07-Jul-2008  mrg branches: 1.7.2; 1.7.4; 1.7.6; 1.7.10;
revert unnecessary changes to 3rd party code.
 1.6 29-Jun-2008  jmcneill Revert previous, i915drm works again.
 1.5 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.4 15-Dec-2007  perry branches: 1.4.6; 1.4.10; 1.4.12; 1.4.14;
__FUNCTION__ -> __func__
 1.3 11-Dec-2007  lukem use __KERNEL_RCSID()
 1.2 21-Nov-2007  bjs branches: 1.2.2; 1.2.4; 1.2.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.4 21-Jan-2008  yamt sync with head
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_scatter.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:55 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_scatter.c was added on branch vmlocking on 2007-04-10 13:24:52 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_scatter.c was added on branch yamt-idlelwp on 2007-03-24 14:55:25 +0000
 1.2.6.2 02-Jan-2008  bouyer Sync with HEAD
 1.2.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.4.1 11-Dec-2007  yamt sync with head.
 1.2.2.1 26-Dec-2007  ad Sync with head.
 1.4.14.3 18-Jul-2008  simonb Sync with head.
 1.4.14.2 03-Jul-2008  simonb Sync with head.
 1.4.14.1 27-Jun-2008  simonb Sync with head.
 1.4.12.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.12.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.4.10.2 18-Jul-2009  yamt sync with head.
 1.4.10.1 04-May-2009  yamt sync with head.
 1.4.6.3 28-Sep-2008  mjf Sync with HEAD.
 1.4.6.2 02-Jul-2008  mjf Sync with HEAD.
 1.4.6.1 29-Jun-2008  mjf Sync with HEAD.
 1.7.10.2 23-Jul-2009  jym Sync with HEAD.
 1.7.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.7.6.1 23-Apr-2009  snj Pull up following revision(s) (requested by rafal in ticket #717):
sys/dev/drm/drmP.h: revision 1.34
sys/dev/drm/drm_drv.c: revision 1.24
sys/dev/drm/drm_scatter.c: revision 1.8
Rework scatter / gather page allocation inspired by r186295 of FreeBSD SVN:
rework drm_scatter.c which allocates scatter / gather pages for use by
ati pci gart to use bus_dma to handle the allocations. This fixes
a garbled screen issue on at least some radeons (X1400 tested). It is
also likely that this is the correct fix for PR# 119324, though that
is not confirmed yet.
Fixes similar issues on a Radeon Mobility X300, non-Mobility X800 (including
a hard-lock of the machine).
With feedback from ad@, ok mrg@
 1.7.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.7.2.2 07-Jul-2008  mrg revert unnecessary changes to 3rd party code.
 1.7.2.1 07-Jul-2008  mrg file drm_scatter.c was added on branch haad-dm on 2008-07-07 00:33:24 +0000
 1.4 21-Jun-2009  mrg remove the old drm sources.
 1.3 11-Dec-2007  lukem branches: 1.3.12; 1.3.26;
use __KERNEL_RCSID()
 1.2 21-Nov-2007  bjs branches: 1.2.2; 1.2.4; 1.2.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.1 20-Mar-2007  drochner branches: 1.1.2; 1.1.4; 1.1.12; 1.1.14; 1.1.16; 1.1.20; 1.1.22;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.22.2 27-Dec-2007  mjf Sync with HEAD.
 1.1.22.1 08-Dec-2007  mjf Sync with HEAD.
 1.1.20.1 21-Nov-2007  bouyer Sync with HEAD
 1.1.16.4 21-Jan-2008  yamt sync with head
 1.1.16.3 07-Dec-2007  yamt sync with head
 1.1.16.2 03-Sep-2007  yamt sync with head.
 1.1.16.1 20-Mar-2007  yamt file drm_sysctl.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:55 +0000
 1.1.14.1 09-Jan-2008  matt sync with HEAD
 1.1.12.1 21-Nov-2007  joerg Sync with HEAD.
 1.1.4.2 10-Apr-2007  ad Sync with head.
 1.1.4.1 20-Mar-2007  ad file drm_sysctl.c was added on branch vmlocking on 2007-04-10 13:24:52 +0000
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file drm_sysctl.c was added on branch yamt-idlelwp on 2007-03-24 14:55:26 +0000
 1.2.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.2.4.1 11-Dec-2007  yamt sync with head.
 1.2.2.1 26-Dec-2007  ad Sync with head.
 1.3.26.1 23-Jul-2009  jym Sync with HEAD.
 1.3.12.1 18-Jul-2009  yamt sync with head.
 1.18 21-Jun-2009  mrg remove the old drm sources.
 1.17 29-Mar-2009  mrg drm_addmap():
- for _DRM_CONSISTENT mappings, keep the handle.
- use DRM_HANDLE_NEEDS_MASK()

drm_mapbufs():
- use DRM_HANDLE_NEEDS_MASK()

drm_mmap():
- use DRM_HANDLE_NEEDS_MASK()
- for _DRM_SCATTER_GATHER and _DRM_SHM, use vtophys() on the
adjusted offset. XXX


this is gets radeon working on amd64 with an older PCI 9250 card.

XXX: need to excise vtophys() usage.
XXX: need to finish porting these fixes to external.
 1.16 07-Mar-2009  mrg move a DRM_SPINUNLOCK() to where it will actually be executed.
 1.15 29-Jun-2008  jmcneill branches: 1.15.4; 1.15.10;
Revert previous, i915drm works again.
 1.14 21-Jun-2008  bjs Revert to using atop(offset + map->offset) for map types _DRM_AGP,
_DRM_REGISTERS, and _DRM_FRAME_BUFFER. Fixes issue where a call
to DrmMap() in libdrm returns EINVAL.
 1.13 20-Jun-2008  cegger make an i386 ALL kernel build again
 1.12 20-Jun-2008  bjs - Don't use btop, as only three (?) platforms define this macro; use
round_page(x) >> PAGE_SHIFT instead.

- Add bus_space_mmap() in drm_vm.c to give a proper cookie to the device pager;
this gets rid of one of the two #ifdef macppc conditionals.
 1.11 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.10 04-May-2008  jmcneill branches: 1.10.2; 1.10.4;
Ugh, unbreak _DRM_SHM on amd64 again.
 1.9 04-May-2008  jmcneill Fix compilation on i386.
 1.8 04-May-2008  jmcneill For _DRM_SHM allocations, do not use the VA as drm_map handle on x86_64
since udv_attach will not accept a larger offset than signed 64-bit will
provide. Not the best fix, but good enough for now -- at least an X server
will now startup and get proper mappings.
 1.7 04-May-2008  jmcneill Returning EINVAL from drm_mmap isn't a smart thing to do.
 1.6 11-Dec-2007  lukem branches: 1.6.8; 1.6.10; 1.6.12;
use __KERNEL_RCSID()
 1.5 21-Nov-2007  bjs branches: 1.5.2; 1.5.4; 1.5.6;
Remove #ifdef __OpSys__ sections to make this readable. Add RCS tags.
Nothing done in header files, nor in dev/pci/drm (we might not want to
touch this for the sake of merging) yet. Compile tested; please let
me know if this broke anything.
 1.4 28-Mar-2007  jmcneill branches: 1.4.2; 1.4.10; 1.4.12; 1.4.14; 1.4.18; 1.4.20;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.3 21-Mar-2007  drochner branches: 1.3.2;
revert previous - it doesn't work on i386 at least
 1.2 21-Mar-2007  macallan we return addresses, not page numbers in *mmap() methods
 1.1 20-Mar-2007  drochner Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.3.2.3 15-Apr-2007  yamt sync with head.
 1.3.2.2 24-Mar-2007  yamt sync with head.
 1.3.2.1 21-Mar-2007  yamt file drm_vm.c was added on branch yamt-idlelwp on 2007-03-24 14:55:26 +0000
 1.4.20.2 27-Dec-2007  mjf Sync with HEAD.
 1.4.20.1 08-Dec-2007  mjf Sync with HEAD.
 1.4.18.1 21-Nov-2007  bouyer Sync with HEAD
 1.4.14.4 21-Jan-2008  yamt sync with head
 1.4.14.3 07-Dec-2007  yamt sync with head
 1.4.14.2 03-Sep-2007  yamt sync with head.
 1.4.14.1 28-Mar-2007  yamt file drm_vm.c was added on branch yamt-lazymbuf on 2007-09-03 14:33:55 +0000
 1.4.12.1 09-Jan-2008  matt sync with HEAD
 1.4.10.1 21-Nov-2007  joerg Sync with HEAD.
 1.4.2.2 10-Apr-2007  ad Sync with head.
 1.4.2.1 28-Mar-2007  ad file drm_vm.c was added on branch vmlocking on 2007-04-10 13:24:52 +0000
 1.5.6.1 13-Dec-2007  bouyer Sync with HEAD
 1.5.4.1 11-Dec-2007  yamt sync with head.
 1.5.2.1 26-Dec-2007  ad Sync with head.
 1.6.12.3 18-Jul-2009  yamt sync with head.
 1.6.12.2 04-May-2009  yamt sync with head.
 1.6.12.1 16-May-2008  yamt sync with head.
 1.6.10.1 18-May-2008  yamt sync with head.
 1.6.8.3 02-Jul-2008  mjf Sync with HEAD.
 1.6.8.2 29-Jun-2008  mjf Sync with HEAD.
 1.6.8.1 02-Jun-2008  mjf Sync with HEAD.
 1.10.4.2 03-Jul-2008  simonb Sync with head.
 1.10.4.1 27-Jun-2008  simonb Sync with head.
 1.10.2.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.10.2.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.15.10.2 23-Jul-2009  jym Sync with HEAD.
 1.15.10.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.15.4.1 28-Apr-2009  skrll Sync with HEAD.
 1.9 20-Feb-2011  jmcneill add VirtualBox DRM driver
 1.8 21-Jun-2009  mrg branches: 1.8.4; 1.8.6; 1.8.8;
remove the old drm sources.
 1.7 06-May-2009  mrg you can now easily select trying external drm with "options DRM_EXTERNAL".
 1.6 19-Jul-2008  mrg branches: 1.6.4; 1.6.8; 1.6.12;
support new drm.

XXX: not fully enabled yet. config(1) has a makeoptions bug
with complex conditionals. see files.drm / files.pcidrm for
some instructions on how to enable it.
 1.5 08-Jul-2008  mrg remove some more local changes of the form "foo.h" -> <dev/*/foo.h>
by using makeoptions in files.drm/files.pcidrm. this reduces the
diffs against other drm code by about 40kb.
 1.4 29-Jun-2008  jmcneill branches: 1.4.2;
Revert previous, i915drm works again.
 1.3 20-Jun-2008  bjs - Use the extent manager to track mappings and provide sane offset
"cookies" for mmap. Now the radeon driver works on amd64!

- Use bus_dma for nearly all map types (carried over from prior patch).

- Plug some lock leaks in drm_bufs.c and remove superfluous locking in
drm_add_magic() (from git).

- Lower spl of mutexes to IPL_NONE (and so are now adaptive instead of
spin mutexes), save for irq_lock which is a spin mutex at IPL_VM.
Use mutex_spin_enter()/mutex_spin_exit() for irq_lock.

ok jmcneill@
 1.2 28-Mar-2007  jmcneill branches: 1.2.2; 1.2.14; 1.2.34; 1.2.38; 1.2.40; 1.2.42;
Introduce options DRM_NO_AGP and DRM_NO_MTRR, so I can run this on
platforms that don't provide these services.

In drm_mmap, don't wrap the return value with atop() if we're on macppc.

While we're here, fix:
pci_intr_establish(&dev->pa.pa_pc, ...);
to:
pci_intr_establish(dev->pa.pa_pc, ...);

The former doesn't even compile on macppc, and I'm amazed that it works at
all anywhere else.
 1.1 20-Mar-2007  drochner branches: 1.1.2;
Import DRM drivers, brought into shape by Yorick Hardy, posted to tech-x11.
Minor modifications by me:
-use an mi device major number
-(coarsly) divided into pci card specific and less specific parts, moved
the latter to dev/drm
-renamed autoconf attributes to reflect this
Todo:
-adapt all card frontends but i915 to drm include file location
-review the mtrr change
-make the change to agp_i810.c coexist with the fix for buggy VESA
BIOSes which is commented out temporarily
-RCS IDs etc style stuff
-LKM support (rescan support for vga)
-test
 1.1.2.3 15-Apr-2007  yamt sync with head.
 1.1.2.2 24-Mar-2007  yamt sync with head.
 1.1.2.1 20-Mar-2007  yamt file files.drm was added on branch yamt-idlelwp on 2007-03-24 14:55:27 +0000
 1.2.42.4 28-Jul-2008  simonb Sync with head.
 1.2.42.3 18-Jul-2008  simonb Sync with head.
 1.2.42.2 03-Jul-2008  simonb Sync with head.
 1.2.42.1 27-Jun-2008  simonb Sync with head.
 1.2.40.2 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.2.40.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.2.38.3 18-Jul-2009  yamt sync with head.
 1.2.38.2 16-May-2009  yamt sync with head
 1.2.38.1 04-May-2009  yamt sync with head.
 1.2.34.3 28-Sep-2008  mjf Sync with HEAD.
 1.2.34.2 02-Jul-2008  mjf Sync with HEAD.
 1.2.34.1 29-Jun-2008  mjf Sync with HEAD.
 1.2.14.2 03-Sep-2007  yamt sync with head.
 1.2.14.1 28-Mar-2007  yamt file files.drm was added on branch yamt-lazymbuf on 2007-09-03 14:33:56 +0000
 1.2.2.2 10-Apr-2007  ad Sync with head.
 1.2.2.1 28-Mar-2007  ad file files.drm was added on branch vmlocking on 2007-04-10 13:24:52 +0000
 1.4.2.1 19-Oct-2008  haad Sync with HEAD.
 1.6.12.1 21-Apr-2010  matt sync to netbsd-5
 1.6.8.2 23-Jul-2009  jym Sync with HEAD.
 1.6.8.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.6.4.1 23-Jun-2009  snj Apply patch (requested by mrg in ticket #827):
Default to the new drm code.
 1.8.8.1 05-Mar-2011  bouyer Sync with HEAD
 1.8.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.8.4.1 05-Mar-2011  rmind sync with head
 1.4 01-Jun-2017  chs remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.3 20-Jan-2017  maya Check pmf_device_register return value. NFC
Appeases static analyzers.
 1.2 28-Aug-2011  jmcneill branches: 1.2.12; 1.2.30; 1.2.34; 1.2.38;
add dependency on "drm" module
 1.1 20-Feb-2011  jmcneill branches: 1.1.2; 1.1.4; 1.1.8;
add VirtualBox DRM driver
 1.1.8.2 06-Jun-2011  jruoho Sync with HEAD.
 1.1.8.1 20-Feb-2011  jruoho file vbox_drv.c was added on branch jruoho-x86intr on 2011-06-06 09:07:48 +0000
 1.1.4.2 05-Mar-2011  rmind sync with head
 1.1.4.1 20-Feb-2011  rmind file vbox_drv.c was added on branch rmind-uvmplock on 2011-03-05 20:53:08 +0000
 1.1.2.2 05-Mar-2011  bouyer Sync with HEAD
 1.1.2.1 20-Feb-2011  bouyer file vbox_drv.c was added on branch bouyer-quota2 on 2011-03-05 15:10:17 +0000
 1.2.38.1 21-Apr-2017  bouyer Sync with HEAD
 1.2.34.1 20-Mar-2017  pgoyette Sync with HEAD
 1.2.30.2 28-Aug-2017  skrll Sync with HEAD
 1.2.30.1 05-Feb-2017  skrll Sync with HEAD
 1.2.12.1 03-Dec-2017  jdolecek update from HEAD

RSS XML Feed