vehemens
71f0a3e389
[FreeBSD] Replace typedefs on bsd.
...
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:05 -04:00
vehemens
b92f557767
[FreeBSD] Catch up to vblank rework for via.
...
(No, we don't build via right now.)
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:05 -04:00
vehemens
043ad591b5
[FreeBSD] Correct debug message
...
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-29 15:46:05 -04:00
Robert Noland
c7f7b6d7e2
[FreeBSD] Fix a couple of locking problems.
2008-08-29 15:46:05 -04:00
Robert Noland
f8a14b1f95
[FreeBSD] Increase debugging output for vblank code.
...
Doing my part to make DRM_DEBUG more chatty...
2008-08-29 15:46:05 -04:00
Tomas Carnecky
b460aeec3e
Fix drm_realloc when you're reallocing into something smaller.
2008-08-29 00:43:19 +02:00
Robert Noland
bfea578352
[FreeBSD] Add drm_drawable_free_all()
2008-08-24 15:25:20 -04:00
Robert Noland
0687c0a4ec
[FreeBSD] Fix long standing memory leak in drm_remove_magic.
...
We shuffled all the links around to disconnect the entry, but
never free it. We would incorrectly free the last entry in the
hash chain if nothing matched.
2008-08-24 15:25:20 -04:00
vehemens
3e9541230d
[FreeBSD] Move vblank bits into their own structure.
...
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-24 15:25:19 -04:00
vehemens
e6010778a8
[FreeBSD] Fix lock leak.
...
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-08-24 15:25:19 -04:00
Robert Noland
7a3d6624c4
[FreeBSD] Duh, we need to actually define the drm_modeset_ctl...
2008-07-25 13:46:28 -04:00
Robert Noland
2580a065d8
[FreeBSD] Catch up to linux on vblank-rework
2008-07-24 00:21:00 -04:00
Robert Noland
f57f01f028
[FreeBSD] Improve upper_32_bits define.
...
Thanks to airlied.
2008-07-21 18:06:52 -04:00
Robert Noland
480c317a6a
[FreeBSD] drm_irq.c updates for vblank fixes.
2008-07-17 14:08:06 -04:00
Robert Noland
b0e4619a39
FreeBSD: Fix radeon build
2008-07-16 23:39:25 -04:00
Owain Gordon Ainsworth
74cf1f91be
BSD: change drm_locked_task*() to use the same scheme as linux.
...
The current code can sleep in an interrupt handler, that is bad. So
instead if we can't grab the lock, flag it and run the tasklet on
unlock.
Signed-off-by: Robert Noland <rnoland@2hip.net>
2008-07-16 21:37:39 -04:00
Robert Noland
96580f660e
[FreeBSD] We aren't allowed to hold locks over bus_dma_tag_create or bus_dmamem_alloc.
2008-07-15 16:53:54 -04:00
Robert Noland
29ffa0017d
[FreeBSD] Fix another lock leak
...
Reported by vehemens
2008-06-13 17:41:34 -04:00
Robert Noland
116870a908
I915 suspend/resume for FreeBSD
2008-06-08 13:56:14 -04:00
Robert Noland
3b6ca4bf3f
[FreeBSD] Rework ati_pcigart.c
...
This is mostly just a diff reduction with the linux version.
I'm not convinced that it will make anything better.
2008-06-08 02:00:48 -04:00
Robert Noland
96141bd33c
[FreeBSD] We need to request busmastering support.
...
This seems to be the key to getting at least some radeon
cards working. Most, if not all drivers need it enabled,
so just request it once the driver has attached.
2008-06-08 02:00:48 -04:00
Robert Noland
6d6921719c
[FreeBSD] Incorporate vblank fixes for bsd.
2008-06-08 01:53:45 -04:00
Robert Noland
ec3d996021
[FreeBSD] Forgot to call mtx_destroy on all the locks at unload.
2008-06-08 01:53:45 -04:00
Robert Noland
93c57ff4e5
[FreeBSD] Remove the locks in the vblank_disable_fn
...
They are recursive and causing panics with witness enabled.
2008-06-08 01:53:45 -04:00
Robert Noland
fc74c2e9d6
[FreeBSD] Go back to using vbl_lock and move init/destroy to load/unload.
2008-06-08 01:53:45 -04:00
Robert Noland
416754f1cc
[FreeBSD] Declare vblank_disable_fn callout MPSAFE.
2008-06-01 20:33:30 -07:00
Robert Noland
4ce47fd328
[FreeBSD] Get rid of vbl_lock and re-use irq_lock.
2008-06-01 20:33:30 -07:00
Robert Noland
ac4da86928
[FreeBSD] Add symlink for radeon_microcode.h
2008-06-01 12:07:54 -07:00
Robert Noland
2186f9f6ef
[FreeBSD] Call drm_vblank_cleanup during irq uninstall
...
I needed to re-arrange some functions for this.
Also needed to call DRM_SPINUNINIT on the vbl_lock during cleanup.
2008-06-01 12:07:54 -07:00
Owain Ainsworth
df127c303d
[BSD] Move unlock in drm_vm.c from accidental platform #ifdeffing.
...
Also remove an unreachable unlock.
2008-05-27 15:12:35 -07:00
Owain Ainsworth
cc7ad27fe4
[BSD] Fix lock leak in drm_update_draw malloc failure path.
2008-05-27 15:11:25 -07:00
Owain Ainsworth
9a2ae28fbe
[BSD] Fix lock leaks in error paths in drm_bufs.c.
2008-05-27 15:07:04 -07:00
Owain Ainsworth
200ac59573
[BSD] Remove superfluous recursive locking in drm_add_magic.
2008-05-27 14:59:38 -07: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
690dd04d1b
bsd: Replace other occurrences of msleep with mtx_sleep
2007-12-02 01:45:09 -05: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
Robert Noland
0c3e5261b6
mtx_sleep is preferred to msleep
...
Calling semantics are the same and both were introduced in 5.0
2007-12-01 14:44:30 -05:00
Robert Noland
d6295cc9ff
drm: Add _DRM_DRIVER map flag.
...
This flag indicates that the driver is responsible for the map.
2007-12-01 02:40:13 -05:00
Robert Noland
83e62be6f4
bsd: Move counter initialization to load time.
2007-12-01 02:32:23 -05:00
Robert C. Noland III
9be085cbf4
Fix up drm_ati_pcigart_info
2007-11-29 09:38:43 +10:00
Robert Noland
c12a3a3ce0
Bug #13233 : Chase move of agp headers on FreeBSD.
2007-11-18 22:41:41 -08:00
Kristian Høgsberg
68cdcda1ea
Add new shared header file drm_internal.h.
...
This header file is shared across linux and bsd, but is not installed
for user space to access. It's the place to put prototypes and data
types that aren't platform or chipset specific, but still internal to
the drm.
2007-11-14 14:28:34 -05:00
Jung-uk Kim
36120264ca
Bug #11870 : FreeBSD hardware lock cleanup fix with multiple opens by a process.
...
Previously, the lock would get released on the first close by the X Server
(during AIGLX setup), and the Radeon driver would then hang in initialization
due to unexpected failure in DRM calls that required the lock to be held.
Based on a patch by Kostik Belousov.
2007-10-17 12:52:12 -07:00
Eric Anholt
f0fd53f86b
FreeBSD: Fill in domain field when supported.
2007-10-10 15:32:05 -07:00
Eric Anholt
b668d6d905
Fix dev->agp->base initialization on BSD, and fix addmap range check on Linux.
...
With the previous linux commit, an AGP aperture at the end of the address space
would have wrapped to 0 and the test would have failed.
2007-08-15 14:29:31 -07:00
Eric Anholt
6e93c35ba7
BSD: Return EINVAL if drm_unlock is called on an unheld or other-owner lock.
2007-08-15 13:42:04 -07:00
vehemens
a9ee144eab
BSD: simplify drm_ioctl() after other refactoring.
2007-08-15 11:12:46 -07:00
vehemens
4cdd871e90
Bug #11989 : Fix regression in getstats ioctl (kernel panic).
2007-08-15 11:06:49 -07:00
Eric Anholt
56133e04de
BSD: Fix regression in setversion ioctl (current version not returned).
2007-08-15 11:06:49 -07:00
Eric Anholt
5346fc5f36
BSD: Replace brief description in each file's first line with doxygen later on.
...
The brief descriptions usually had the wrong filename in them.
2007-08-15 11:06:49 -07:00
vehemens
4340f49bf7
Bug #11951 : Fix an errno sign inversion on pre-FreeBSD 5.
...
Also, annotate where signs change, to hopefully remind the reader of these
issues in the future.
2007-08-13 11:36:10 -07:00
Eric Anholt
3b07a37a48
Add doxygen and fix whitespace for drm_auth.c
2007-08-13 10:50:25 -07:00
vehemens
263775c454
Fix drm_auth.c locking to not recurse on dev_lock.
2007-08-13 10:24:39 -07:00
Eric Anholt
be3099f265
Fix copy'n'paste-o in FreeBSD drawable code.
2007-07-25 12:59:43 -07:00
Eric Anholt
5b38e13416
Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.
...
The data is now in kernel space, copied in/out as appropriate according to the
This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal
with those failures. This also means that XFree86 4.2.0 support for i810 DRM
is lost.
2007-07-20 18:16:42 -07:00
Eric Anholt
c1119b1b09
Replace filp in ioctl arguments with drm_file *file_priv.
...
As a fallout, replace filp storage with file_priv storage for "unique
identifier of a client" all over the DRM. There is a 1:1 mapping, so this
should be a noop. This could be a minor performance improvement, as everything
on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls
went the other direction.
2007-07-20 13:39:45 -07:00
Eric Anholt
35de486836
BSD: Replace symlink building with symlinks in git.
2007-07-20 12:53:53 -07:00
Eric Anholt
e39286eb5e
Remove DRM_ERR OS macro.
...
This was used to make all ioctl handlers return -errno on linux and errno on
*BSD. Instead, just return -errno in shared code, and flip sign on return from
shared code to *BSD code.
2007-07-20 12:53:52 -07:00
Eric Anholt
f4e1c1d05c
FreeBSD warnings cleanup.
2007-07-19 06:46:13 -07:00
Eric Anholt
e544286eae
FreeBSD: Fix the recently added drawable add/remove/update code.
2007-07-19 06:17:58 -07:00
Eric Anholt
50cb405f93
Fix the getclient test (Need this feature for future tests).
2007-07-19 06:02:20 -07:00
Eric Anholt
33a50412c2
Add dry-coded DRM drawable private information storage for FreeBSD.
...
With this, all modules build again.
2007-07-18 14:22:49 -07:00
Eric Anholt
3f04fe7890
Fix FreeBSD build.
2007-07-16 01:53:06 -07:00
Arthur Huillet
04e4922c0c
Made drm_sg_alloc accessible from inside the DRM - drm_sg_alloc_ioctl is the ioctl wrapper
2007-07-11 02:34:00 +02:00
Jung-uk Kim
b0c8d885ce
Update a bunch of FreeBSD port code.
...
Tested on r200/r300. i915 updates still remain to be done.
2007-05-29 15:02:44 -07:00
Eric Anholt
5d69640a6a
Catch up to new interrupt API, and retire FreeBSD 4.x support here.
2007-03-24 09:39:09 -07:00
Michel Dänzer
74a92bbf6e
Core build fix for BSD.
2006-12-01 11:00:32 +01:00
Michel Dänzer
a97bb85c2a
Unshare drm_drawable.c again for now.
...
The current version didn't build on BSD, where the new functionality isn't used
yet anyway. Whoever changes that will hopefully be able to make the OSes share
this file as well.
2006-12-01 10:46:21 +01:00
Alan Hourihane
7b6cd95bb6
Fix bug #8839 - a comment
2006-10-31 10:01:53 +00:00
Michel Dänzer
29598e5253
Add support for tracking drawable information to core
...
Actually make the existing ioctls for adding and removing drawables do
something useful, and add another ioctl for the X server to update drawable
information. The only kind of drawable information tracked so far is cliprects.
2006-09-28 15:41:35 +02:00
Eric Anholt
dddacd7a3a
Use the DRM_INIT_WAITQUEUE argument (needed on Linux) to avoid a warning.
2006-09-06 23:26:50 -07:00
Eric Anholt
55057660f0
Put the PCI device/vendor id in the drm_device_t.
...
This helps us unbreak FreeBSD DRM from the 965 changes.
2006-09-06 23:25:14 -07:00
Eric Anholt
d572676185
Add a typedef for u64.
2006-09-06 23:08:29 -07:00
Michel Dänzer
b9243ce3d5
.cvsignore -> .gitignore
...
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Eric Anholt
bdd381a7ce
Set entry->virtual for sg maps, fixing ATI PCI/PCIE GART support.
...
PR: kern/97056 Submitted by: Stanislav Sedov <ssedov@mbsd.msk.ru>
2006-05-17 06:07:57 +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
7ea4a88fa3
Add the workaround that's in the kernel to suppress GCC's warning about
...
refusal to inline functions that (in some cases, at least) aren't that
large.
2006-05-17 05:41:48 +00:00
Eric Anholt
2abd1f270b
Reorder the DRM_*_AGP enum to match linux's numbers (oops). Fixes i915
...
attachment. Make our mga_drv.c use them, while I'm here.
Submitted by: Jonathan Fosburgh <jonathan@fosburgh.org>
2006-04-18 06:08:17 +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
2911edaed7
Remove driver.device_is_agp code duplicated in drm_device_find_capability,
...
when it really wanted to live in drm_device_is_agp.
2005-12-05 10:53:06 +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
422002dc84
FreeBSD PR kern/85479: Restore the enabling of debugging by default by the
...
DRM_DEBUG kernel option. It remains controlled by hw.dri.*.debug no
matter what.
2005-12-02 08:47:04 +00:00
Eric Anholt
1835dff04a
Fix AGP support guessing: Implement the same bridge checking in the MGA
...
driver as Linux uses, and actually use the driver's device_is_agp if
available (hopefully fixing i915).
2005-11-28 21:15:46 +00:00
Eric Anholt
c575b7e19e
Fix compiling and reenable build of i915 driver.
2005-11-15 09:22:09 +00:00
Eric Anholt
19c5c56779
Fix Savage DRI without ShadowStatus NO by allowing the shadow area to be
...
mapped.
2005-11-15 04:37:51 +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
c7af46cf7d
Correct another LOR issue with resource allocation. This leaves the
...
drm_get_resource_* resource allocation a little racy, but they're
getting called at either X Server startup or driver load, so it's
serialized anyway.
2005-11-08 21:36:54 +00:00
Eric Anholt
a10d8178e3
Initial port of savage to FreeBSD for the AGP and !ShadowStatus case. Adds
...
drm_mtrr_{add,del} for handling the MTRR setup. Still has a LOR issue
with DRM_VERIFYAREA_READ/DRM_COPY_FROM_USER_UNCHECKED in savage_bci.c
-- this won't work with the fine-grained locking in use, and just doing
a single copyin to a temporary will probably work fine. Also note that
the module leaks approximately 4 kb on unload.
2005-11-08 20:25:00 +00:00
Eric Anholt
4b2235d2e0
Correct a LOR related to the PCI resource allocations by simply moving the
...
uninit to unload time rather than lastclose.
2005-11-08 06:11:55 +00:00
Eric Anholt
71f9b7357c
Fix FreeBSD DRM for latest MGA changes to agp support, which cleans things
...
up a good bit, I think. Also, remove the agp_uninit() function which
has lain around as a noop for years now. The FreeBSD DRM is now all
compiling, with the exception of via. One known sleeping-with-lock-held
issue remains.
2005-11-08 05:29:26 +00:00
Eric Anholt
1a256df480
Catch FreeBSD up to the pcie gart changes. Required minor modification to
...
radeon_cp.c to use a drm_local_map_t-type mapping (drm_core_ioremap
rather than drm_ioremap), which contains private device mapping
information on BSD. I also changed the ati_pcigart interface to use
"void *" for pointers to kva rather than "unsigned long". While PCIGART
support appears to be broken on FreeBSD currently, I think this is not
new, and BusType PCI remains working on my r100 in Linux.
2005-11-08 02:38:01 +00:00
Eric Anholt
145b23b552
Correct a recursion on non-recursive mutex in drm_addmap from radeon's
...
firstopen, by making drm_addmap require the drm device lock to be held.
Also, make matching of kernel maps match linux by requiring shm matches
to have the contains_lock flag set if the offset doesn't match.
2005-11-08 01:12:08 +00:00
Eric Anholt
900a7e4c36
Re-disable the via driver while it's broken on BSD.
2005-11-06 06:32:25 +00:00
Dave Airlie
f42cdc8dcb
Add support to turn writeback off via radeon module option
2005-09-30 06:41:10 +00:00
Eric Anholt
4b2a94db46
Fix the spelling of DRM_AUTH so that the bsd core stuff builds again. Next
...
up is pcigart.
2005-09-12 05:35:51 +00:00
Dave Airlie
0d346a07a8
convert ioctl flags to use flags instead of separate ints
2005-09-03 03:27:14 +00:00
Eric Anholt
22ec8ebb17
- Don't try to allocate mappings of less than a PAGE_SIZE in MGA DMA code.
...
- Comment out the "is this mapping/bufs in allocated AGP" bits in BSD
because they break mga (which uses AGP allocation that doesn't track
entries). It's not a security issue when we still have the related
ioctls marked root-only.
- Apply some power-of-two alignment restrictions to hopefully avoid some
panicing in bad cases of drm_pci_alloc() on FreeBSD.
- Add verbosity to some error handling that I found useful while debugging.
2005-08-26 23:27:19 +00:00