opnsense-src/sys/dev/drm
Attilio Rao 444b91868b Make the newbus subsystem Giant free by adding the new newbus sxlock.
The newbus lock is responsible for protecting newbus internIal structures,
device states and devclass flags. It is necessary to hold it when all
such datas are accessed. For the other operations, softc locking should
ensure enough protection to avoid races.

Newbus lock is automatically held when virtual operations on the device
and bus are invoked when loading the driver or when the suspend/resume
take place. For other 'spourious' operations trying to access/modify
the newbus topology, newbus lock needs to be automatically acquired and
dropped.

For the moment Giant is also acquired in some key point (modules subsystem)
in order to avoid problems before the 8.0 release as module handlers could
make assumptions about it. This Giant locking should go just after
the release happens.

Please keep in mind that the public interface can be expanded in order
to provide more support, if there are really necessities at some point
and also some bugs could arise as long as the patch needs a bit of
further testing.

Bump __FreeBSD_version in order to reflect the newbus lock introduction.

Reviewed by:    ed, hps, jhb, imp, mav, scottl
No answer by:   ariff, thompsa, yongari
Tested by:      pho,
                G. Trematerra <giovanni dot trematerra at gmail dot com>,
                Brandon Gooch <jamesbrandongooch at gmail dot com>
Sponsored by:   Yahoo! Incorporated
Approved by:	re (ksmith)
2009-08-02 14:28:40 +00:00
..
ati_pcigart.c The GART allocations are a propery of the gart, not of scatter-gather 2009-03-25 01:41:56 +00:00
drm-preprocess.sh Update to DRM CVS as of 2006-04-09. The most notable new feature is the updated 2006-04-09 20:45:45 +00:00
drm-subprocess.pl Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
drm.h resync to git master 2008-10-03 16:59:11 +00:00
drm_agpsupport.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_atomic.h resync to git master 2008-10-03 16:59:11 +00:00
drm_auth.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_bufs.c Don't panic if drm_rmmap is called with a NULL map pointer. 2009-06-20 16:37:24 +00:00
drm_context.c realloc() behaves identically to malloc when passed a NULL object pointer 2009-06-20 16:40:48 +00:00
drm_dma.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_drawable.c Correct memory leak of info->rects. Previously we would free info, but 2008-10-13 18:06:33 +00:00
drm_drv.c Make the newbus subsystem Giant free by adding the new newbus sxlock. 2009-08-02 14:28:40 +00:00
drm_fops.c Replace calls to minor() with dev2unit(). Ed already fixed this once, 2008-10-23 20:23:03 +00:00
drm_internal.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
drm_ioctl.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_irq.c Keep track of the hardware counter more aggressively while interrupts 2009-06-25 15:47:32 +00:00
drm_linux_list.h Add list_for_each_prev to our linux compatibility. 2009-03-17 03:49:24 +00:00
drm_lock.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
drm_memory.c Rework memory allocation to allocate memory with different type names. This 2008-10-13 18:03:27 +00:00
drm_pci.c We don't know what these pages are going to be used for, they should be 2009-03-30 18:01:42 +00:00
drm_pciids.h Add support for Radeon HD 4770 (RV740) chips. 2009-07-09 16:39:28 +00:00
drm_sarea.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
drm_scatter.c The GART allocations are a propery of the gart, not of scatter-gather 2009-03-25 01:41:56 +00:00
drm_sysctl.c Add some sysctl info so that we can see what is going on with vblanks. 2009-06-23 20:19:02 +00:00
drm_vm.c vm_offset_t is unsigned, so compare of >= 0 is not needed. 2009-03-20 18:35:16 +00:00
drmP.h Using signals for vblank events is prone to issues. There have never 2009-06-23 18:09:35 +00:00
i915_dma.c We shouldn't need to drop and reaquire the lock here. 2009-06-25 19:23:25 +00:00
i915_drm.h resync to git master 2008-10-03 16:59:11 +00:00
i915_drv.c Hold the lock while we save/restore register for suspend/resume. 2009-06-23 17:38:28 +00:00
i915_drv.h Some more cleanups for vblank code on Intel. 2009-06-25 18:27:08 +00:00
i915_irq.c Some more cleanups for vblank code on Intel. 2009-06-25 18:27:08 +00:00
i915_mem.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
i915_reg.h Pull in some suspend / resume changes from Intel's code 2009-03-19 08:22:56 +00:00
i915_suspend.c Fix what appears to be a typo, and restore the registers correctly. 2009-03-20 17:51:26 +00:00
mach64_dma.c We should never call drm_pci_alloc() while holding locks, due the the 2008-09-09 02:05:03 +00:00
mach64_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mach64_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mach64_drv.h Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
mach64_irq.c Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
mach64_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_dma.c Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
mga_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
mga_drv.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_irq.c Add some debugging so I can see when syscalls are being restarted 2009-03-19 08:36:08 +00:00
mga_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
mga_ucode.h Update DRM to CVS snapshot as of 2005-11-28. Notable changes: 2005-11-28 23:13:57 +00:00
mga_warp.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
r128_cce.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
r128_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
r128_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
r128_drv.h Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
r128_irq.c Initialize the vblank structures at load time. Previously we did this 2009-02-28 02:37:55 +00:00
r128_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
r300_cmdbuf.c check offsets for R300_ZB_ZPASS_ADDR 2009-04-07 22:26:53 +00:00
r300_reg.h Add regs required for occlusion queries support 2009-04-07 22:20:58 +00:00
r600_cp.c Add support for Radeon HD 4770 (RV740) chips. 2009-07-09 16:39:28 +00:00
r600_microcode.h Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
radeon_cp.c Initialize max_vblank_count earlier. 2009-06-25 16:17:07 +00:00
radeon_drm.h Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
radeon_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
radeon_drv.h Add support for Radeon HD 4770 (RV740) chips. 2009-07-09 16:39:28 +00:00
radeon_irq.c Initialize max_vblank_count earlier. 2009-06-25 16:17:07 +00:00
radeon_mem.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
radeon_microcode.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
radeon_state.c Import support for ATI Radeon R600 and R700 series chips. 2009-03-07 21:36:57 +00:00
savage_bci.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
savage_drm.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
savage_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
savage_drv.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
savage_state.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
sis_drm.h Update DRM to CVS snapshot as of 2005-11-28. Notable changes: 2005-11-28 23:13:57 +00:00
sis_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
sis_drv.h Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
sis_ds.c Update to DRM CVS as of 2006-04-09. The most notable new feature is the updated 2006-04-09 20:45:45 +00:00
sis_ds.h Update to DRM CVS as of 2006-04-09. The most notable new feature is the updated 2006-04-09 20:45:45 +00:00
sis_mm.c Update drm kernel drivers. 2008-08-23 20:59:12 +00:00
tdfx_drv.c Consistently use kdev for the kernel device. 2009-03-09 07:55:18 +00:00
tdfx_drv.h Update DRM to CVS snapshot as of 2005-11-28. Notable changes: 2005-11-28 23:13:57 +00:00