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: ALSA: Remove unneeded version.h includes from sound/ ASoC: pxa-ssp: Correct check for stream presence ASoC: imx: add missing module informations ASoC: imx: Remove unused Kconfig SND_MXC_SOC_SSI entry ALSA: HDA: Pinfix quirk for HP Z200 Workstation ALSA: VIA HDA: Create a master amplifier control for VT1718S. ALSA: VIA HDA: Mute/unmute mixer conncted to Headphone for VT1718S. ALSA: VIA HDA: Modify initial verbs list for VT1718S. ALSA: hda - Remove ALC268 model override for CPR2000 ALSA: HDA: Remove quirk for an HP device ASoC: Remove unused and about to be broken SND_SOC_CUSTOM I/O bus
This commit is contained in:
commit
4d362ad280
|
@ -248,8 +248,7 @@ typedef int (*hw_write_t)(void *,const char* ,int);
|
|||
extern struct snd_ac97_bus_ops soc_ac97_ops;
|
||||
|
||||
enum snd_soc_control_type {
|
||||
SND_SOC_CUSTOM = 1,
|
||||
SND_SOC_I2C,
|
||||
SND_SOC_I2C = 1,
|
||||
SND_SOC_SPI,
|
||||
};
|
||||
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
#include "hpioctl.h"
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
@ -4883,7 +4883,6 @@ static const struct snd_pci_quirk alc880_cfg_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1025, 0xe309, "ULI", ALC880_3ST_DIG),
|
||||
SND_PCI_QUIRK(0x1025, 0xe310, "ULI", ALC880_3ST),
|
||||
SND_PCI_QUIRK(0x1039, 0x1234, NULL, ALC880_6ST_DIG),
|
||||
SND_PCI_QUIRK(0x103c, 0x2a09, "HP", ALC880_5ST),
|
||||
SND_PCI_QUIRK(0x1043, 0x10b3, "ASUS W1V", ALC880_ASUS_W1V),
|
||||
SND_PCI_QUIRK(0x1043, 0x10c2, "ASUS W6A", ALC880_ASUS_DIG),
|
||||
SND_PCI_QUIRK(0x1043, 0x10c3, "ASUS Wxx", ALC880_ASUS_DIG),
|
||||
|
@ -12600,6 +12599,7 @@ static const struct hda_verb alc262_toshiba_rx1_unsol_verbs[] = {
|
|||
*/
|
||||
enum {
|
||||
PINFIX_FSC_H270,
|
||||
PINFIX_HP_Z200,
|
||||
};
|
||||
|
||||
static const struct alc_fixup alc262_fixups[] = {
|
||||
|
@ -12612,9 +12612,17 @@ static const struct alc_fixup alc262_fixups[] = {
|
|||
{ }
|
||||
}
|
||||
},
|
||||
[PINFIX_HP_Z200] = {
|
||||
.type = ALC_FIXUP_PINS,
|
||||
.v.pins = (const struct alc_pincfg[]) {
|
||||
{ 0x16, 0x99130120 }, /* internal speaker */
|
||||
{ }
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk alc262_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x103c, 0x170b, "HP Z200", PINFIX_HP_Z200),
|
||||
SND_PCI_QUIRK(0x1734, 0x1147, "FSC Celsius H270", PINFIX_FSC_H270),
|
||||
{}
|
||||
};
|
||||
|
@ -12731,6 +12739,8 @@ static const struct snd_pci_quirk alc262_cfg_tbl[] = {
|
|||
ALC262_HP_BPC),
|
||||
SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1500, "HP z series",
|
||||
ALC262_HP_BPC),
|
||||
SND_PCI_QUIRK(0x103c, 0x170b, "HP Z200",
|
||||
ALC262_AUTO),
|
||||
SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x1700, "HP xw series",
|
||||
ALC262_HP_BPC),
|
||||
SND_PCI_QUIRK(0x103c, 0x2800, "HP D7000", ALC262_HP_BPC_D7000_WL),
|
||||
|
@ -13872,7 +13882,6 @@ static const struct snd_pci_quirk alc268_cfg_tbl[] = {
|
|||
SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
|
||||
SND_PCI_QUIRK(0x1170, 0x0040, "ZEPTO", ALC268_ZEPTO),
|
||||
SND_PCI_QUIRK(0x14c0, 0x0025, "COMPAL IFL90/JFL-92", ALC268_TOSHIBA),
|
||||
SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER),
|
||||
SND_PCI_QUIRK(0x152d, 0x0771, "Quanta IL1", ALC267_QUANTA_IL1),
|
||||
{}
|
||||
};
|
||||
|
|
|
@ -745,12 +745,23 @@ static int via_independent_hp_put(struct snd_kcontrol *kcontrol,
|
|||
struct via_spec *spec = codec->spec;
|
||||
hda_nid_t nid = kcontrol->private_value;
|
||||
unsigned int pinsel = ucontrol->value.enumerated.item[0];
|
||||
unsigned int parm0, parm1;
|
||||
/* Get Independent Mode index of headphone pin widget */
|
||||
spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel
|
||||
? 1 : 0;
|
||||
if (spec->codec_type == VT1718S)
|
||||
if (spec->codec_type == VT1718S) {
|
||||
snd_hda_codec_write(codec, nid, 0,
|
||||
AC_VERB_SET_CONNECT_SEL, pinsel ? 2 : 0);
|
||||
/* Set correct mute switch for MW3 */
|
||||
parm0 = spec->hp_independent_mode ?
|
||||
AMP_IN_UNMUTE(0) : AMP_IN_MUTE(0);
|
||||
parm1 = spec->hp_independent_mode ?
|
||||
AMP_IN_MUTE(1) : AMP_IN_UNMUTE(1);
|
||||
snd_hda_codec_write(codec, 0x1b, 0,
|
||||
AC_VERB_SET_AMP_GAIN_MUTE, parm0);
|
||||
snd_hda_codec_write(codec, 0x1b, 0,
|
||||
AC_VERB_SET_AMP_GAIN_MUTE, parm1);
|
||||
}
|
||||
else
|
||||
snd_hda_codec_write(codec, nid, 0,
|
||||
AC_VERB_SET_CONNECT_SEL, pinsel);
|
||||
|
@ -4283,9 +4294,6 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
|
|||
{0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
|
||||
{0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
|
||||
{0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(5)},
|
||||
|
||||
/* Setup default input of Front HP to MW9 */
|
||||
{0x28, AC_VERB_SET_CONNECT_SEL, 0x1},
|
||||
/* PW9 PW10 Output enable */
|
||||
{0x2d, AC_VERB_SET_PIN_WIDGET_CONTROL, AC_PINCTL_OUT_EN},
|
||||
{0x2e, AC_VERB_SET_PIN_WIDGET_CONTROL, AC_PINCTL_OUT_EN},
|
||||
|
@ -4294,10 +4302,10 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
|
|||
/* Enable Boost Volume backdoor */
|
||||
{0x1, 0xf88, 0x8},
|
||||
/* MW0/1/2/3/4: un-mute index 0 (AOWx), mute index 1 (MW9) */
|
||||
{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
|
||||
{0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
|
||||
{0x1c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
|
||||
{0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
|
||||
|
@ -4307,8 +4315,6 @@ static const struct hda_verb vt1718S_volume_init_verbs[] = {
|
|||
/* set MUX1 = 2 (AOW4), MUX2 = 1 (AOW3) */
|
||||
{0x34, AC_VERB_SET_CONNECT_SEL, 0x2},
|
||||
{0x35, AC_VERB_SET_CONNECT_SEL, 0x1},
|
||||
/* Unmute MW4's index 0 */
|
||||
{0x1c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
|
||||
{ }
|
||||
};
|
||||
|
||||
|
@ -4456,6 +4462,19 @@ static int vt1718S_auto_create_multi_out_ctls(struct via_spec *spec,
|
|||
if (err < 0)
|
||||
return err;
|
||||
} else if (i == AUTO_SEQ_FRONT) {
|
||||
/* add control to mixer index 0 */
|
||||
err = via_add_control(spec, VIA_CTL_WIDGET_VOL,
|
||||
"Master Front Playback Volume",
|
||||
HDA_COMPOSE_AMP_VAL(0x21, 3, 5,
|
||||
HDA_INPUT));
|
||||
if (err < 0)
|
||||
return err;
|
||||
err = via_add_control(spec, VIA_CTL_WIDGET_MUTE,
|
||||
"Master Front Playback Switch",
|
||||
HDA_COMPOSE_AMP_VAL(0x21, 3, 5,
|
||||
HDA_INPUT));
|
||||
if (err < 0)
|
||||
return err;
|
||||
/* Front */
|
||||
sprintf(name, "%s Playback Volume", chname[i]);
|
||||
err = via_add_control(
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
|
|
|
@ -11,9 +11,6 @@ menuconfig SND_IMX_SOC
|
|||
|
||||
if SND_IMX_SOC
|
||||
|
||||
config SND_MXC_SOC_SSI
|
||||
tristate
|
||||
|
||||
config SND_MXC_SOC_FIQ
|
||||
tristate
|
||||
|
||||
|
@ -24,7 +21,6 @@ config SND_MXC_SOC_WM1133_EV1
|
|||
tristate "Audio on the the i.MX31ADS with WM1133-EV1 fitted"
|
||||
depends on MACH_MX31ADS_WM1133_EV1 && EXPERIMENTAL
|
||||
select SND_SOC_WM8350
|
||||
select SND_MXC_SOC_SSI
|
||||
select SND_MXC_SOC_FIQ
|
||||
help
|
||||
Enable support for audio on the i.MX31ADS with the WM1133-EV1
|
||||
|
@ -34,7 +30,6 @@ config SND_SOC_MX27VIS_AIC32X4
|
|||
tristate "SoC audio support for Visstrim M10 boards"
|
||||
depends on MACH_IMX27_VISSTRIM_M10
|
||||
select SND_SOC_TVL320AIC32X4
|
||||
select SND_MXC_SOC_SSI
|
||||
select SND_MXC_SOC_MX2
|
||||
help
|
||||
Say Y if you want to add support for SoC audio on Visstrim SM10
|
||||
|
@ -44,7 +39,6 @@ config SND_SOC_PHYCORE_AC97
|
|||
tristate "SoC Audio support for Phytec phyCORE (and phyCARD) boards"
|
||||
depends on MACH_PCM043 || MACH_PCA100
|
||||
select SND_SOC_WM9712
|
||||
select SND_MXC_SOC_SSI
|
||||
select SND_MXC_SOC_FIQ
|
||||
help
|
||||
Say Y if you want to add support for SoC audio on Phytec phyCORE
|
||||
|
@ -57,7 +51,6 @@ config SND_SOC_EUKREA_TLV320
|
|||
|| MACH_EUKREA_MBIMXSD35_BASEBOARD \
|
||||
|| MACH_EUKREA_MBIMXSD51_BASEBOARD
|
||||
select SND_SOC_TLV320AIC23
|
||||
select SND_MXC_SOC_SSI
|
||||
select SND_MXC_SOC_FIQ
|
||||
help
|
||||
Enable I2S based access to the TLV320AIC23B codec attached
|
||||
|
|
|
@ -337,3 +337,5 @@ static void __exit snd_imx_pcm_exit(void)
|
|||
platform_driver_unregister(&imx_pcm_driver);
|
||||
}
|
||||
module_exit(snd_imx_pcm_exit);
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:imx-pcm-audio");
|
||||
|
|
|
@ -774,4 +774,4 @@ module_exit(imx_ssi_exit);
|
|||
MODULE_AUTHOR("Sascha Hauer, <s.hauer@pengutronix.de>");
|
||||
MODULE_DESCRIPTION("i.MX I2S/ac97 SoC Interface");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
MODULE_ALIAS("platform:imx-ssi");
|
||||
|
|
|
@ -95,14 +95,14 @@ static int pxa2xx_soc_pcm_new(struct snd_card *card, struct snd_soc_dai *dai,
|
|||
if (!card->dev->coherent_dma_mask)
|
||||
card->dev->coherent_dma_mask = DMA_BIT_MASK(32);
|
||||
|
||||
if (dai->driver->playback.channels_min) {
|
||||
if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) {
|
||||
ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
|
||||
SNDRV_PCM_STREAM_PLAYBACK);
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (dai->driver->capture.channels_min) {
|
||||
if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) {
|
||||
ret = pxa2xx_pcm_preallocate_dma_buffer(pcm,
|
||||
SNDRV_PCM_STREAM_CAPTURE);
|
||||
if (ret)
|
||||
|
|
|
@ -409,9 +409,6 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
|
|||
codec->bulk_write_raw = snd_soc_hw_bulk_write_raw;
|
||||
|
||||
switch (control) {
|
||||
case SND_SOC_CUSTOM:
|
||||
break;
|
||||
|
||||
case SND_SOC_I2C:
|
||||
#if defined(CONFIG_I2C) || (defined(CONFIG_I2C_MODULE) && defined(MODULE))
|
||||
codec->hw_write = (hw_write_t)i2c_master_send;
|
||||
|
|
Loading…
Reference in New Issue