summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/i915_dma.c
AgeCommit message (Collapse)Author
2013-03-09handle llc and semaphore paramsJonathan Gray
2013-03-09add support for setting the addressing modeJonathan Gray
2013-03-05unstub the ring throttle ioctlJonathan Gray
2013-03-05claim to support page flippingJonathan Gray
2013-02-25claim to support BSD/BLT ringsJonathan Gray
2013-02-23add i915_kernel_lost_context for ums (replaces inteldrm_update_ring).Jonathan Gray
2013-02-22The libdrm_intel code is totally retarded and doesn't actually look at theMark Kettenis
value returned by I915_PARAM_HAS_RELAXED_FENCING. If the ioctl succeeds, it assumes relaxed fencing is supported. So as long as we don't actually support it, we need to fail with EINVAL.
2013-02-14do_intel_finish_page_flip is still stubbed so don't claim page flip supportJonathan Gray
2013-02-14support GEN7_SOL_RESETJonathan Gray
2013-02-14cleanup irq if intel_fbdev_init failsJonathan Gray
2013-02-13claim to support pageflipping, no problems on 965Jonathan Gray
2013-02-13rename the i915_dma.c functions to match linuxJonathan Gray
2013-02-13move some functions to i915_dma.cJonathan Gray
2013-02-07add license textJonathan Gray
2013-02-02make the feature macros take drm_device instead of inteldrm_softcJonathan Gray
2013-01-30move ring code closer to upstreamJonathan Gray
2013-01-10i915_gem_initJonathan Gray
2013-01-10move some gem parts to i915_gem.c to match upstreamJonathan Gray
2013-01-10moreJonathan Gray
2010-05-25Remove the DRI1 code paths from inteldrm as promised two weeks ago.Owain Ainsworth
We no longer support these paths, only memory managed mode is now allowed.
2010-05-10unifdef INTELDRM_GEM.Owain Ainsworth
This enabled GEM for the intel driver unconditionally. The legacy codepaths will be removed in approximately one week since they are now completely unused. After discussion with matthieu@, drahn@, kettenis@ and marco@ (well, mostly nagging from marco ;).
2010-04-29use BUS_SPACE_MAP_PREFETCHABLE on maps that should be WC (soon this willOwain Ainsworth
actually do so).
2010-04-08DRM memory management for inteldrm(4) using the Graphics ExecutionOwain Ainsworth
Manager api. This is currently disabled by default under ifdef INTELDRM_GEM (option INTELDRM_GEM in a kernel config or a patch to i915_drv.h needed to enable), mostly because the intel X driver currently in tree does not always play well with GEM and needs to be switched to UXA accelmethod (which is the only option on later drivers). While based on the intel drm code in the linux kernel this has come cleanups and some obvious behaviour changes: 1) mmap through the GTT is entirely coherent with the gpu cache, removing mappings whenever the cache dirties so you can not race with userland to write to memory at the same time as the gpu. 2) pread/pwrite access is tiling-correct, so userland does not need to tile manually (mesa has already been fixed for this a while ago). The straw that broke the camels back here was the bit17 swizzling stuff on some mobile gpus meansing that while userland did the swizzle itself, the kernel had to do *extra* swizzling, this was frankly retarded so the option was dropped. 3) there is no option to map via the cpu from userland, again due to coherency issues. 4) additional integer overflow checking in some areas. 5) we only support the newer EXECBUFFER2 command submission ioctl. the old one is not supported at all (libdrm was fixed WRT over a week ago). now the TODOs: 1) the locking is funky and is only correct due to biglock. it does however work due to that. This will be fixed in tree, the design in formulating in my head as I type. 2) there are currently no memory limits on drm memory, this needs to be changed. 3) we really need PAT support for the machines where MTRRs are useless, else drm uses quite a lot of cpu (this is a bug that continues from the older code though, nothing new). 4) gpu resetting support on other than 965 is not written yet. 5) currently a lot of the code is in inteldrm, when memory management comes to other chipset common code will be factored out into the drm midlayer. Tested on: 855 (x40), GM965 and 915 by me. 945 by armani@ and jkmeuser@, gm45 by armani@ and marco@. More testing is needed before I enable this by default though. Others also provided testing by what they tested escapes me right now. In order to test this enable INTELDRM_GEM in a kernel and add the following line to the driver section in xorg.conf (I am working on a patch to autodetect the X stuff): Option "AccelMethod" "UXA"
2009-12-14Add a dummy I915_PARAM_NUM_FENCES_AVAIL parameter for Mesa 7.5.Matthieu Herrb
ok oga@ during h2k9.
2009-11-23some whitespace cleanups.Owain Ainsworth
there's more in here that needs doing though.
2009-11-23move the lastclose function into i915_drv.c where it belongs.Owain Ainsworth
kill some more dead protos while i'm touching the lines around them anyway.
2009-11-23Pad the ringbuffer with NOOPs before wrapping around, instead ofOwain Ainsworth
wrapping our commands over. The documentation says that wrap must not happen in the middle of commands. and upstream have seen some odd bugs that may be attributed to this. Based on a diff by Chris Wilson (ickle) from Intel to the linux driver.
2009-04-06Turns out that the intel version of the heap interface isn't usedOwain Ainsworth
anywhere. And hasn't been for a long time. The ddx sets up the heap (so just always pass that call and do nothing), but nothing that touches inteldrm actually uses the other ioctls. So just kill them and have one lese thing to worry about. Still got sis and radeon using the common code though.
2009-04-05kill DRM_VERIFYAREA_READ, it's part of a linux optimisation where we canOwain Ainsworth
guarrantee that copyin won't pagefault and use a faster version in that case. Since we just use plain copyin, it's stupid.
2009-04-03Change a bunch of "printk" in commented out debug code into "printf" andOwain Ainsworth
kill the compat define. Should have done this ages ago.
2009-03-05Demacro the inteldrm ring macros too, making them use bus_space_writeOwain Ainsworth
instead of assuming BUS_SPACE_LINEAR + bus_space_vaddr while i'm at it. Cleans things up nicely, and shaves a little bit of space, too.
2009-02-15The core drm code calls drm_irq_uninstall() when needed at lastclose.Owain Ainsworth
Due to the fact that most of the drivers didn't keep their mmio regions mapped from attach, all irq-using drm drivers have a hook in lastclose() to remove the irq before it unmaps its registers. Since now they all keep them mapped, this isn't an issue. Remove the redundant calls.
2009-02-15for the sake of correctness bus_dmamap_sync when necessary for theOwain Ainsworth
hardware-status-page.
2009-02-15Convert intel hardware-status-page allocation over to new dmamem api.Owain Ainsworth
2009-02-09Remove the inteldrm pageflipping code.Owain Ainsworth
Deprecated and broken. Sanity checked by a few people, no problems caused.
2009-02-05Merge the static block allocation code from {i915,radeon}_mem.c intoOwain Ainsworth
non-static code that's shared between both. While i'm here convert them to TAILQ. Eventually, both of these will die, but until then I'd rather shave the space in the kernel. Tested on radeon and intel.
2008-11-24do the same for struct drm_file (file_priv) as previously done forOwain Ainsworth
dma_bufs; allow the driver to provide the size and not have the private data pointer. only radeon only needs this so far, but intel with GEM also needs it. Postclose was only used for freeing said private data, so this allows me to remove the postclose callback and rename preclose to close.
2008-11-24make device works out if it's agp and tells the drm driver, not theOwain Ainsworth
other way round. More dev->pa reduction
2008-11-24use dev->dmat. Missed this one in an earlier diff.Owain Ainsworth
2008-11-23Include the GEM interface in i915_drm.h.Owain Ainsworth
While we don't have code for this (yet!), mean I will be able to update libdrm, and consequently the xf86-video-intel driver to 2.5.x. Add PARAM_HAS_GEM to the getparam ioctl, and return no support.
2008-11-22drm_device_is_pcie is only needed in one place: radeondrm_attachOwain Ainsworth
so just inline it there. also remove dev->pci_vendor and dev->pci_device, and insert pci_device into the one place any of them are needed (inteldrm's interface can give this info to the X driver. to remove that you'd need to fix X too).
2008-11-22Remove the driver->load callback and just do all the initialization inOwain Ainsworth
the attach function. First step towards splitting drm off as it's own (bus independant) device, as it should be.
2008-11-22reduce the dependancy of drm_pci_alloc upon the drm device softc. JustOwain Ainsworth
pass in the dma tag
2008-11-22Slightly fix up previousOwain Ainsworth
2008-11-22inteldrm currently checks the pcidev of the device every time it needs to checkOwain Ainsworth
what revision it is to determine which route to take. instead, use the flags field of the pcidevs array to provide a static list of flags related to series, type, and certain features and check those instead. Makes me less sad and knocks another 600 bytes off my kernel.
2008-11-19I'm clever and commited the wrong patch. Here's the correct one.Owain Ainsworth
This should close kernel/5995.
2008-11-18instead of going through the drm_map interface, just map the mmioOwain Ainsworth
registers directly (via the memory sharing interface that intagp uses). It doesn't need to be in a map structure. Idea taken from some of intel's work.
2008-11-17Don't put the buffer counter in a reserved part of the status page.Owain Ainsworth
From intel.
2008-11-17Conditionalise the use of the SAREA in inteldrm. In DRI2 setups (which we don'tOwain Ainsworth
support yet, but will) it won't exist, prepare for this by only writing to it if it's there. Bits of this came from Eric Anholt at intel.
2008-11-06The i915 vblank swap ioctl is fundamentally racy.Owain Ainsworth
using it allowed rendering to continue while waiting for a vblank swap, and often this lead to flickering and rendering a new scene before the swap. this broke a lot of things. With the removal of this swap, userland falls back to the old way of waiting for the vblank then doing the swap itself, this is smooth enough. I decided independantly to kill this, but the intel guys recently concurred. Comment change comes from Eric Anholt at intel.