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.
isn't a power of two, and since the block size is changing this tells
audio(4) to halt output, reconfigure the device, then trigger output again.
mplayer's oss driver uses SNDCTL_DSP_GETOSPACE a lot.
Instead of simply rounding to 128 bytes as required by the hardware, change
hdafg_round_blocksize to return one of 128, 256, 512, 1024, 2048, 4096,
or 8192.
- fix an off-by-one in block size calculation
- add register definitions from HDA034-A2, HDA035-A, HDA036-A
- rename hdaudio_afg_* symbols to hdafg_*
- add experimental HDMI and DisplayPort support code (needs help from DRM)
- don't poll the RIRB unless cold
- add support for unsolicited messages
- 'hdaudioctl graph' works again
- print each assoc's widget tree when boot -x
Instead of specifying a range of supported sample rates based on the lowest
and highest available frequencies, only advertise rates that the codec reports
as working. Let aurateconv take care of the rest.
that no such widget is defined first. On a Dell Latitude 430, widget
0x14 is the beep generator and the original version would replace the
normal speaker output, breaking head phone redirection in the process.
Discussed with jmcneill@
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
PR# kern/42028: hdaudio: mplayer can't change volume
Since the driver is not limited to OSS mixer APIs, allow for duplicate
mixer nodes with the same role. Resolves a regression where certain
controls may no longer be available that were previously possible with
azalia(4). Part of a fix for 42028. While here, add .mute controls to
address 42110.
implementation in that this code does not care if the headphones are seq=15.
Instead, for each association, find any HP pins with jack sense capabilities
and if at least one has the Presense Detect bit set, enable output on all
PWCs of type HP_OUT and disable output on all PWCs of type LINE_OUT, SPEAKER,
or AUX. Do the reverse if no HP pins have the Presense Detect bit set.