Commit 6c31e7ee authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ASoC: Add missing comma to SND_SOC_DAPM_SWITCH_E in soc-dapm.h
  ALSA: hda: Add STAC92HD83XXX_PWR_REF quirk
  ALSA: hda: revert change to 92hd83xxx power mapping
  ALSA: hda - Add model entry for HP dv4
  ALSA: hda: 83xxx port 0xe DAC selection
  ASoC: fix registration of the SoC card in the Freescale MPC8610 drivers
  sound: virtuoso: document HDAV1.3 driver status
  sound: virtuoso: add newline
  sound: virtuoso: enable UART on Xonar HDAV1.3
  sound: Remove removed OSS kernel parameters from doc
  ALSA: hda: fix invalid power mapping masks
  ASoC: atmel_pcm: Remove non-existant header
  ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC
  ALSA: hda - Fix (yet more) STAC925x issues
parents f3b8436a 0f0779b1
...@@ -577,9 +577,6 @@ and is between 256 and 4096 characters. It is defined in the file ...@@ -577,9 +577,6 @@ and is between 256 and 4096 characters. It is defined in the file
a memory unit (amount[KMG]). See also a memory unit (amount[KMG]). See also
Documentation/kdump/kdump.txt for a example. Documentation/kdump/kdump.txt for a example.
cs4232= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>
cs89x0_dma= [HW,NET] cs89x0_dma= [HW,NET]
Format: <dma> Format: <dma>
...@@ -732,10 +729,6 @@ and is between 256 and 4096 characters. It is defined in the file ...@@ -732,10 +729,6 @@ and is between 256 and 4096 characters. It is defined in the file
Default value is 0. Default value is 0.
Value can be changed at runtime via /selinux/enforce. Value can be changed at runtime via /selinux/enforce.
es1371= [HW,OSS]
Format: <spdif>,[<nomix>,[<amplifier>]]
See also header of sound/oss/es1371.c.
ether= [HW,NET] Ethernet cards parameters ether= [HW,NET] Ethernet cards parameters
This option is obsoleted by the "netdev=" option, which This option is obsoleted by the "netdev=" option, which
has equivalent usage. See its documentation for details. has equivalent usage. See its documentation for details.
......
...@@ -349,6 +349,7 @@ STAC92HD73* ...@@ -349,6 +349,7 @@ STAC92HD73*
STAC92HD83* STAC92HD83*
=========== ===========
ref Reference board ref Reference board
mic-ref Reference board with power managment for ports
STAC9872 STAC9872
======== ========
......
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
#define SND_SOC_DAPM_SWITCH_E(wname, wreg, wshift, winvert, wcontrols, \ #define SND_SOC_DAPM_SWITCH_E(wname, wreg, wshift, winvert, wcontrols, \
wevent, wflags) \ wevent, wflags) \
{ .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \ { .id = snd_soc_dapm_switch, .name = wname, .reg = wreg, .shift = wshift, \
.invert = winvert, .kcontrols = wcontrols, .num_kcontrols = 1 \ .invert = winvert, .kcontrols = wcontrols, .num_kcontrols = 1, \
.event = wevent, .event_flags = wflags} .event = wevent, .event_flags = wflags}
#define SND_SOC_DAPM_MUX_E(wname, wreg, wshift, winvert, wcontrols, \ #define SND_SOC_DAPM_MUX_E(wname, wreg, wshift, winvert, wcontrols, \
wevent, wflags) \ wevent, wflags) \
......
...@@ -744,8 +744,8 @@ config SND_VIRTUOSO ...@@ -744,8 +744,8 @@ config SND_VIRTUOSO
select SND_OXYGEN_LIB select SND_OXYGEN_LIB
help help
Say Y here to include support for sound cards based on the Say Y here to include support for sound cards based on the
Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2, D2X and Asus AV100/AV200 chips, i.e., Xonar D1, DX, D2 and D2X.
HDAV1.3 (Deluxe). Support for the HDAV1.3 (Deluxe) is very experimental.
To compile this driver as a module, choose M here: the module To compile this driver as a module, choose M here: the module
will be called snd-virtuoso. will be called snd-virtuoso.
......
...@@ -8478,6 +8478,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { ...@@ -8478,6 +8478,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_ASUS_EEE1601), SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_ASUS_EEE1601),
SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG), SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC883_6ST_DIG), SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x1071, 0x8227, "Mitac 82801H", ALC883_MITAC),
SND_PCI_QUIRK(0x1071, 0x8253, "Mitac 8252d", ALC883_MITAC), SND_PCI_QUIRK(0x1071, 0x8253, "Mitac 8252d", ALC883_MITAC),
SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
...@@ -8526,6 +8527,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = { ...@@ -8526,6 +8527,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL), SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL), SND_PCI_QUIRK(0x8086, 0x0002, "DG33FBC", ALC883_3ST_6ch_INTEL),
SND_PCI_QUIRK(0x8086, 0x2503, "82801H", ALC883_MITAC),
SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC883_3ST_6ch_INTEL), SND_PCI_QUIRK(0x8086, 0x0022, "DX58SO", ALC883_3ST_6ch_INTEL),
SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch), SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch),
{} {}
......
...@@ -81,6 +81,7 @@ enum { ...@@ -81,6 +81,7 @@ enum {
enum { enum {
STAC_92HD83XXX_REF, STAC_92HD83XXX_REF,
STAC_92HD83XXX_PWR_REF,
STAC_92HD83XXX_MODELS STAC_92HD83XXX_MODELS
}; };
...@@ -334,7 +335,7 @@ static hda_nid_t stac92hd83xxx_slave_dig_outs[2] = { ...@@ -334,7 +335,7 @@ static hda_nid_t stac92hd83xxx_slave_dig_outs[2] = {
}; };
static unsigned int stac92hd83xxx_pwr_mapping[4] = { static unsigned int stac92hd83xxx_pwr_mapping[4] = {
0x03, 0x0c, 0x10, 0x40, 0x03, 0x0c, 0x20, 0x40,
}; };
static hda_nid_t stac92hd83xxx_amp_nids[1] = { static hda_nid_t stac92hd83xxx_amp_nids[1] = {
...@@ -841,10 +842,6 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = { ...@@ -841,10 +842,6 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
}; };
static struct hda_verb stac92hd83xxx_core_init[] = { static struct hda_verb stac92hd83xxx_core_init[] = {
/* start of config #1 */
{ 0xe, AC_VERB_SET_CONNECT_SEL, 0x3},
/* start of config #2 */
{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0}, { 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0}, { 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1}, { 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
...@@ -885,8 +882,8 @@ static struct hda_verb stac92hd71bxx_analog_core_init[] = { ...@@ -885,8 +882,8 @@ static struct hda_verb stac92hd71bxx_analog_core_init[] = {
static struct hda_verb stac925x_core_init[] = { static struct hda_verb stac925x_core_init[] = {
/* set dac0mux for dac converter */ /* set dac0mux for dac converter */
{ 0x06, AC_VERB_SET_CONNECT_SEL, 0x00}, { 0x06, AC_VERB_SET_CONNECT_SEL, 0x00},
/* unmute and set max the selector */ /* mute the master volume */
{ 0x0e, AC_VERB_SET_AMP_GAIN_MUTE, 0xb01f }, { 0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
{} {}
}; };
...@@ -1138,6 +1135,8 @@ static struct snd_kcontrol_new stac92hd71bxx_mixer[] = { ...@@ -1138,6 +1135,8 @@ static struct snd_kcontrol_new stac92hd71bxx_mixer[] = {
}; };
static struct snd_kcontrol_new stac925x_mixer[] = { static struct snd_kcontrol_new stac925x_mixer[] = {
HDA_CODEC_VOLUME("Master Playback Volume", 0x0e, 0, HDA_OUTPUT),
HDA_CODEC_MUTE("Master Playback Switch", 0x0e, 0, HDA_OUTPUT),
STAC_INPUT_SOURCE(1), STAC_INPUT_SOURCE(1),
HDA_CODEC_VOLUME("Capture Volume", 0x09, 0, HDA_OUTPUT), HDA_CODEC_VOLUME("Capture Volume", 0x09, 0, HDA_OUTPUT),
HDA_CODEC_MUTE("Capture Switch", 0x14, 0, HDA_OUTPUT), HDA_CODEC_MUTE("Capture Switch", 0x14, 0, HDA_OUTPUT),
...@@ -1736,10 +1735,12 @@ static unsigned int ref92hd83xxx_pin_configs[14] = { ...@@ -1736,10 +1735,12 @@ static unsigned int ref92hd83xxx_pin_configs[14] = {
static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = { static unsigned int *stac92hd83xxx_brd_tbl[STAC_92HD83XXX_MODELS] = {
[STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs, [STAC_92HD83XXX_REF] = ref92hd83xxx_pin_configs,
[STAC_92HD83XXX_PWR_REF] = ref92hd83xxx_pin_configs,
}; };
static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = { static const char *stac92hd83xxx_models[STAC_92HD83XXX_MODELS] = {
[STAC_92HD83XXX_REF] = "ref", [STAC_92HD83XXX_REF] = "ref",
[STAC_92HD83XXX_PWR_REF] = "mic-ref",
}; };
static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = {
...@@ -1799,6 +1800,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { ...@@ -1799,6 +1800,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
"HP dv5", STAC_HP_M4), "HP dv5", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4, SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f4,
"HP dv7", STAC_HP_M4), "HP dv7", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30f7,
"HP dv4", STAC_HP_DV5),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc, SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc,
"HP dv7", STAC_HP_M4), "HP dv7", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603, SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603,
...@@ -3573,13 +3576,12 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out ...@@ -3573,13 +3576,12 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
err = stac92xx_auto_fill_dac_nids(codec); err = stac92xx_auto_fill_dac_nids(codec);
if (err < 0) if (err < 0)
return err; return err;
err = stac92xx_auto_create_multi_out_ctls(codec,
&spec->autocfg);
if (err < 0)
return err;
} }
err = stac92xx_auto_create_multi_out_ctls(codec, &spec->autocfg);
if (err < 0)
return err;
/* setup analog beep controls */ /* setup analog beep controls */
if (spec->anabeep_nid > 0) { if (spec->anabeep_nid > 0) {
err = stac92xx_auto_create_beep_ctls(codec, err = stac92xx_auto_create_beep_ctls(codec,
...@@ -4753,7 +4755,9 @@ static struct hda_input_mux stac92hd83xxx_dmux = { ...@@ -4753,7 +4755,9 @@ static struct hda_input_mux stac92hd83xxx_dmux = {
static int patch_stac92hd83xxx(struct hda_codec *codec) static int patch_stac92hd83xxx(struct hda_codec *codec)
{ {
struct sigmatel_spec *spec; struct sigmatel_spec *spec;
hda_nid_t conn[STAC92HD83_DAC_COUNT + 1];
int err; int err;
int num_dacs;
spec = kzalloc(sizeof(*spec), GFP_KERNEL); spec = kzalloc(sizeof(*spec), GFP_KERNEL);
if (spec == NULL) if (spec == NULL)
...@@ -4772,15 +4776,16 @@ static int patch_stac92hd83xxx(struct hda_codec *codec) ...@@ -4772,15 +4776,16 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids); spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids);
spec->multiout.dac_nids = spec->dac_nids; spec->multiout.dac_nids = spec->dac_nids;
spec->init = stac92hd83xxx_core_init;
switch (codec->vendor_id) {
case 0x111d7605:
break;
default:
spec->num_pwrs--;
spec->init++; /* switch to config #2 */
}
/* set port 0xe to select the last DAC
*/
num_dacs = snd_hda_get_connections(codec, 0x0e,
conn, STAC92HD83_DAC_COUNT + 1) - 1;
snd_hda_codec_write_cache(codec, 0xe, 0,
AC_VERB_SET_CONNECT_SEL, num_dacs);
spec->init = stac92hd83xxx_core_init;
spec->mixer = stac92hd83xxx_mixer; spec->mixer = stac92hd83xxx_mixer;
spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids); spec->num_pins = ARRAY_SIZE(stac92hd83xxx_pin_nids);
spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids); spec->num_dmuxes = ARRAY_SIZE(stac92hd83xxx_dmux_nids);
...@@ -4806,6 +4811,15 @@ static int patch_stac92hd83xxx(struct hda_codec *codec) ...@@ -4806,6 +4811,15 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
return err; return err;
} }
switch (codec->vendor_id) {
case 0x111d7604:
case 0x111d7605:
if (spec->board_config == STAC_92HD83XXX_PWR_REF)
break;
spec->num_pwrs = 0;
break;
}
err = stac92xx_parse_auto_config(codec, 0x1d, 0); err = stac92xx_parse_auto_config(codec, 0x1d, 0);
if (!err) { if (!err) {
if (spec->board_config < 0) { if (spec->board_config < 0) {
......
...@@ -683,7 +683,7 @@ static void xonar_hdav_uart_input(struct oxygen *chip) ...@@ -683,7 +683,7 @@ static void xonar_hdav_uart_input(struct oxygen *chip)
if (chip->uart_input_count >= 2 && if (chip->uart_input_count >= 2 &&
chip->uart_input[chip->uart_input_count - 2] == 'O' && chip->uart_input[chip->uart_input_count - 2] == 'O' &&
chip->uart_input[chip->uart_input_count - 1] == 'K') { chip->uart_input[chip->uart_input_count - 1] == 'K') {
printk(KERN_DEBUG "message from Xonar HDAV HDMI chip received:"); printk(KERN_DEBUG "message from Xonar HDAV HDMI chip received:\n");
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
chip->uart_input, chip->uart_input_count); chip->uart_input, chip->uart_input_count);
chip->uart_input_count = 0; chip->uart_input_count = 0;
...@@ -908,6 +908,7 @@ static const struct oxygen_model model_xonar_hdav = { ...@@ -908,6 +908,7 @@ static const struct oxygen_model model_xonar_hdav = {
.dac_channels = 8, .dac_channels = 8,
.dac_volume_min = 0x0f, .dac_volume_min = 0x0f,
.dac_volume_max = 0xff, .dac_volume_max = 0xff,
.misc_flags = OXYGEN_MISC_MIDI,
.function_flags = OXYGEN_FUNCTION_2WIRE, .function_flags = OXYGEN_FUNCTION_2WIRE,
.dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
.adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST, .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
......
...@@ -44,8 +44,6 @@ ...@@ -44,8 +44,6 @@
#include <sound/pcm_params.h> #include <sound/pcm_params.h>
#include <sound/soc.h> #include <sound/soc.h>
#include <mach/hardware.h>
#include "atmel-pcm.h" #include "atmel-pcm.h"
......
...@@ -182,16 +182,6 @@ static struct snd_soc_ops mpc8610_hpcd_ops = { ...@@ -182,16 +182,6 @@ static struct snd_soc_ops mpc8610_hpcd_ops = {
.startup = mpc8610_hpcd_startup, .startup = mpc8610_hpcd_startup,
}; };
/**
* mpc8610_hpcd_machine: ASoC machine data
*/
static struct snd_soc_card mpc8610_hpcd_machine = {
.probe = mpc8610_hpcd_machine_probe,
.remove = mpc8610_hpcd_machine_remove,
.name = "MPC8610 HPCD",
.num_links = 1,
};
/** /**
* mpc8610_hpcd_probe: OF probe function for the fabric driver * mpc8610_hpcd_probe: OF probe function for the fabric driver
* *
...@@ -455,7 +445,11 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev, ...@@ -455,7 +445,11 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev,
machine_data->dai.codec_dai = &cs4270_dai; /* The codec_dai we want */ machine_data->dai.codec_dai = &cs4270_dai; /* The codec_dai we want */
machine_data->dai.ops = &mpc8610_hpcd_ops; machine_data->dai.ops = &mpc8610_hpcd_ops;
mpc8610_hpcd_machine.dai_link = &machine_data->dai; machine_data->machine.probe = mpc8610_hpcd_machine_probe;
machine_data->machine.remove = mpc8610_hpcd_machine_remove;
machine_data->machine.name = "MPC8610 HPCD";
machine_data->machine.num_links = 1;
machine_data->machine.dai_link = &machine_data->dai;
/* Allocate a new audio platform device structure */ /* Allocate a new audio platform device structure */
sound_device = platform_device_alloc("soc-audio", -1); sound_device = platform_device_alloc("soc-audio", -1);
...@@ -465,7 +459,7 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev, ...@@ -465,7 +459,7 @@ static int mpc8610_hpcd_probe(struct of_device *ofdev,
goto error; goto error;
} }
machine_data->sound_devdata.card = &mpc8610_hpcd_machine; machine_data->sound_devdata.card = &machine_data->machine;
machine_data->sound_devdata.codec_dev = &soc_codec_device_cs4270; machine_data->sound_devdata.codec_dev = &soc_codec_device_cs4270;
machine_data->machine.platform = &fsl_soc_platform; machine_data->machine.platform = &fsl_soc_platform;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment