diff options
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 8 | ||||
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 1 | ||||
| -rw-r--r-- | sound/soc/codecs/ssm2602.c | 3 | ||||
| -rw-r--r-- | sound/soc/omap/omap-mcbsp.c | 6 | ||||
| -rw-r--r-- | sound/usb/card.c | 8 |
5 files changed, 21 insertions, 5 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0503c999e7d3..7a73621a8909 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -578,6 +578,10 @@ static void alc_line_automute(struct hda_codec *codec) | |||
| 578 | { | 578 | { |
| 579 | struct alc_spec *spec = codec->spec; | 579 | struct alc_spec *spec = codec->spec; |
| 580 | 580 | ||
| 581 | /* check LO jack only when it's different from HP */ | ||
| 582 | if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0]) | ||
| 583 | return; | ||
| 584 | |||
| 581 | spec->line_jack_present = | 585 | spec->line_jack_present = |
| 582 | detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins), | 586 | detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins), |
| 583 | spec->autocfg.line_out_pins); | 587 | spec->autocfg.line_out_pins); |
| @@ -1321,7 +1325,9 @@ do_sku: | |||
| 1321 | * 15 : 1 --> enable the function "Mute internal speaker | 1325 | * 15 : 1 --> enable the function "Mute internal speaker |
| 1322 | * when the external headphone out jack is plugged" | 1326 | * when the external headphone out jack is plugged" |
| 1323 | */ | 1327 | */ |
| 1324 | if (!spec->autocfg.hp_pins[0]) { | 1328 | if (!spec->autocfg.hp_pins[0] && |
| 1329 | !(spec->autocfg.line_out_pins[0] && | ||
| 1330 | spec->autocfg.line_out_type == AUTO_PIN_HP_OUT)) { | ||
| 1325 | hda_nid_t nid; | 1331 | hda_nid_t nid; |
| 1326 | tmp = (ass >> 11) & 0x3; /* HP to chassis */ | 1332 | tmp = (ass >> 11) & 0x3; /* HP to chassis */ |
| 1327 | if (tmp == 0) | 1333 | if (tmp == 0) |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 1b7c11432aa7..987e3cf71a0b 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
| @@ -5630,6 +5630,7 @@ again: | |||
| 5630 | switch (codec->vendor_id) { | 5630 | switch (codec->vendor_id) { |
| 5631 | case 0x111d76d1: | 5631 | case 0x111d76d1: |
| 5632 | case 0x111d76d9: | 5632 | case 0x111d76d9: |
| 5633 | case 0x111d76df: | ||
| 5633 | case 0x111d76e5: | 5634 | case 0x111d76e5: |
| 5634 | case 0x111d7666: | 5635 | case 0x111d7666: |
| 5635 | case 0x111d7667: | 5636 | case 0x111d7667: |
diff --git a/sound/soc/codecs/ssm2602.c b/sound/soc/codecs/ssm2602.c index 84f4ad568556..9801cd7cfcb5 100644 --- a/sound/soc/codecs/ssm2602.c +++ b/sound/soc/codecs/ssm2602.c | |||
| @@ -431,7 +431,8 @@ static int ssm2602_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
| 431 | static int ssm2602_set_bias_level(struct snd_soc_codec *codec, | 431 | static int ssm2602_set_bias_level(struct snd_soc_codec *codec, |
| 432 | enum snd_soc_bias_level level) | 432 | enum snd_soc_bias_level level) |
| 433 | { | 433 | { |
| 434 | u16 reg = snd_soc_read(codec, SSM2602_PWR) & 0xff7f; | 434 | u16 reg = snd_soc_read(codec, SSM2602_PWR); |
| 435 | reg &= ~(PWR_POWER_OFF | PWR_OSC_PDN); | ||
| 435 | 436 | ||
| 436 | switch (level) { | 437 | switch (level) { |
| 437 | case SND_SOC_BIAS_ON: | 438 | case SND_SOC_BIAS_ON: |
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index ebcc2d4d2b18..478d60778453 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c | |||
| @@ -516,6 +516,12 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai, | |||
| 516 | struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs; | 516 | struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs; |
| 517 | int err = 0; | 517 | int err = 0; |
| 518 | 518 | ||
| 519 | if (mcbsp_data->active) | ||
| 520 | if (freq == mcbsp_data->in_freq) | ||
| 521 | return 0; | ||
| 522 | else | ||
| 523 | return -EBUSY; | ||
| 524 | |||
| 519 | /* The McBSP signal muxing functions are only available on McBSP1 */ | 525 | /* The McBSP signal muxing functions are only available on McBSP1 */ |
| 520 | if (clk_id == OMAP_MCBSP_CLKR_SRC_CLKR || | 526 | if (clk_id == OMAP_MCBSP_CLKR_SRC_CLKR || |
| 521 | clk_id == OMAP_MCBSP_CLKR_SRC_CLKX || | 527 | clk_id == OMAP_MCBSP_CLKR_SRC_CLKX || |
diff --git a/sound/usb/card.c b/sound/usb/card.c index ed120ca2353d..d8f2bf401458 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c | |||
| @@ -530,9 +530,11 @@ snd_usb_audio_probe(struct usb_device *dev, | |||
| 530 | return chip; | 530 | return chip; |
| 531 | 531 | ||
| 532 | __error: | 532 | __error: |
| 533 | if (chip && !chip->num_interfaces) | 533 | if (chip) { |
| 534 | snd_card_free(chip->card); | 534 | if (!chip->num_interfaces) |
| 535 | chip->probing = 0; | 535 | snd_card_free(chip->card); |
| 536 | chip->probing = 0; | ||
| 537 | } | ||
| 536 | mutex_unlock(®ister_mutex); | 538 | mutex_unlock(®ister_mutex); |
| 537 | __err_val: | 539 | __err_val: |
| 538 | return NULL; | 540 | return NULL; |
