Commit Graph

79 Commits

Author SHA1 Message Date
jmcneill 8a962f23f2 Merge jmcneill-audiomp3 branch, which is derived from ad-audiomp2. From
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.
2011-11-23 23:07:28 +00:00
dholland e26685ec75 Fix a crash during alc888 initialization caused by holding a pointer
across realloc. Patch from Bj?rn Barkenfelt in PR kern/41957, rearranged
somewhat by myself.
2010-05-03 04:36:43 +00:00
stacktic ea41759011 Add Realtek ALC663 and treat like ALC662 (ok pooka@) 2009-04-07 14:47:53 +00:00
jmcneill 4ca035a32b Add proper Realtek ALC268 support. While we're here, fix a comment in
the ALC262 quirk section. Tested by Sean Davis on an Acer Aspire One.
2009-02-28 17:12:13 +00:00
jmcneill 34c593f760 * Realtek ALC885: Use generic_mixer_autoinit/init_widget
* generic_mixer_create_virtual: if the front l/r DAC doesn't have a volume
  capability, enumerate all peer widgets and search for a volume mixer
  there.
2009-02-23 02:34:57 +00:00
markd be346f80ff Add Analog Devices AD1984A and treat like AD1984. 2009-01-27 08:23:00 +00:00
cegger 94a79c95d5 Use aprint_error_dev. Eliminates XNAME macro. 2009-01-18 10:40:40 +00:00
jmcneill d6b7340a23 Add support for Realtek ALC269 as found in Eee PC 1000HA. 2008-11-12 13:33:10 +00:00
kent ed7dd02a92 * generic_mixer_create_virtual()
Don't track items by pointers because the buffer can be moved by realloc().

PR kern/39382, reported and patch provided by Takahiro Hayashi
2008-08-24 16:12:03 +00:00
jmcneill 3db8886a8e AD1984: Take advantage of pin auto-config and auto-naming. 2008-08-15 13:47:25 +00:00
jmcneill 750f206837 Skip unconnected pins when creating a selector connlist. 2008-08-15 11:22:59 +00:00
jmcneill 22870f3a1f PR#38860: azalia record does not work on Realtek ALC662-GR
o Don't add unconnected pins to generated mixer list, should help
    make auto-generated mixer lists slightly easier to work with.
  o Move COP_AWTYPE_AUDIO_MIXER type knobs to mix.* rather than polluting
    the inputs.* namespace and giving a few more characters for the
    auto-generated names.
  o Introduce an alternate to generic_mixer_init, generic_mixer_autoinit.
    generic_mixer_autoinit uses COP_AWTYPE_PIN_COMPLEX "default
    configuration" capability flags to determine proper pin widget control
    and eapd configuration, as well as creating virtual outputs.master,
    inputs.dac, and record.volume mixer controls that mirror the default
    dac and adc controls.
  o Introduce generic_mixer_init_widget which uses COP_AWTYPE_PIN_COMPLEX
    "default configuration" device type, gross location, and geometric
    locations to guess friendlier mixer control names.
  o On ALC662-GR, the primary ADC NID is 0x09, not 0x08, so correct the
    convgroupset in alc662_init_dacgroup.

Audio capture now works on ALC662-GR (as found in the ASUS EeePC 701).
Note that only ALC662-GR uses generic_mixer_autoinit and
generic_mixer_init_widget; other codecs will need to be tested and
converted to address PR#38578: azalia_codec.o is too large.
2008-08-14 23:43:27 +00:00
abs 614a789bec Commit patch from jmcneill@ to fix "No sound on Thinkpad azalia"
Definitely fixes a T60p, and hopefully will fix PR#37141 for an R61 also
2008-07-06 00:14:00 +00:00
gmcgarry 39cc1fe282 pcc doesn't like empty structures for initialisation. Fill with zeros. 2008-06-24 10:17:00 +00:00
freza 564b3de4f4 Split device_t/softc. Remove unused macros. 2008-06-07 16:32:38 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
cegger 9d57c80079 use aprint_*_dev and device_xname 2008-04-10 19:13:36 +00:00
jmcneill 0123953b4c Add outputs.master.mute and inputs.dac.mute knobs for ALC662. XXX these
currently only control speaker mute, not headphone. Needs to be revisited.
2008-03-31 15:23:30 +00:00
jmcneill c7bcf11189 Initial support for the Realtek ALC662-GR as found in the ASUS Eee PC. 2008-03-31 00:18:17 +00:00
oster 06f0c8e418 Make outputs.master and inputs.dac show up in mixerctl output for the ALC888. Patch from, and much thanks to, jmcneill @. 2008-02-22 02:59:31 +00:00
markd 906c80684e s/AD1983_EVENT/AD198X_EVENT/ 2008-01-31 19:01:50 +00:00
markd 5dc269fc53 Use more meaningful names for AD1984 widgets.
Select dac as default input for internal mono speaker.
Handle jack pin detect for headphones and lineout on Dell Optiplex 755.
2008-01-31 18:58:57 +00:00
jmcneill 89cbafc849 AD1984: Create a dummy outputs.master mixer knob that mirrors inputs.dac,
since AD1984 doesn't have a traditional master volume control.
2008-01-30 23:03:09 +00:00
jmcneill 77c34d4c1c AD1984: Use the same DAC for speaker and headphones, so the headphone jack
works as expected on Thinkpad T61 (and probably others).
2008-01-30 22:09:00 +00:00
kent 9602a50eb5 recognized the names of Sigmatel STAC9227-9230 2008-01-06 13:33:21 +00:00
kent e93ecba847 shorten mixer-input names by mixer-name automatic generation
PR/37273
2008-01-04 17:00:05 +00:00
kent 16504b27b0 simplify conversion rule between device volume values and userland
volume values.  Some mixer values never be 255 by this change.

PR#37274
2008-01-04 12:18:00 +00:00
kent f8415b4922 code cleanup
- use __arraycount
- remove unnecessary M_ZERO flags
2008-01-03 18:00:43 +00:00
kent c89324c85e - add initialization for ATI HDMI audio
- add custom mixer table for AD1986A by scw@
PR: kern/36140
2008-01-03 17:39:03 +00:00
jmcneill 4c1d81b2b5 Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
christos 1b601e0085 Add dell latitude 420 in the list of machines that need special treatment
to silence speakers when headphones are plugged in. From Marcin Michal Jessa
2007-11-26 15:47:36 +00:00
joerg 75bc145079 When converting mixer values to hardware values, round up. This makes
stepping and restore actually work.
2007-11-07 00:47:18 +00:00
markd 7893af1639 Add support for Analog Devices AD1983 codec as found in Dell Optiplex 745. 2007-11-03 20:55:58 +00:00
joerg 2cdafd23af Add another Dell machine where the head phone event needs to be handled. 2007-10-30 19:36:10 +00:00
xtraeme 1e59d2ec47 alc883_mixer_init: fix this->nmixers, __arraycount() wasn't correct. 2007-09-22 15:14:33 +00:00
xtraeme 9d68543f98 Apply revision 1.22 from OpenBSD, quoting deanna's commit:
"Add support for Realtek ALC883.  This is the "value" edition of the
ALC882, and differs only by lacking an ADC and a mixer, so have it use
ALC882's get_port(), set_port() and a slightly modified version of its
mixer init."
2007-09-22 05:55:59 +00:00
jmcneill 786691ad36 Add basic support for the Analog Devices AD1984 codec as found in the
ThinkPad T61.
2007-09-13 03:54:51 +00:00
kent c3b41473a8 * stac9221_gpio_unmute()
The target node should be the audio function group, not 0.
  Pointed out by Deanna Phillips

* stac9221_mixer_init()
  Enable GPIO unmute for Intel Macintosh
2007-05-13 03:28:19 +00:00
sketch 5f4b89c72b Match recent addition as a STAC9200. 2007-05-10 07:48:16 +00:00
sketch aeb96b4230 Update previous to match what the author probably meant to do. 2007-05-10 07:34:59 +00:00
kent d32678c2dd Support for headphone-sensing for DELL Inspiron 6400.
PR#36302 by Aleksej Saushev
2007-05-10 05:44:37 +00:00
kent ec3dff2790 fix a typo: PRESENSE -> PRESENCE
From deanna@OpenBSD
2007-05-08 05:18:20 +00:00
kent fea2165faf - fix incorrect codec name of STAC9200
- support for headphone-sensing in some DELL machines with STAC9200

From azalia_codec.c rev.1.19 by deanna@OpenBSD
2007-05-08 05:03:50 +00:00
kent 5deb14ad9d readable mixer item names for AD1981HD 2007-03-19 16:27:00 +00:00
kent 3e124ca34a don't make a mixer item for a power widget 2007-03-18 14:16:00 +00:00
kent 371c325530 correct the DAC group definition for AD1988.
reported by wiz
2007-03-18 11:49:21 +00:00
kent b7fab1d1f2 * codec names for Realtek ALC262, ALC268, ALC861, ALC861-VD-GR,
ALC883, ALC885, and ALC888
* DAC/ADC group definitions for Realtek ALC861, ALC861-VD-GR,
  ALC883, ALC885, and ALC888
2007-03-11 15:42:00 +00:00
kent 88b9b15961 remove DPRINTF() in generic_mixer_init() because they are useless
in many cases.
2007-03-11 13:41:18 +00:00
kent d7d522ea80 - Add jack-sense code for STAC9220 in some DELL models (currently disabled)
- Add DAC/ADC grouping for AD1988
2007-03-11 13:34:40 +00:00
kent c88ac48ab9 reviced Intel Mac support code (currently disabled)
PR#34880
2007-03-11 13:31:36 +00:00