Age | Commit message (Collapse) | Author |
|
the one changed.
|
|
while (condition) {
do_stuff()
increment_condition /* this was missing */
}
To a for loop like it always should have been. I have no idea what I was
smoking when I wrote this function.
Fixes the crash on hardware that does bit 17 swizzling (turns out the
three I know of are all 945s) as soon as we first unbind an object.
Thank you very much to Brandon Mercer for actually managing to get me a
crash dump so i could debug this, and also for testing the fix.
|
|
guenther@ for sparc, pointed out to me by miod@.
|
|
floating-point registers. Pointed out by Nick Hudson.
ok miod@, jsing@
|
|
Makes gcc4 happier.
ok deraadt@, marco@
|
|
generates smaller code without them.
ok miod@
|
|
INCLUDE= common.
|
|
and SRCS= (common files always after the \)
|
|
but required for gcc4.
ok kettenis@ deraadt@ marco@, log2 suggested by robert@
|
|
arm Makefiles a substantial step forward
|
|
delete the check. ok deraadt
|
|
normally occur in other architectures. This compiles a kernel fine.
|
|
|
|
|
|
|
|
|
|
webcam.
ok mglocker
|
|
|
|
|
|
|
|
two directories. in reality, because of how we place files, it has four:
.../arch/A, .../arch/A/A, .../arch/M, and .../arch/M/M
formalize this A/A and M/M scheme directly in the Makefiles, which makes
them a lot more similar
drahn likes the idea a lot
|
|
|
|
DDR settings, and is reported to work by ysw at mpcj dot cn after cheating
the Version environment variable, so recognize its model number.
|
|
people thought skipping "make depend" or "make clean" was acceptable
|
|
|
|
|
|
|
|
arch and machine dependent files (and add the missing files)
ok miod drahn
|
|
|
|
|
|
|
|
ok miod drahn
|
|
|
|
ok miod
|
|
|
|
|
|
where there is almost nothing left to them, so that we can continue getting
rid of them
ok oga
|
|
most importantly swapoff) over to a mutex. No idea how many times i've
written this diff in the past.
ok deraadt@
|
|
libdrm bug recently.
Correct to what was intended.
|
|
accessed by the gpu or needing a flush). Since this implies that the object is
wanted, emit the flush then to save time.
Makes things a lot smoother than before in some GL applications, since
before we were claiming that object needing a flush were unbusy so the
next map stalled the gpu waiting on a flush.
From daniel vetter on intel-gfx.
|
|
conflicts.
|
|
If we just read access to some data that has been accessed by the gpu,
only sleep until the end of the gpus last write (which we track). So
instead of stalling the gpu until the last time accessed, both can read
at the same time (which is allowed and coherent as long as the right
invalidation happens).
Since we check offsets from userland before we exec a batchbuffer, this
helps 965 (with lots of read only relocations in the render path) quite
a lot.
|
|
Before, as well as being kinda nasty there was a very definite race, if
the last reference to an object was removed by uvm (a map going away),
then the free path happened unlocked, this could cause all kinds of
havoc.
In order to deal with this, move to fine-grained locking. Since uvm
object locks are spinlocks, and we need to sleep in operations that will
wait on the gpu, provide a DRM_BUSY flag that is set on a locked object
that then allows us to unlock and sleep (this is similar to several
things done in uvm on pages and some object types).
The rwlock stays around to ensure that execbuffer can have acces to the
whole gtt, so ioctls that bind to the gtt need a read lock, and
execuffer gets a write lock. otherwise most ioctls just need to busy the
object that they operate on. Lists also have their own locks.
Some cleanup could be done to make this a little prettier, but it is
much more correct than previously.
Tested very very vigorously on 855 (x40) and 965 (x61s), this found numerous
bugs. Also, the I can no longer crash the kernel at will.
A bunch of asserts hidden under DRMLOCKDEBUG have been left in the code for
debugging purposes.
|
|
these maps tend to be fairly long lived so it buys us nothing other than
code complexity.
|
|
Since this means the necessary gtt alignment may change. Nothing did
this already, so all it does it allows the code to be simpler.
idea from Daniel Vetter.
|
|
|
|
bother zeroing fault registers of CMMU which did not report faults.
|
|
used to depend on <sh/psl.h> bringing <machine/intr.h>.
|
|
removed. Extend carp demote logging to also show the reason for
the demote. Return EINVAL instead of ERANGE if a carpdemote request
is out range. Requested from otto.
OK mcbride, henning.
|
|
|