summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/drm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* PCI_PRODUCT_ATI_RADEON_X1250 -> PCI_PRODUCT_ATI_RADEON_X1250_{1,2}ajacoutot2012-08-041-2/+4
| | | | prodded by matthieu@
* match on Mobility Radeon HD2600jsg2012-07-201-1/+3
| | | | from Denis Lapshin, ok deraadt@
* Split out the register definitions into its own file to make it possible tokettenis2012-05-263-2818/+3895
| | | | | | diff it against he Linux kernel sources. Fix a few cases where definitions were renamed over in Linux-land. The current Linux source doesn't define HWS_PGA_GEN6, so get rid of its usage.
* Always clear out the inactive list and make sure everything is unbound inkettenis2012-05-211-1/+4
| | | | | | | i915_gem_idle(). If we don't do that we end up with stale entries on the inactive list which will panic the kernel the next time we use the list. Fixes restarting X on Sandy Bridge.
* Split out the suspend/resume code into its own file to make it possible tokettenis2012-05-195-1064/+1505
| | | | | | diff it against the Linux kernel sources. Fix a few bugs revealed by doing such a diff. Tested by myself and a few others on 915, 945, 965 and 6-series.
* fix all the suser calls which pass an incorrect p_acflag argument;mikeb2012-04-111-2/+2
| | | | figured out by and ok guenther
* New vmmap implementation.ariane2012-03-092-6/+6
| | | | | | | | | | | | no oks (it is really a pain to review properly) extensively tested, I'm confident it'll be stable 'now is the time' from several icb inhabitants Diff provides: - ability to specify different allocators for different regions/maps - a simpler implementation of the current allocator - currently in compatibility mode: it will generate similar addresses as the old allocator
* According to the X.org driver, the Evergreen series of chips are thephessler2012-01-291-1/+3
| | | | | | same as R7xx. So, set the 'Radeon HD 6320' card to RV770. OK matthieu@
* Fix white space and tabs here. ok miod@, oga@matthieu2011-09-221-10/+10
|
* In its current state the ring code doesn't work on sandybridge. As a resultkettenis2011-09-201-1/+5
| | | | | | | | | | idling the rings fails and esults in an infinte sleep. So skip initialization of the rings altogetheron sandybridge. Issuing 3D commands won't work in that state, but at least VT switches (and therefore suspend) will no longer hang. This is a temporary measure until the ring code has been fixed. ok oga@
* The BIOS on the x220 doesn't retrain the FDI link upon resume and restoringkettenis2011-09-201-1/+5
| | | | | | | | the modeset registers in that state hangs the machine halfway through resume. So skip this step on sandybrige and rely on the (upcoming) xf86-video-intel driver to properly restore the mode. ok oga@
* Initial kernel support for sandybridge intel chipsets in intagp and inteldrm.oga2011-09-143-65/+172
| | | | | | | | | | Far from perfect. Extra (almost essential) features like the extra ringbuffers are not yet supported (I have half a diff), but this and the appropriate ddx patches allow modesetting and basic shadow acceleration. Initial work by jcs@, a few cleanups and bugfixes by me. Tested by many on all appropriate chipsets. ok kettenis@
* Add support for Radeon 4250.haesbaert2011-08-221-1/+3
| | | | | | | This, together with an updated xorg driver makes my drm/XVideo work. Originally from Nigel Taylor. ok oga@ mcbride@
* so... there is some crazy bug exposed on non-ironlake chips, when thederaadt2011-07-061-16/+13
| | | | | | | ironlake interrupt handler is changed. some nasty bug lurks in here, and any binary change randomly exposes this and screws up the chip. back this out for now; until it is found. ok oga
* Temporarily back out msi for inteldrm.oga2011-07-041-3/+2
| | | | | | | Some gm45 and 965 are having issues and this fixes it for halex at least. Art's machine (945gm) is also playing up but he didn't update for a year (and the problem doesn't look like what i would expect).
* in the ironlake interrupt handler, do not do unneccesary registerderaadt2011-07-031-13/+16
| | | | | | | accesses. we don't need to disable the interrupt on the chip. if the interrupt isn't for us, then we should not write to lots of registers, either. ok oga, tested by lots of people in snapshots
* Rip out and burn support for UVM_HIST.oga2011-07-032-9/+2
| | | | | | | | The vm hackers don't use it, don't maintain it and have to look at it all the time. About time this 800 lines of code hit /dev/null. ``never liked it'' tedu@. ariane@ was very happy when i told her i wrote this diff.
* Remove config_activate() and DVACT_ACTIVATE. PCMCIA's the only thingmatthew2011-07-031-4/+1
| | | | | | | | that's ever used it, and it's long since been changed to use DVACT_{QUIESCE,SUSPEND,RESUME} instead. ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it up a few weeks ago
* Don't assume no interrupts if the command processor is not running.oga2011-06-191-4/+1
| | | | | | | | While this means we are on the way to vt switch a few things want vblanks interrupts between disabling the cp and the vt switch (modeset_ctl ioctls for example) tested by jsg@, found and ok kettenis@.
* M_WAITOK cleanup of two cases:mk2011-06-171-2/+3
| | | | | | | | | | | | | | | | 1) Allocating with M_WAITOK, checking for NULL, and calling panic() is pointless (malloc() will panic if it can't allocate) so remove the check and the call. 2) Allocating with M_WAITOK, checking for NULL, and then gracefully handling failure to allocate is pointless. Instead also pass M_CANFAIL so malloc() doesn't panic so we can actually handle it gracefully. 1) was done using Coccinelle. Input from oga. ok miod.
* Backout vmmap in order to repair virtual address selection algorithmsariane2011-06-061-3/+4
| | | | outside the tree.
* Add $OpenBSD$ after oga said 'go ahead and fix that'weerd2011-06-0233-0/+33
| | | | 'go for it' oga@
* Force full resets always for now.oga2011-05-301-0/+6
| | | | | | | While it would be best if we never needed to reset the gpu people hate losing their X sessions. Sometimes on gm45 it seems that the render engine reset doesn't work properly, so force a full chip reset in those cases not just the cases that require it.
* Remove the freelist member from vm_physsegoga2011-05-301-2/+2
| | | | | | | | | | | | | | | | | | The new world order of pmemrange makes this data completely redundant (being dealt with by the pmemrange constraints instead). Remove all code that messes with the freelist. While touching every caller of uvm_page_physload() anyway, add the flags argument to all callers (all but one is 0 and that one already used PHYSLOAD_DEVICE) and remove the macro magic to allow callers to continue without it. Should shrink the code a bit, as well. matthew@ pointed out some mistakes i'd made. ``freelist death, I like. Ok.' ariane@ `I agree with the general direction, go ahead and i'll fix any fallout shortly'' miod@ (68k 88k and vax i could not check would build)
* Add RADEON_CS ioctl support for r600 and r700.oga2011-05-307-48/+995
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a faked up version of the gem command submission method for r600 required for OpenGL support on these chipsets. Currently support is not perfect. since these chips have a rather funky ringbuffer based interrupt method which this code does not yet support so interrupt based polling methods must be turned off in mesa. I've not found a good way which to do that per-driver, so until I work that out I the following .drirc (or /etc/drirc) chunk (provided by Brynet after I was too slack to provide it myself) will be needed: <driconf> <device screen="0" driver="r600"> <application name="all"> <option name="fthrottle_mode" value="0"/> <option name="vblank_mode" value="0"/> </application> </device> </driconf> Tested by many on tech@. While it provided more problems, this diff made espie@ stop nagging me when he finally found out it existed.
* Enable MSI on inteldrm.oga2011-05-301-1/+9
| | | | | | | Disable it explictly for i945g and i945gm because according to linux (which is written by intel people) msi is buggy as hell on that chipset. ok kettenis@
* Reimplement uvm/uvm_map.ariane2011-05-241-3/+2
| | | | | | | | | | | | | vmmap is designed to perform address space randomized allocations, without letting fragmentation of the address space go through the roof. Some highlights: - kernel address space randomization - proper implementation of guardpages - roughly 10% system time reduction during kernel build Tested by alot of people on tech@ and developers. Theo's machines are still happy.
* Make inteldrm_intr only do any work if we know for sure that interruptsoga2011-05-211-8/+10
| | | | | | | | | | | | | are unmasked (so we aren't vt switched). Delay mutex aquisition until after we've make sure we have to worry about interrupts. The ironlake version of this behaves funny for guenther@ with interaction on docking then restarting X. so has been left out of this commit until I work out what the hell is going on. Joint work with deraadt@ been in snaps for weeks
* Add definitions for the radeon kms related ioctls (i.e. gem/ttm onoga2011-05-021-0/+164
| | | | | | | radeon). We don't use any of them yet, but the CS ioctl is needed for GL on r600 and the definitions are needed for libdrm_radeon
* Some extra paranoia for if we fail to attach.oga2011-05-021-1/+2
|
* Radeon HD3000; from Pedro la Peu.oga2011-05-021-0/+2
|
* Add some PARAM and flags defines needed for later version of the inteloga2011-05-011-1/+25
| | | | | DDX, libdrm and mesa. So far the kernel doesn't support them (and will return an error if inquired) but userland knows how to cope.
* Fix a NULL dereference if drm fails to attach.oga2011-05-011-0/+4
| | | | | There's probably something better to be done, but we should at least boot if this happens now.
* do not need that protoderaadt2011-04-241-1/+0
|
* match Radeon HD5450 on the kernel side; Mark Peoplesderaadt2011-04-241-0/+2
|
* Do not use NULL in integer comparisons. No functional change.miod2011-04-072-5/+5
| | | | ok matthew@ tedu@, also eyeballed by at least krw@ oga@ kettenis@ jsg@
* - change recieved -> received in comments, as well as two unused definesjasper2011-03-021-1/+1
| | | | | | in pxe.h. ok deraadt@ sthen@
* In drm_modeset_ctl make sure to check the (now signed) value is > 0 asoga2011-02-221-1/+1
| | | | | | | | well as < the array length. ok kettenis@, mikeb@ (who suggested the same fix) and marco@. "get that fixed" deraadt@.
* Port over a fix from Chris Wilson to poke the 855GM GWB/HIC bit.mpf2011-02-111-10/+12
| | | | | | | (https://bugs.freedesktop.org//attachment.cgi?id=41531) Fixes the heavy rendering errors and crashes that made the intel driver unusable on my 865G since 4.8 (kernel/6517) OK matthieu, oga.
* Kill pmap_phys_address(), and force every driver's mmap() routine to returnmiod2010-12-261-2/+2
| | | | | | | a physical address [more precisely, something suitable to pass to pmap_enter()'sphysical address argument]. This allows MI drivers to implement mmap() routines without having to know about the pmap_phys_address() implementation and #ifdef obfuscation.
* no need to poke the vmspace, uvm_map_hint does what we want. ok ogatedu2010-12-161-5/+2
|
* add a BRKSIZ define and use it for the heap gap constant, decouplingtedu2010-12-151-1/+1
| | | | heap gap from max data size. nothing else changes yet. ok deraadt
* correct some bit tests spotted by -Wparentheses in newer gcc.jsg2010-11-091-2/+2
| | | | ok oga@
* Radeon HD4200 Mobility; from brynet. Some flags tweaks from me.oga2010-09-291-0/+2
|
* In i915_gem_idle, don't fail if we have a wedged chipset (this onlyoga2010-09-211-3/+5
| | | | | | | | | | happens when waiting for the gpu), the reset function will at the very least clean out all of our unwanted buffers, which is all we wanted to do here ourselves. so we can continue with disabling the hardware and cleaning up then return success. Fixes a QUIESCE crash for krw when he had a wedged gpu (``it works, ok krw@''). matthew@ hit a similar thing and this should fix it.
* Use RING_WAIT state for the ringbuffer and the instdone debug registeroga2010-09-212-6/+28
| | | | | | | | | | | when we check for gpu hangs. This makes catching some situations a bit more reliable so that large gpu programs don't trigger hangcheck, and also the ring_wait can unhang the chip for us without needin to do a reset. Merge of two patches from Chris Wilson ``upstream''. Running this here for a few days.
* On gen3 hardware always unconditionally set the C3_LP_WRITE_ENABLE bitoga2010-09-212-0/+78
| | | | | | | | | | in ARB_STATE. Without this bit, C{2,3,4} power states can't complete render writes this has been known to cause painful hangs on some 945s where the bios doesn't set this bit for us. Code from Dave Airlie ``upstream''.
* Enable error interrupts on ironlake, as we do on all other chips.oga2010-09-212-40/+48
| | | | The sodding bits moved again *sigh*.
* Fix a couple of typos and remove some if 0ed code that is not coming back.oga2010-09-211-7/+2
|
* reorder the busy ioctl order of operations to be nicer and a little moreoga2010-09-211-21/+19
| | | | | | efficient in the case where we are idle. Idea taken from a commit to the linux kernel by chris wilson.