Age | Commit message (Collapse) | Author |
|
The fact that this has only just been implemented, and that this
hardware is only found on x86 shows that this flag should not be needed
for operation of this hardware. It's been here since the initial netbsd
commit the code came from.
"sounds good to me" jakemsr@, ok kettenis@.
|
|
handling.
ok ratchov; tested by naddy, thanks
|
|
for mixers and selectors when choosing the defaults for
outputs.master.slaves.
|
|
allow transmission/reception of 32-bit audio, so don't allow it.
pointed out by naddy@, thanks.
|
|
- don't set vref bits on mic pins unless the pin says it supports it
- fall back on 50% vref if 80% vref isn't supported
|
|
possibly matching a nonexistent hp or spkr dac.
|
|
is the end of a continuous list that started with the last entry.
while here, rewrite a bit so both long form and short form entries
are handled by the same code, and don't allocate more space than is
needed.
|
|
beep generators or mixers and selectors that are more than 2
connections away from a DAC.
|
|
longer direcly affect other widgets
- if an unsolicited response is received from a volume knob widget,
adjust outputs.master according to the measured change in level of the
volume knob widget
|
|
function for creating "master" volume control.
- apply gpio quirks separately from and prior to configuring the mixer.
gpio manipulation can cause noise on output channels. configuring
gpio before amps are unmuted in the mixer configuration is a good
thing.
from Alexey Suslikov, thanks
|
|
are not really useful as output devices and fixed speakers are not
really useful as input devices
|
|
recording and playback paths.
- select a subset of controls that are relevant in a default
configuration for each path.
|
|
it and the associated macros. this is part of NetBSD's "converter
pipeline", and it isn't really used there either.
|
|
- quit swapping channels 2:3 with 4:5 when processing 6 or more channels.
hacks deep in drivers to "fix" wrongly encoded files is just wrong.
- try to be sure headphones AND speakers get DAC output by default.
|
|
|
|
keep track of some information about them, such as the DAC they are
connected to by default. this will be used soon.
|
|
speaker isn't very useful as an input device
|
|
- remove a couple pointless comments
|
|
- make the code readable and the comment understandable
|
|
widget X should be disabled as well.
- change the comment about renaming widgets to better explain why
instead of how the renaming is done.
|
|
first codec with an audio function group, use the first codec with
an audio function group that can do analog I/O, if there is one.
codecs that just do digital I/O aren't quite as useful, yet.
|
|
the pin is connected to, make sure the pin is the only device that is
connected to the widget.
|
|
- be careful not to set a direction that the pin doesn't support
- remove a workaround in the generic code which is more or less for a
specific device, there are better ways to deal with such situations now
|
|
move it to one place, instead of scattered thoughout with #define
and DPRINTF. my eyes are happier now.
|
|
now "SPDIF", S/PDIF-in is still "SPDIF-in".
line change because we need to differentiate. S/PDIF change because
SPDIF-out is too long, and for consistency.
|
|
b) members of the widget connection list may be invalid.
so,
- change azalia_nid_to_index to azalia_widget_enabled, and have it only
check that the given nid is valid, and that the corresponding widget
is enabled.
- use azalia_widget_enabled every time members of the connection list
are used.
|
|
|
|
|
|
|
|
disabled widgets any other name.
|
|
a converter than a selector.
|
|
- use "beep" as pin device 0xe
|
|
azalia_widget_label_widgets to right after the generic widget
initialization. nothing uses this yet.
|
|
widget for the widget it's connected to. but be a bit careful
to not end up with duplicate mixer item names.
|
|
e.g. the first DAC in the converter group is now dac, the second
is dac2, etc.
unused converters (not in a converter group) will have a "u-" prefix.
these will disappear completely in the near future, as they are useless.
if there is more than one converter group, converters in the second
group will have a "dig-" prefix, since they are digital converters.
|
|
- move the azalia_widget_init_connection call from
azalia_widget_label_widgets to just after azalia_widget_init
- move azalia_widget_label_widgets to after dacgroup initialization
- move the widget info printing from azalia_widget_init_connection
and azalia_widget_init to new function azalia_widget_dump_info
- call azalia_widget_dump_info right after azalia_widget_init_connection
- in functions that are ony used if AZALIA_DEBUG is defined, use printf
instead of DPRINTF()
|
|
given widget is the sole connection to an ADC, DAC or pin complex.
not used just yet.
|
|
it is useless.
|
|
- MI_TARGET_* are enumerated in hex
from Alexey Suslikov
|
|
- don't try to create formats for converter groups that don't exist
- don't allow playback or recording if there is no corresponding
converter group
- don't try to set audio processing parameters on converter groups
that don't exist
allows playback (or record) only devices to work, such as the
azalias found on ATI graphics devices.
note, the ATI devices generally attach before the onboard devices
do. that means they will be audio0 and onboard devices will be audio1.
don't forget to make sure the /dev/{audio[ctl],mixer,sound} links
point to the nodes of the device you want to be the default.
tested by naddy@, thanks
|
|
items. BIOSes can set the jack detect override bit to tell us that
the jack detection circuirty isn't actually attached.
should remove the _sense controls that never change.
|
|
* configure widgets all in one place
* add a flag on the widget_t to let us know if the widget is not
connected; shaves a lot of connection checking code
* be sure not to add power widgets as connectable sources/sinks
* configure unconnected pins as output pins. should help some
MacBooks and be benign to other devices.
the last change has been tested by several as a separate diff. no
real functional changes otherwise.
from Alexey Suslikov. thanks!
|
|
use it to quiet some debug messages by default, so people don't get
scared when testing completely unrelated changes when AZALIA_DEBUG
is defined.
print out ADC groupings when AZALIA_DEBUG is defined like we do for
DAC groupings.
|
|
being the cause of PR5982. unfortunately, there's no easy and clean
solution to automatic muting. we can't always rely on the codec
giving us the right information. people have different preferences
as to what should be muted and what shouldn't. etc, etc.
so instead, just make the sense state of jacks that support sensing
available through the mixer interface. this allows for any possible
user configuration and supports all pins that have sense capabilities,
not just headpones. codecs that use the generic mixer configuration
(which is the plan for all codecs) and have sensing capable pins will
now get a few more read-only mixer items, such as:
outputs.hp_sense=plugged
outputs.mic_sense=unplugged
outputs.line_sense=unplugged
hopefully what they mean is self-explanatory.
based on much discussion with ratchov@ and Alexey Suslikov
|
|
* DEBUG cleanup
from Alexey Suslikov, thanks
|
|
|
|
|
|
formats and creates an array of unique encodings. use the array in
azalia_query_encoding.
in other words, no more duplicate encodings in `audioctl encodings`.
|
|
|
|
struct audio_encoding in azalia_query_encodings. otherwise it
will be some random value.
makes AUDIO_GETENC and thus sio_getcap(3) much more useful here.
|