Commit 058e0676 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://github.com/tiwai/sound

* 'for-linus' of git://github.com/tiwai/sound:
  ASoC: ssm2602: Re-enable oscillator after suspend
  ALSA: usb-audio: Check for possible chip NULL pointer before clearing probing flag
  ALSA: hda/realtek - Don't detect LO jack when identical with HP
  ALSA: hda/realtek - Avoid bogus HP-pin assignment
  ALSA: HDA: No power nids on 92HD93
  ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active
parents 57119327 0fac2590
...@@ -578,6 +578,10 @@ static void alc_line_automute(struct hda_codec *codec) ...@@ -578,6 +578,10 @@ static void alc_line_automute(struct hda_codec *codec)
{ {
struct alc_spec *spec = codec->spec; struct alc_spec *spec = codec->spec;
/* check LO jack only when it's different from HP */
if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0])
return;
spec->line_jack_present = spec->line_jack_present =
detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins), detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
spec->autocfg.line_out_pins); spec->autocfg.line_out_pins);
...@@ -1321,7 +1325,9 @@ do_sku: ...@@ -1321,7 +1325,9 @@ do_sku:
* 15 : 1 --> enable the function "Mute internal speaker * 15 : 1 --> enable the function "Mute internal speaker
* when the external headphone out jack is plugged" * when the external headphone out jack is plugged"
*/ */
if (!spec->autocfg.hp_pins[0]) { if (!spec->autocfg.hp_pins[0] &&
!(spec->autocfg.line_out_pins[0] &&
spec->autocfg.line_out_type == AUTO_PIN_HP_OUT)) {
hda_nid_t nid; hda_nid_t nid;
tmp = (ass >> 11) & 0x3; /* HP to chassis */ tmp = (ass >> 11) & 0x3; /* HP to chassis */
if (tmp == 0) if (tmp == 0)
......
...@@ -5630,6 +5630,7 @@ again: ...@@ -5630,6 +5630,7 @@ again:
switch (codec->vendor_id) { switch (codec->vendor_id) {
case 0x111d76d1: case 0x111d76d1:
case 0x111d76d9: case 0x111d76d9:
case 0x111d76df:
case 0x111d76e5: case 0x111d76e5:
case 0x111d7666: case 0x111d7666:
case 0x111d7667: case 0x111d7667:
......
...@@ -431,7 +431,8 @@ static int ssm2602_set_dai_fmt(struct snd_soc_dai *codec_dai, ...@@ -431,7 +431,8 @@ static int ssm2602_set_dai_fmt(struct snd_soc_dai *codec_dai,
static int ssm2602_set_bias_level(struct snd_soc_codec *codec, static int ssm2602_set_bias_level(struct snd_soc_codec *codec,
enum snd_soc_bias_level level) enum snd_soc_bias_level level)
{ {
u16 reg = snd_soc_read(codec, SSM2602_PWR) & 0xff7f; u16 reg = snd_soc_read(codec, SSM2602_PWR);
reg &= ~(PWR_POWER_OFF | PWR_OSC_PDN);
switch (level) { switch (level) {
case SND_SOC_BIAS_ON: case SND_SOC_BIAS_ON:
......
...@@ -516,6 +516,12 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai, ...@@ -516,6 +516,12 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs; struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs;
int err = 0; int err = 0;
if (mcbsp_data->active)
if (freq == mcbsp_data->in_freq)
return 0;
else
return -EBUSY;
/* The McBSP signal muxing functions are only available on McBSP1 */ /* The McBSP signal muxing functions are only available on McBSP1 */
if (clk_id == OMAP_MCBSP_CLKR_SRC_CLKR || if (clk_id == OMAP_MCBSP_CLKR_SRC_CLKR ||
clk_id == OMAP_MCBSP_CLKR_SRC_CLKX || clk_id == OMAP_MCBSP_CLKR_SRC_CLKX ||
......
...@@ -530,9 +530,11 @@ snd_usb_audio_probe(struct usb_device *dev, ...@@ -530,9 +530,11 @@ snd_usb_audio_probe(struct usb_device *dev,
return chip; return chip;
__error: __error:
if (chip && !chip->num_interfaces) if (chip) {
if (!chip->num_interfaces)
snd_card_free(chip->card); snd_card_free(chip->card);
chip->probing = 0; chip->probing = 0;
}
mutex_unlock(&register_mutex); mutex_unlock(&register_mutex);
__err_val: __err_val:
return NULL; return NULL;
......
Supports Markdown
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