diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/drivers/pcsp/pcsp.c | 1 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 23 | ||||
-rw-r--r-- | sound/soc/omap/omap-pcm.c | 2 |
3 files changed, 23 insertions, 3 deletions
diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c index 1899cf0685bc..8e52b2a8a13a 100644 --- a/sound/drivers/pcsp/pcsp.c +++ b/sound/drivers/pcsp/pcsp.c | |||
@@ -96,7 +96,6 @@ static int __devinit snd_card_pcsp_probe(int devnum, struct device *dev) | |||
96 | return -EINVAL; | 96 | return -EINVAL; |
97 | 97 | ||
98 | hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 98 | hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
99 | pcsp_chip.timer.cb_mode = HRTIMER_CB_SOFTIRQ; | ||
100 | pcsp_chip.timer.function = pcsp_do_timer; | 99 | pcsp_chip.timer.function = pcsp_do_timer; |
101 | 100 | ||
102 | card = snd_card_new(index, id, THIS_MODULE, 0); | 101 | card = snd_card_new(index, id, THIS_MODULE, 0); |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 5dd3e89f620a..b77f330d2650 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -69,6 +69,7 @@ enum { | |||
69 | }; | 69 | }; |
70 | 70 | ||
71 | enum { | 71 | enum { |
72 | STAC_92HD73XX_NO_JD, /* no jack-detection */ | ||
72 | STAC_92HD73XX_REF, | 73 | STAC_92HD73XX_REF, |
73 | STAC_DELL_M6_AMIC, | 74 | STAC_DELL_M6_AMIC, |
74 | STAC_DELL_M6_DMIC, | 75 | STAC_DELL_M6_DMIC, |
@@ -127,6 +128,7 @@ enum { | |||
127 | }; | 128 | }; |
128 | 129 | ||
129 | enum { | 130 | enum { |
131 | STAC_D965_REF_NO_JD, /* no jack-detection */ | ||
130 | STAC_D965_REF, | 132 | STAC_D965_REF, |
131 | STAC_D965_3ST, | 133 | STAC_D965_3ST, |
132 | STAC_D965_5ST, | 134 | STAC_D965_5ST, |
@@ -857,6 +859,7 @@ static struct hda_verb stac92hd83xxx_core_init[] = { | |||
857 | 859 | ||
858 | /* power state controls amps */ | 860 | /* power state controls amps */ |
859 | { 0x01, AC_VERB_SET_EAPD, 1 << 2}, | 861 | { 0x01, AC_VERB_SET_EAPD, 1 << 2}, |
862 | {} | ||
860 | }; | 863 | }; |
861 | 864 | ||
862 | static struct hda_verb stac92hd71bxx_core_init[] = { | 865 | static struct hda_verb stac92hd71bxx_core_init[] = { |
@@ -868,6 +871,7 @@ static struct hda_verb stac92hd71bxx_core_init[] = { | |||
868 | { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 871 | { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
869 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 872 | { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
870 | { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, | 873 | { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, |
874 | {} | ||
871 | }; | 875 | }; |
872 | 876 | ||
873 | #define HD_DISABLE_PORTF 2 | 877 | #define HD_DISABLE_PORTF 2 |
@@ -1611,6 +1615,7 @@ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { | |||
1611 | }; | 1615 | }; |
1612 | 1616 | ||
1613 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { | 1617 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { |
1618 | [STAC_92HD73XX_NO_JD] = "no-jd", | ||
1614 | [STAC_92HD73XX_REF] = "ref", | 1619 | [STAC_92HD73XX_REF] = "ref", |
1615 | [STAC_DELL_M6_AMIC] = "dell-m6-amic", | 1620 | [STAC_DELL_M6_AMIC] = "dell-m6-amic", |
1616 | [STAC_DELL_M6_DMIC] = "dell-m6-dmic", | 1621 | [STAC_DELL_M6_DMIC] = "dell-m6-dmic", |
@@ -1640,6 +1645,8 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { | |||
1640 | "unknown Dell", STAC_DELL_M6_DMIC), | 1645 | "unknown Dell", STAC_DELL_M6_DMIC), |
1641 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, | 1646 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, |
1642 | "Dell Studio 1537", STAC_DELL_M6_DMIC), | 1647 | "Dell Studio 1537", STAC_DELL_M6_DMIC), |
1648 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a0, | ||
1649 | "Dell Studio 17", STAC_DELL_M6_DMIC), | ||
1643 | {} /* terminator */ | 1650 | {} /* terminator */ |
1644 | }; | 1651 | }; |
1645 | 1652 | ||
@@ -1662,6 +1669,7 @@ static struct snd_pci_quirk stac92hd83xxx_cfg_tbl[] = { | |||
1662 | /* SigmaTel reference board */ | 1669 | /* SigmaTel reference board */ |
1663 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, | 1670 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, |
1664 | "DFI LanParty", STAC_92HD71BXX_REF), | 1671 | "DFI LanParty", STAC_92HD71BXX_REF), |
1672 | {} /* terminator */ | ||
1665 | }; | 1673 | }; |
1666 | 1674 | ||
1667 | static unsigned int ref92hd71bxx_pin_configs[11] = { | 1675 | static unsigned int ref92hd71bxx_pin_configs[11] = { |
@@ -2027,6 +2035,7 @@ static unsigned int dell_3st_pin_configs[14] = { | |||
2027 | }; | 2035 | }; |
2028 | 2036 | ||
2029 | static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { | 2037 | static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { |
2038 | [STAC_D965_REF_NO_JD] = ref927x_pin_configs, | ||
2030 | [STAC_D965_REF] = ref927x_pin_configs, | 2039 | [STAC_D965_REF] = ref927x_pin_configs, |
2031 | [STAC_D965_3ST] = d965_3st_pin_configs, | 2040 | [STAC_D965_3ST] = d965_3st_pin_configs, |
2032 | [STAC_D965_5ST] = d965_5st_pin_configs, | 2041 | [STAC_D965_5ST] = d965_5st_pin_configs, |
@@ -2035,6 +2044,7 @@ static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { | |||
2035 | }; | 2044 | }; |
2036 | 2045 | ||
2037 | static const char *stac927x_models[STAC_927X_MODELS] = { | 2046 | static const char *stac927x_models[STAC_927X_MODELS] = { |
2047 | [STAC_D965_REF_NO_JD] = "ref-no-jd", | ||
2038 | [STAC_D965_REF] = "ref", | 2048 | [STAC_D965_REF] = "ref", |
2039 | [STAC_D965_3ST] = "3stack", | 2049 | [STAC_D965_3ST] = "3stack", |
2040 | [STAC_D965_5ST] = "5stack", | 2050 | [STAC_D965_5ST] = "5stack", |
@@ -2896,7 +2906,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec, | |||
2896 | } | 2906 | } |
2897 | 2907 | ||
2898 | if ((spec->multiout.num_dacs - cfg->line_outs) > 0 && | 2908 | if ((spec->multiout.num_dacs - cfg->line_outs) > 0 && |
2899 | cfg->hp_outs && !spec->multiout.hp_nid) | 2909 | cfg->hp_outs == 1 && !spec->multiout.hp_nid) |
2900 | spec->multiout.hp_nid = nid; | 2910 | spec->multiout.hp_nid = nid; |
2901 | 2911 | ||
2902 | if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) { | 2912 | if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) { |
@@ -4254,14 +4264,17 @@ again: | |||
4254 | 4264 | ||
4255 | switch (spec->multiout.num_dacs) { | 4265 | switch (spec->multiout.num_dacs) { |
4256 | case 0x3: /* 6 Channel */ | 4266 | case 0x3: /* 6 Channel */ |
4267 | spec->multiout.hp_nid = 0x17; | ||
4257 | spec->mixer = stac92hd73xx_6ch_mixer; | 4268 | spec->mixer = stac92hd73xx_6ch_mixer; |
4258 | spec->init = stac92hd73xx_6ch_core_init; | 4269 | spec->init = stac92hd73xx_6ch_core_init; |
4259 | break; | 4270 | break; |
4260 | case 0x4: /* 8 Channel */ | 4271 | case 0x4: /* 8 Channel */ |
4272 | spec->multiout.hp_nid = 0x18; | ||
4261 | spec->mixer = stac92hd73xx_8ch_mixer; | 4273 | spec->mixer = stac92hd73xx_8ch_mixer; |
4262 | spec->init = stac92hd73xx_8ch_core_init; | 4274 | spec->init = stac92hd73xx_8ch_core_init; |
4263 | break; | 4275 | break; |
4264 | case 0x5: /* 10 Channel */ | 4276 | case 0x5: /* 10 Channel */ |
4277 | spec->multiout.hp_nid = 0x19; | ||
4265 | spec->mixer = stac92hd73xx_10ch_mixer; | 4278 | spec->mixer = stac92hd73xx_10ch_mixer; |
4266 | spec->init = stac92hd73xx_10ch_core_init; | 4279 | spec->init = stac92hd73xx_10ch_core_init; |
4267 | }; | 4280 | }; |
@@ -4297,6 +4310,7 @@ again: | |||
4297 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; | 4310 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; |
4298 | spec->eapd_switch = 0; | 4311 | spec->eapd_switch = 0; |
4299 | spec->num_amps = 1; | 4312 | spec->num_amps = 1; |
4313 | spec->multiout.hp_nid = 0; /* dual HPs */ | ||
4300 | 4314 | ||
4301 | if (!spec->init) | 4315 | if (!spec->init) |
4302 | spec->init = dell_m6_core_init; | 4316 | spec->init = dell_m6_core_init; |
@@ -4351,6 +4365,9 @@ again: | |||
4351 | return err; | 4365 | return err; |
4352 | } | 4366 | } |
4353 | 4367 | ||
4368 | if (spec->board_config == STAC_92HD73XX_NO_JD) | ||
4369 | spec->hp_detect = 0; | ||
4370 | |||
4354 | codec->patch_ops = stac92xx_patch_ops; | 4371 | codec->patch_ops = stac92xx_patch_ops; |
4355 | 4372 | ||
4356 | return 0; | 4373 | return 0; |
@@ -4899,6 +4916,10 @@ static int patch_stac927x(struct hda_codec *codec) | |||
4899 | */ | 4916 | */ |
4900 | codec->bus->needs_damn_long_delay = 1; | 4917 | codec->bus->needs_damn_long_delay = 1; |
4901 | 4918 | ||
4919 | /* no jack detecion for ref-no-jd model */ | ||
4920 | if (spec->board_config == STAC_D965_REF_NO_JD) | ||
4921 | spec->hp_detect = 0; | ||
4922 | |||
4902 | return 0; | 4923 | return 0; |
4903 | } | 4924 | } |
4904 | 4925 | ||
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index e9084fdd2082..acd68efb2b75 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c | |||
@@ -233,7 +233,7 @@ static int omap_pcm_open(struct snd_pcm_substream *substream) | |||
233 | if (ret < 0) | 233 | if (ret < 0) |
234 | goto out; | 234 | goto out; |
235 | 235 | ||
236 | prtd = kzalloc(sizeof(prtd), GFP_KERNEL); | 236 | prtd = kzalloc(sizeof(*prtd), GFP_KERNEL); |
237 | if (prtd == NULL) { | 237 | if (prtd == NULL) { |
238 | ret = -ENOMEM; | 238 | ret = -ENOMEM; |
239 | goto out; | 239 | goto out; |