the original ad-audiomp branch notes:
Add MP locking to the audio drivers.
Making the audio drivers MP safe is necessary before efforts
can be made to make the VM system MP safe.
The are two locks per device instance, an ISR lock and
a character device lock. The ISR lock replaces calls to
splaudio()/splx(), and will be held across calls to device
methods which were called at splaudio() before (e.g.
trigger_output). The character device lock is held across
calls to nearly all of the methods, excluding some only
used for initialization, e.g. get_locks.
Welcome to 5.99.57.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
aurateconv_fetch_to: internal error: unsupported encoding: enc=1 prec=8
The issue was that the playback filters for audio were being added to the
list in the wrong order. The first entry in the list is closest to the
hardware, the last is closest to the audio buffer. The code thought it
the other way around, so the incorrect formats were being passed down the
filter list.
* add virtual consoles by using wsdisplay_vcons
* make use of generic scrollback support for consoles
* enable colour support for vidcvideo consoles
* use the default NetBSD font, rather than picking a sony one
* make kernel output green, so it's obvious.
This was tested at 800x600 in 8bpp on an A7000+ and 2MB VRAM RiscPC.
To actually benefit from these changes wscons=YES needs to be added to
your rc.conf
during boot and ddb.
This is done by routing all requests for changes to the screen into one
function. The function can then determine if interrupts are enabled or
disabled, and either flush them to screen immediately or set them up for
the next flyback irq.
Also if we have nothing to do, disable the flyback irq, and re-enable when
we have something to do. This avoids taking an interrupt for every vsync,
IE 50-75Hz, just to do nothing.
This makes ddb usable and the boot dmesg visable with an SA.
lmbench now reports that the A7000+ has a 14Mhz CPU, rather than 4Mhz
(it's actually 48Mhz)
Tested on SA Risc-PC and A7000+
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.
TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.
NOTES:
pmppc was removed as an arch, and moved to a evbppc target.