Commit graph

28 commits

Author SHA1 Message Date
Robert Noland
cdd3e9fc56 [FreeBSD] Rework all of the memory allocations
Allocate memory from different pools.  This allows the OS to track memory
allocations for us, much like the linux memory debugging.  This will ease
tracking down memory leaks since the OS can track the number of allocations
from each pool and help to point us in the right direction.  Also replace
drm_alloc and friends with static __inline__ versions while we are here.
2008-10-10 13:06:22 -04:00
Robert Noland
60cf3a4db4 [FreeBSD] Don't explicitly bzero driver softc.
This is already handled for us.

Suggested by John Baldwin
2008-10-03 14:11:20 -04:00
Robert Noland
9c0ce38df3 [FreeBSD] Use M_WAITOK when allocating driver memory.
We don't explicitly check for error here and M_WAITOK will just put the
process to sleep waiting on resources to become available.

Suggested by John Baldwin
2008-10-03 14:05:45 -04:00
vehemens
973c634eaa Remove incomplete and obsolete free/net/open code.
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-09-10 23:35:10 -04:00
Robert Noland
828ae3f6b8 [FreeBSD] We need to call drm_detach before we free dev->driver.
The driver is in control of the show, so when you try and unload a module
the driver detach routine is called first.  It is what drives the whole
unload process and so lots of panics occur if dev->driver is already
free.
2008-09-08 16:40:52 -04:00
vehemens
ed6dd03818 Need M_NOWAIT for malloc.
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-09-05 12:38:41 -04:00
vehemens
2b27804715 [FreeBSD] Use driver features macros and flags
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:06 -04:00
vehemens
2649103bf9 [FreeBSD] Convert drm_driver to a pointer like linux.
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:05 -04:00
Robert Noland
116870a908 I915 suspend/resume for FreeBSD 2008-06-08 13:56:14 -04:00
Robert Noland
8cd045079e [FreeBSD] Add vblank-rework support and get drivers building.
The i915 driver now works again.
2008-05-27 14:25:20 -07:00
Eric Anholt
ad8eb0ed01 [FreeBSD] Convert from drm_device_t to struct drm_device for consistency. 2008-05-27 14:25:08 -07:00
Robert Noland
fbc307274f bsd: Now make secondary vblank work
We needed to specifically check for driver support and test the correct
vbl_received value.  Also pulled over support for _DRM_VBLANK_NEXTONMISS
from the linux code.
2007-12-02 01:23:11 -05:00
Robert Noland
787d500c15 bsd: Hook secondary vblank support. 2007-12-01 17:23:09 -05:00
Robert Noland
e6ca3f5754 bsd: Fix typo in i915_drv.c 2007-12-01 16:35:48 -05:00
Alan Hourihane
7b6cd95bb6 Fix bug #8839 - a comment 2006-10-31 10:01:53 +00:00
Eric Anholt
dcfcf1a84d Add the bits for vblank support on FreeBSD, which most importantly avoids
chasing a NULL pointer at the first 3d app invocation.
2006-05-17 05:44:39 +00:00
Eric Anholt
7f2c7f9977 Merge patch from jhb to catch up with FreeBSD-current vgapci master device
changes.
2005-12-30 02:17:05 +00:00
Eric Anholt
20fcbae5ac Finish the last bits necessary to get the i915 DRM port working on FreeBSD
Submitted by: Alexey Popov <llp@iteranet.com>
2005-12-02 23:41:47 +00:00
Eric Anholt
c575b7e19e Fix compiling and reenable build of i915 driver. 2005-11-15 09:22:09 +00:00
Eric Anholt
cc1a4dd856 Fix breakage from the move of driver ioctl externs to header files. 2005-11-11 09:36:58 +00:00
Eric Anholt
c789ea1521 Rename the driver hooks in the DRM to something a little more
understandable: preinit -> load postinit -> (removed) presetup ->
    firstopen postsetup -> (removed) open_helper -> open prerelease ->
    preclose free_filp_priv -> postclose pretakedown -> lastclose
    postcleanup -> unload release -> reclaim_buffers_locked version ->
    (removed)
postinit and version were replaced with generic code in the Linux DRM
    (drivers now set their version numbers and description in the driver
    structure, like on BSD). postsetup wasn't used at all. Fixes the savage
    hooks for initializing and tearing down mappings at the right times.
    Testing involved at least starting X, running glxgears, killing
    glxgears, exiting X, and repeating.
Tested on: FreeBSD (g200, g400, r200, r128) Linux (r200, savage4)
2005-08-05 03:50:23 +00:00
Ian Romanick
4a84416c45 Modify drm_driver::device_is_agp to return a tri-state value to indicate
that a device absolutely is, absolutely is not, or may or may not be
    AGP. Modify the i915 DRM to use this to force all i9x5 devices to be
    "AGP" (even the PCI-e devices).
Reported by: Lukas Hejtmanek
2005-05-27 23:42:11 +00:00
Eric Anholt
10ddbc8c8c Use /*- to begin license blocks in BSD code to reduce diffs against FreeBSD
CVS.
2005-04-16 03:02:52 +00:00
Eric Anholt
cb5aaa8987 Convert more drivers for bsd-core, moving the ioctl definitions to shared
code. Remove the "drv" from sisdrv, as it's unnecessary. Use the
    drm_pci functions in i915 instead of per-os implementations of the
    same. Avoid whitespace within fields in drm_pciids.txt (one of the r300
    definitions), since it breaks the bsd pciids script. Tested on sis,
    mga, r128. i915 needs more work.
2004-11-06 23:02:07 +00:00
Eric Anholt
740ddb9c5d Remove unused pcigart/sg header stuff from i915 driver. 2004-08-14 00:56:34 +00:00
Dave Airlie
6c9715eaf5 bring over fix from i865-agp branch, it now probes the driver, X hangs
box..
2004-08-03 11:26:38 +00:00
Dave Airlie
b1cf4ca7e5 change to agp not pci ... still not working 2004-07-29 12:49:54 +00:00
Dave Airlie
0b02bf9d45 initial port of i915 to BSD, not finished doesn't work.. no idea why... 2004-07-29 11:09:22 +00:00