summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/r128_drv.h
AgeCommit message (Collapse)Author
2008-11-24back out the buf_priv change. it made some incorrect assumptions andOwain Ainsworth
broke radeondrm. Fixing it is ugly, so another change will have to be made later. I /hate/ the drm_buf api, it will die as soon as it can.
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-24Instead of having a ``private data'' pointer in the dma buffers, justOwain Ainsworth
ask the driver how large they need the structure we allocate to be, and use inheritance like we do for struct device. Simplifies things a little bit and saves us a pointer.
2008-11-23Map device interrupts in the attach routine. and remove more need forOwain Ainsworth
dev->pa by doing the pci_intr_establish/disestablish dance in the driver function, not in drm. This removes the need for interrupt_{pre,post}install callbacks, instead just provide a interrupt_install() callback.
2008-11-23Move vblank data allocation to happening at attach, not at irq enable.Owain Ainsworth
just put a vblank_pipes argument to the driver structure which tells us how many to set up this means that intel doesn't lose all vblank count on vtswitch (it disables the interrupt there), i've heard of a few uvm_faults where this happens as well as things just going wrong. This was suggested by Keith Packard who provided a different diff for drm.git.
2008-11-22Make all drm drivers map their mmio register space on attach instead ofOwain Ainsworth
using the drm_maps interface (this was done for inteldrm a few days ago). All drivers now ignore the mmio_offset argument that the init ioctl takes. This clears up the code and makes sure that drm_ioremap_core() doesn't need the vga_pci_map inteface anymore, so we don't have to pass in the vga softc anymore. We also get to kill the drm_resource_{start,length} linux-alike functions since we just calculate all the requisite offsets at startup and cache those we need. This now means that technically the only driver that needs the vga_pci_map api is inteldrm (due to sharing with intagp issues), though this diff doesn't convert them over.
2008-11-22Move the drm drivers over from:Owain Ainsworth
vga1 at pci0 inteldrm0 at vga1 to vga1 at pci0 inteldrm0 at vga1 drm0 at inteldrm0 i.e. a similar scheme to audio(4) where the interface attaches on top of the wildly different drivers. This helps to clean up the code a lot (more is coming) and help me start to move drm to being essentially bus independent, which will help in the future.
2008-10-07Kill the linux-ready negative return codes in ``shared'' code. We handleOwain Ainsworth
them wrong in several cases that i've noticed and Merging when needed is still fairly simple, anyway. This shaves another 500 bytes from an amd64 kernel due to not having to flip the sign on some things. It also stops my eyes bleeding. Tested by a few along with the last diff that went in.
2008-10-07Move dev->driver over to being a pointer to a const struct, instead of stupidlyOwain Ainsworth
filling in a pre-allocated one on each attach. Makes the code a bunch nicer, shrinks a kernel by about 1.5k on amd64, helps with my sanity, and paves way for later changes. Tested by a few for a couple of weeks now.
2008-06-11Update to DRM git as of a few days ago. This mostly affects theOwain Ainsworth
card-specific files with a few minor changes elsewhere. The main change to the OpenBSD specific stuff is the change to the irq api due to the vblank rework. 4 more large bugs known, I have a fix for one. Tested by many. prompted by deraadt@.
2007-11-28Initial import of the DRM (direct rendering manager).Owain Ainsworth
This is the kernel part necessary for DRI support in X. Disabled for now because it still has a few bugs, but now I can work on it in tree. Also requires the requisite bits in X, which are currently under discussion on how to deal with them with privsep. ported from a combination of the free and netbsd implementations. Known bugs: 1) only the first occurence of X in any session will have dri, after that something prevents it working. 2) if the machine does not have a dri capable card, the kernel panics. Something's up in one of the probe functions. I haven't been able to find it though. 3) radeon cards need to be forced to use PCI mode otherwise they get into an infinite loop. This is known to at least kinda work with SiS, radeons in pci mode and intel cards. ok deraadt, kinda ok art, a few other people had a quick look.