#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
248084 |
|
09-Mar-2013 |
attilio |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
|
#
242132 |
|
26-Oct-2012 |
nwhitehorn |
Make sure to define __BIG_ENDIAN and __LITTLE_ENDIAN with the appropriate number of underscores for Linux compatibility in drm(4).
Submitted by: sendtomatt at gmail dot com MFC after: 2 weeks
|
#
215367 |
|
16-Nov-2010 |
nwhitehorn |
Make drm(4) build, if not work reliably, on PowerPC.
|
#
207156 |
|
24-Apr-2010 |
rnoland |
remove vm obect tracker that slipped in from prior work.
MFC after: 2 weeks
|
#
207118 |
|
23-Apr-2010 |
rnoland |
Address some WITNESS panics that occur when using the via driver.
Some of these cases should be safe in a non-atomic fashion, however since all of the driver ioctls are locked, a lot of work is required to fix it correctly. Just don't sleep now.
MFC after: 2 weeks
|
#
207067 |
|
22-Apr-2010 |
rnoland |
re-write scatter gather memory allocation yet again...
This time, abandon the use of busdma and start interacting with the VM system directly. Make use of the new kmem_alloc_attr() which allows us to easily allocate non-contiguous pages to back the GART table. This should help a lot when starting or restarting X after the system has been running for a while and memory has become fragmented.
MFC after: 2 weeks
|
#
207066 |
|
22-Apr-2010 |
rnoland |
Rework how drm maps are handled.
* On 32 bit platforms we steal the upper 4 bits of the map handle to store a unique map id. * On 64 bit platforms we steal the upper 24 bits.
Resolves issues where the offsets that are handed to mmap may overlap the VRAM on some cards.
Tested on: radeon, intel, mga, and via.
This will break nouveau. I will spin new patches shortly.
|
#
203288 |
|
31-Jan-2010 |
rnoland |
Welcome drm support for VIA unichrome chips.
MFC after: 2 weeks
|
#
203287 |
|
31-Jan-2010 |
rnoland |
Import simple drm memory manager.
This is required for the VIA driver and at least some parts are needed for GEM.
MFC after: 2 weeks
|
#
198692 |
|
30-Oct-2009 |
rnoland |
Use system specified memory barriers rather than rolling our own.
|
#
196466 |
|
23-Aug-2009 |
rnoland |
Add a read only sysctl tracking the hw.drm.msi tunable.
MFC after: 2 weeks
|
#
196465 |
|
23-Aug-2009 |
rnoland |
Clean up the handling of device minors
Submitted by: Ed MFC after: 2 weeks
|
#
194748 |
|
23-Jun-2009 |
rnoland |
Using signals for vblank events is prone to issues. There have never been any consumers and likely will never be. Furthermore, we have never enabled the code for it, so just get rid of it.
MFC after: 3 days
|
#
190399 |
|
24-Mar-2009 |
rnoland |
The GART allocations are a propery of the gart, not of scatter-gather memory. Track them in the appropriate structure.
MFC after: 3 days
|
#
189911 |
|
17-Mar-2009 |
rnoland |
We can have more than 3 pci resources
MFC after: 3 days
|
#
189910 |
|
17-Mar-2009 |
rnoland |
Cast register maps and offsets to vm_offset_t
MFC after: 3 days
|
#
189563 |
|
09-Mar-2009 |
rnoland |
Consistently use kdev for the kernel device.
Submitted by: vehemens <vehemens@verizon.net> MFC after: 3 days
|
#
189130 |
|
28-Feb-2009 |
rnoland |
Initialize the vblank structures at load time. Previously we did this at irq install/uninstall time, but when we vt switch, we uninstall the irq handler. When the irq handler is reinstalled, the modeset ioctl happens first. The modeset ioctl is supposed to tell us that we can disable vblank interrupts if there are no active consumers. This will fail after a vt switch until another modeset ioctl is called via dpms or xrandr. Leading to cases where either interrupts are on and can't be disabled, or worse, no interrupts at all.
MFC after: 2 weeks
|
#
189099 |
|
27-Feb-2009 |
rnoland |
Fix up some ioctl permissions issues long overlooked.
Submitted by: jkim@ MFC after: 2 weeks
|
#
189052 |
|
25-Feb-2009 |
rnoland |
Turn on MSI if the card supports it. There is a blacklist for chips which report that they are capable of MSI, but don't work correctly.
MFC after: 2 weeks
|
#
189049 |
|
25-Feb-2009 |
rnoland |
This was part of a sync to the code that Intel is shipping in linux.
- Remove the old TTM interface - Move register definitions to i915_reg.h - Overhaul the irq handler
MFC after: 2 weeks
|
#
189048 |
|
25-Feb-2009 |
rnoland |
The i915 driver was the only consumer of locked task support.
Now that it doesn't use it anymore, get right of the taskqueue and locked task support.
MFC after: 2 weeks
|
#
189045 |
|
25-Feb-2009 |
rnoland |
Remove the PZERO priority from mtx_sleep.
MFC after: 2 weeks
|
#
186386 |
|
21-Dec-2008 |
rnoland |
Convert DRM_[DEBUG,ERROR,INFO] macros to c99 __VA_ARGS__.
Approved by: kib
|
#
186300 |
|
18-Dec-2008 |
rnoland |
Garbage collect entries from pcireg.h since we now include it.
Approved by: kib@ MFC after: 2 weeks
|
#
186299 |
|
18-Dec-2008 |
rnoland |
We only want drm to ever attach to the primary pci device. Intel 855 chips present the same pci id for both heads. This prevents us from attaching to the dummy second head. All other chips that I am aware of either only present a single pci id, or different ids for each head so that we only match on the correct head.
Approved by: kib@ MFC after: 2 weeks
|
#
186295 |
|
18-Dec-2008 |
rnoland |
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.
Reviewed by: jhb@ (mentor, prior version) Approved by: kib@ MFC after: 2 weeks
|
#
183833 |
|
13-Oct-2008 |
rnoland |
Rework memory allocation to allocate memory with different type names. This will ease the identification of memory leaks as the OS will be able to track allocations for us by malloc type. vmstat -m will show all of the allocations.
Convert the calls to drm_alloc() and friends, which are used in shared code to static __inline__ while we are here.
Approved by: jhb (mentor)
|
#
183573 |
|
03-Oct-2008 |
rnoland |
resync to git master
This reverts a private patch which is causing issues with many Intel chipsets. I will review that patch and see what we need to do to fix it up later, but for the time being, we will just get these chips working again.
This update contains a lot of code cleanup and is post gem merge (no, we don't have gem support). It should prove much easier to read the code now. A lot of thanks goes to vehemens for that work. I have adapted the code to use cdevpriv for tracking per open file data. That alleviates the old ugly hack that we used to try and accomplish the task and helped to clean up the open / close behavior a good bit. This also replaces the hack that was put in place a year or so ago to prevent radeons from locking up with AIGLX enabled. I have had a couple of radeon testers report that it still works as expected, though I no longer have radeon hardware to test with myself. Other various fixes from the linux crew and Intel, many of which are muddled in with the gem merge.
Approved by: jhb (mentor) Obtained from: mesa/drm git master MFC after: 2 weeks
|
#
182080 |
|
23-Aug-2008 |
rnoland |
Update drm kernel drivers.
This is a sync to mesa/drm pre-gem, with a few fixes on top of that. It also contains one local patch supplied by kib@ that I can't apply to git.master shared code.
Approved by: flz Obtained from: mesa/drm git.master MFC after: 2 weeks
|
#
173573 |
|
12-Nov-2007 |
jhb |
Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was bumped to 800004 to note the change though userland apps should not be affected since they use <sys/agpio.h> rather than the headers in sys/dev/agp.
Discussed with: anholt Repocopy by: simon
|
#
164033 |
|
06-Nov-2006 |
rwatson |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
#
162132 |
|
07-Sep-2006 |
anholt |
Merge from DRM upstream: - Add support for Intel 965 Express chipsets. - Add support for R200 vertex programs, along with minor bugfixes. - Add support for vblank synchronization to pipe B of Intel hardware (laptop screens).
|
#
157831 |
|
18-Apr-2006 |
anholt |
Reorder the DRM_*_AGP enums to match linux and what our code expects, fixing i915 attachment.
Submitted by: Jonathan Fosburgh <jonathan@fosburgh.org>
|
#
152909 |
|
28-Nov-2005 |
anholt |
Update DRM to CVS snapshot as of 2005-11-28. Notable changes: - S3 Savage driver ported. - Added support for ATI_fragment_shader registers for r200. - Improved r300 support, needed for latest r300 DRI driver. - (possibly) r300 PCIE support, needs X.Org server from CVS. - Added support for PCI Matrox cards. - Software fallbacks fixed for Rage 128, which used to render badly or hang. - Some issues reported by WITNESS are fixed. - i915 module Makefile added, as the driver may now be working, but is untested. - Added scripts for copying and preprocessing DRM CVS for inclusion in the kernel. Thanks to Daniel Stone for getting me started on that.
|
#
148211 |
|
20-Jul-2005 |
anholt |
Add the latest r300 code from r300.sf.net. This is based on the patch supplied by Vladimir Dergachev for inclusion in DRM CVS, with minor modifications for FreeBSD CVS and the appropriate license from Nicolai Haehnle on r300_reg.h. Fixes hangs when using r300.sf.net userland, tested on a Radeon 9600 on amd64.
|
#
145132 |
|
16-Apr-2005 |
anholt |
Update to DRM CVS as of 2005-04-12, bringing many changes: - Split core DRM routines back into their own module, rather than using the nasty templated system like before. - Development-class R300 support in radeon driver (requires userland pieces, of course). - Mach64 driver (haven't tested in a while -- my mach64s no longer fit in the testbox). Covers Rage Pros, Rage Mobility P/M, Rage XL, and some others. - i915 driver files, which just need to get drm_drv.c fixed to allow attachment to the drmsub device. Covers i830 through i915 integrated graphics. - savage driver files, which should require minimal changes to work. Covers the Savage3D, Savage IX/MX, Savage 4, ProSavage. - Support for color and texture tiling and HyperZ features of Radeon.
Thanks to: scottl (much p4 handholding) Jung-uk Kim (helpful prodding) PR: [1] kern/76879, [2] kern/72548 Submitted by: [1] Alex, lesha at intercaf dot ru [2] Shaun Jurrens, shaun at shamz dot net
|
#
139749 |
|
05-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-, minor shuffle of lines
|
#
130585 |
|
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
#
130331 |
|
11-Jun-2004 |
anholt |
Merge from DRI CVS as of 2004-05-26. Most of the meat is new PCI IDs and a new packet for Radeon.
|
#
124164 |
|
06-Jan-2004 |
anholt |
Merge from DRI CVS. No longer maps the framebuffer into KVA on radeon, r128, and mga. MTRR code cleanups. Includes new Radeon and Rage 128 PCI IDs.
|
#
122580 |
|
12-Nov-2003 |
anholt |
Update from DRI CVS. Includes locking fixes (including PR 59202), changes for Radeon IGP support (still lacking PCI IDs), and DRM interface 1.2 updates which include finally tying the DRM instances to specific devices rather than relying on the X Server.
|
#
121447 |
|
23-Oct-2003 |
anholt |
Update to latest from DRI CVS. Primary new feature is mostly-complete smpng locking, and the apparently unnecessary locking for -stable has been removed. This may fix issues with missed interrupts since April, which manifested themselves as slowdowns or hangs in radeon, in particular. Many cleanups also took place. In the shared code, there are improvements to r128 driver stability.
|
#
119895 |
|
08-Sep-2003 |
anholt |
Merge from DRI CVS. Includes newly ported SiS 300/305/540/630/730 driver and updates to allow system memory to be used for textures on PCI Radeons.
Sponsored by: LinuxFund
|
#
119098 |
|
19-Aug-2003 |
anholt |
Update DRM from DRI CVS as of today. Notable changes include Radeon suspend/resume support and Rage 128 pageflipping support (both of which require XFree86 from CVS), along with miscellaneous cleanups.
|
#
113995 |
|
24-Apr-2003 |
anholt |
Update the DRM to the latest from DRI CVS. Includes some bugfixes and removal of the infrastructure for the gamma driver which was removed a while back. The DRM_LINUX option is removed because the handler is now provided by the linux compat code itself.
|
#
112015 |
|
09-Mar-2003 |
anholt |
Update the DRM to latest from DRI CVS. This is approximately the version included in XFree86 4.3, but includes some fixes. Notable changes include Radeon 8500-9100 support, PCI Radeon/Rage 128 support, transform & lighting support for Radeons, and vblank syncing support for r128, radeon, and mga. The gamma driver was removed due to lack of any users.
|
#
95746 |
|
29-Apr-2002 |
anholt |
More diff reduction: Shuffle around some header code as was done in drmcommand-0-0-1-branch of DRI CVS, more return code cleanup, and remove some gratuitous ifdefs.
Approved by: des
|
#
95584 |
|
27-Apr-2002 |
anholt |
Add the code for the DRM, based on the code from the drm-kmod port. This is not hooked up yet, that will come later.
Approved by: des
|