Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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@.
|
|
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.
|