Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"This time we got a slightly higher volume than previous times, but all
device-specific good fixes. Noticeable changes are fixes in davinci,
and the removal of open-codes in HD-audio ca0132 driver. The rest are
all small fixes and/or quirks"

* tag 'sound-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda - Enable front audio jacks on one HP desktop model
ALSA: hda/ca0132 - Fix recording from mode id 0x8
ALSA: hda/ca0132 - setup/cleanup streams
ALSA: hda - add headset mic detect quirks for two Dell laptops
ALSA: usb-audio: work around KEF X300A firmware bug
ASoC: max98090: make REVISION_ID readable
ASoC: txx9aclc_ac97: Fix kernel crash on probe
ASoC: max98090: sync regcache on entering STANDBY
ASoC: blackfin: Fix machine driver Kconfig dependencies
ASoC: da9055: Fix device registration of PMIC and CODEC devices
ASoC: fsl-esai: fix ESAI TDM slot setting
ASoC: fsl: fix pm support of machine drivers
ASoC: rt5640: Add ACPI ID for Intel Baytrail
ASoC: davinci-evm: Add pm callbacks to platform driver
ASoC: davinci-mcasp: Consolidate pm_runtime_get/put() use in the driver
ASoC: davinci-mcasp: Configure xxTDM, xxFMT and xxFMCT registers synchronously
ASoC: davinci-mcasp: Harmonize the sub hw_params function names
ASoC: samsung: Fix trivial typo
ASoC: samsung: Remove invalid dependencies
ASoC: wm8993: drop regulator_bulk_free of devm_ allocated data

+128 -143
+10 -2
drivers/mfd/da9055-i2c.c
··· 53 53 return 0; 54 54 } 55 55 56 + /* 57 + * DO NOT change the device Ids. The naming is intentionally specific as both 58 + * the PMIC and CODEC parts of this chip are instantiated separately as I2C 59 + * devices (both have configurable I2C addresses, and are to all intents and 60 + * purposes separate). As a result there are specific DA9055 ids for PMIC 61 + * and CODEC, which must be different to operate together. 62 + */ 56 63 static struct i2c_device_id da9055_i2c_id[] = { 57 - {"da9055", 0}, 64 + {"da9055-pmic", 0}, 58 65 { } 59 66 }; 67 + MODULE_DEVICE_TABLE(i2c, da9055_i2c_id); 60 68 61 69 static struct i2c_driver da9055_i2c_driver = { 62 70 .probe = da9055_i2c_probe, 63 71 .remove = da9055_i2c_remove, 64 72 .id_table = da9055_i2c_id, 65 73 .driver = { 66 - .name = "da9055", 74 + .name = "da9055-pmic", 67 75 .owner = THIS_MODULE, 68 76 }, 69 77 };
+7 -61
sound/pci/hda/patch_ca0132.c
··· 2662 2662 } 2663 2663 2664 2664 /* 2665 - * PCM stuffs 2666 - */ 2667 - static void ca0132_setup_stream(struct hda_codec *codec, hda_nid_t nid, 2668 - u32 stream_tag, 2669 - int channel_id, int format) 2670 - { 2671 - unsigned int oldval, newval; 2672 - 2673 - if (!nid) 2674 - return; 2675 - 2676 - snd_printdd( 2677 - "ca0132_setup_stream: NID=0x%x, stream=0x%x, " 2678 - "channel=%d, format=0x%x\n", 2679 - nid, stream_tag, channel_id, format); 2680 - 2681 - /* update the format-id if changed */ 2682 - oldval = snd_hda_codec_read(codec, nid, 0, 2683 - AC_VERB_GET_STREAM_FORMAT, 2684 - 0); 2685 - if (oldval != format) { 2686 - msleep(20); 2687 - snd_hda_codec_write(codec, nid, 0, 2688 - AC_VERB_SET_STREAM_FORMAT, 2689 - format); 2690 - } 2691 - 2692 - oldval = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_CONV, 0); 2693 - newval = (stream_tag << 4) | channel_id; 2694 - if (oldval != newval) { 2695 - snd_hda_codec_write(codec, nid, 0, 2696 - AC_VERB_SET_CHANNEL_STREAMID, 2697 - newval); 2698 - } 2699 - } 2700 - 2701 - static void ca0132_cleanup_stream(struct hda_codec *codec, hda_nid_t nid) 2702 - { 2703 - unsigned int val; 2704 - 2705 - if (!nid) 2706 - return; 2707 - 2708 - snd_printdd(KERN_INFO "ca0132_cleanup_stream: NID=0x%x\n", nid); 2709 - 2710 - val = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_CONV, 0); 2711 - if (!val) 2712 - return; 2713 - 2714 - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_STREAM_FORMAT, 0); 2715 - snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CHANNEL_STREAMID, 0); 2716 - } 2717 - 2718 - /* 2719 2665 * PCM callbacks 2720 2666 */ 2721 2667 static int ca0132_playback_pcm_prepare(struct hda_pcm_stream *hinfo, ··· 2672 2726 { 2673 2727 struct ca0132_spec *spec = codec->spec; 2674 2728 2675 - ca0132_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); 2729 + snd_hda_codec_setup_stream(codec, spec->dacs[0], stream_tag, 0, format); 2676 2730 2677 2731 return 0; 2678 2732 } ··· 2691 2745 if (spec->effects_switch[PLAY_ENHANCEMENT - EFFECT_START_NID]) 2692 2746 msleep(50); 2693 2747 2694 - ca0132_cleanup_stream(codec, spec->dacs[0]); 2748 + snd_hda_codec_cleanup_stream(codec, spec->dacs[0]); 2695 2749 2696 2750 return 0; 2697 2751 } ··· 2768 2822 unsigned int format, 2769 2823 struct snd_pcm_substream *substream) 2770 2824 { 2771 - struct ca0132_spec *spec = codec->spec; 2772 - 2773 - ca0132_setup_stream(codec, spec->adcs[substream->number], 2774 - stream_tag, 0, format); 2825 + snd_hda_codec_setup_stream(codec, hinfo->nid, 2826 + stream_tag, 0, format); 2775 2827 2776 2828 return 0; 2777 2829 } ··· 2783 2839 if (spec->dsp_state == DSP_DOWNLOADING) 2784 2840 return 0; 2785 2841 2786 - ca0132_cleanup_stream(codec, hinfo->nid); 2842 + snd_hda_codec_cleanup_stream(codec, hinfo->nid); 2787 2843 return 0; 2788 2844 } 2789 2845 ··· 4686 4742 return err; 4687 4743 4688 4744 codec->patch_ops = ca0132_patch_ops; 4745 + codec->pcm_format_first = 1; 4746 + codec->no_sticky_stream = 1; 4689 4747 4690 4748 return 0; 4691 4749 }
+2
sound/pci/hda/patch_realtek.c
··· 4308 4308 SND_PCI_QUIRK(0x1028, 0x0651, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4309 4309 SND_PCI_QUIRK(0x1028, 0x0652, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4310 4310 SND_PCI_QUIRK(0x1028, 0x0653, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4311 + SND_PCI_QUIRK(0x1028, 0x0657, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4311 4312 SND_PCI_QUIRK(0x1028, 0x0658, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), 4313 + SND_PCI_QUIRK(0x1028, 0x065f, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4312 4314 SND_PCI_QUIRK(0x1028, 0x0662, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), 4313 4315 SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), 4314 4316 SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
+13
sound/pci/hda/patch_sigmatel.c
··· 83 83 STAC_DELL_M6_BOTH, 84 84 STAC_DELL_EQ, 85 85 STAC_ALIENWARE_M17X, 86 + STAC_92HD89XX_HP_FRONT_JACK, 86 87 STAC_92HD73XX_MODELS 87 88 }; 88 89 ··· 1796 1795 {} 1797 1796 }; 1798 1797 1798 + static const struct hda_pintbl stac92hd89xx_hp_front_jack_pin_configs[] = { 1799 + { 0x0a, 0x02214030 }, 1800 + { 0x0b, 0x02A19010 }, 1801 + {} 1802 + }; 1803 + 1799 1804 static void stac92hd73xx_fixup_ref(struct hda_codec *codec, 1800 1805 const struct hda_fixup *fix, int action) 1801 1806 { ··· 1920 1913 [STAC_92HD73XX_NO_JD] = { 1921 1914 .type = HDA_FIXUP_FUNC, 1922 1915 .v.func = stac92hd73xx_fixup_no_jd, 1916 + }, 1917 + [STAC_92HD89XX_HP_FRONT_JACK] = { 1918 + .type = HDA_FIXUP_PINS, 1919 + .v.pins = stac92hd89xx_hp_front_jack_pin_configs, 1923 1920 } 1924 1921 }; 1925 1922 ··· 1984 1973 "Alienware M17x", STAC_ALIENWARE_M17X), 1985 1974 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0490, 1986 1975 "Alienware M17x R3", STAC_DELL_EQ), 1976 + SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x2b17, 1977 + "unknown HP", STAC_92HD89XX_HP_FRONT_JACK), 1987 1978 {} /* terminator */ 1988 1979 }; 1989 1980
+5 -6
sound/soc/blackfin/Kconfig
··· 11 11 12 12 config SND_BF5XX_SOC_SSM2602 13 13 tristate "SoC SSM2602 Audio Codec Add-On Card support" 14 - depends on SND_BF5XX_I2S && (SPI_MASTER || I2C) 14 + depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI 15 15 select SND_BF5XX_SOC_I2S if !BF60x 16 16 select SND_BF6XX_SOC_I2S if BF60x 17 17 select SND_SOC_SSM2602 ··· 21 21 22 22 config SND_SOC_BFIN_EVAL_ADAU1701 23 23 tristate "Support for the EVAL-ADAU1701MINIZ board on Blackfin eval boards" 24 - depends on SND_BF5XX_I2S 24 + depends on SND_BF5XX_I2S && I2C 25 25 select SND_BF5XX_SOC_I2S 26 26 select SND_SOC_ADAU1701 27 - select I2C 28 27 help 29 28 Say Y if you want to add support for the Analog Devices EVAL-ADAU1701MINIZ 30 29 board connected to one of the Blackfin evaluation boards like the ··· 44 45 45 46 config SND_SOC_BFIN_EVAL_ADAV80X 46 47 tristate "Support for the EVAL-ADAV80X boards on Blackfin eval boards" 47 - depends on SND_BF5XX_I2S && (SPI_MASTER || I2C) 48 + depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI 48 49 select SND_BF5XX_SOC_I2S 49 50 select SND_SOC_ADAV80X 50 51 help ··· 57 58 58 59 config SND_BF5XX_SOC_AD1836 59 60 tristate "SoC AD1836 Audio support for BF5xx" 60 - depends on SND_BF5XX_I2S 61 + depends on SND_BF5XX_I2S && SPI_MASTER 61 62 select SND_BF5XX_SOC_I2S 62 63 select SND_SOC_AD1836 63 64 help ··· 65 66 66 67 config SND_BF5XX_SOC_AD193X 67 68 tristate "SoC AD193X Audio support for Blackfin" 68 - depends on SND_BF5XX_I2S 69 + depends on SND_BF5XX_I2S && SND_SOC_I2C_AND_SPI 69 70 select SND_BF5XX_SOC_I2S 70 71 select SND_SOC_AD193X 71 72 help
+9 -2
sound/soc/codecs/da9055.c
··· 1523 1523 return 0; 1524 1524 } 1525 1525 1526 + /* 1527 + * DO NOT change the device Ids. The naming is intentionally specific as both 1528 + * the CODEC and PMIC parts of this chip are instantiated separately as I2C 1529 + * devices (both have configurable I2C addresses, and are to all intents and 1530 + * purposes separate). As a result there are specific DA9055 Ids for CODEC 1531 + * and PMIC, which must be different to operate together. 1532 + */ 1526 1533 static const struct i2c_device_id da9055_i2c_id[] = { 1527 - { "da9055", 0 }, 1534 + { "da9055-codec", 0 }, 1528 1535 { } 1529 1536 }; 1530 1537 MODULE_DEVICE_TABLE(i2c, da9055_i2c_id); ··· 1539 1532 /* I2C codec control layer */ 1540 1533 static struct i2c_driver da9055_i2c_driver = { 1541 1534 .driver = { 1542 - .name = "da9055", 1535 + .name = "da9055-codec", 1543 1536 .owner = THIS_MODULE, 1544 1537 }, 1545 1538 .probe = da9055_i2c_probe,
+11 -10
sound/soc/codecs/max98090.c
··· 336 336 case M98090_REG_RECORD_TDM_SLOT: 337 337 case M98090_REG_SAMPLE_RATE: 338 338 case M98090_REG_DMIC34_BIQUAD_BASE ... M98090_REG_DMIC34_BIQUAD_BASE + 0x0E: 339 + case M98090_REG_REVISION_ID: 339 340 return true; 340 341 default: 341 342 return false; ··· 1770 1769 1771 1770 switch (level) { 1772 1771 case SND_SOC_BIAS_ON: 1773 - if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { 1774 - ret = regcache_sync(max98090->regmap); 1775 - 1776 - if (ret != 0) { 1777 - dev_err(codec->dev, 1778 - "Failed to sync cache: %d\n", ret); 1779 - return ret; 1780 - } 1781 - } 1782 - 1783 1772 if (max98090->jack_state == M98090_JACK_STATE_HEADSET) { 1784 1773 /* 1785 1774 * Set to normal bias level. ··· 1783 1792 break; 1784 1793 1785 1794 case SND_SOC_BIAS_STANDBY: 1795 + if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { 1796 + ret = regcache_sync(max98090->regmap); 1797 + if (ret != 0) { 1798 + dev_err(codec->dev, 1799 + "Failed to sync cache: %d\n", ret); 1800 + return ret; 1801 + } 1802 + } 1803 + break; 1804 + 1786 1805 case SND_SOC_BIAS_OFF: 1787 1806 /* Set internal pull-up to lowest power mode */ 1788 1807 snd_soc_update_bits(codec, M98090_REG_JACK_DETECT,
+1
sound/soc/codecs/rt5640.c
··· 2093 2093 #ifdef CONFIG_ACPI 2094 2094 static struct acpi_device_id rt5640_acpi_match[] = { 2095 2095 { "INT33CA", 0 }, 2096 + { "10EC5640", 0 }, 2096 2097 { }, 2097 2098 }; 2098 2099 MODULE_DEVICE_TABLE(acpi, rt5640_acpi_match);
-1
sound/soc/codecs/wm8993.c
··· 1562 1562 struct wm8993_priv *wm8993 = snd_soc_codec_get_drvdata(codec); 1563 1563 1564 1564 wm8993_set_bias_level(codec, SND_SOC_BIAS_OFF); 1565 - regulator_bulk_free(ARRAY_SIZE(wm8993->supplies), wm8993->supplies); 1566 1565 return 0; 1567 1566 } 1568 1567
+1
sound/soc/davinci/davinci-evm.c
··· 399 399 .driver = { 400 400 .name = "davinci_evm", 401 401 .owner = THIS_MODULE, 402 + .pm = &snd_soc_pm_ops, 402 403 .of_match_table = of_match_ptr(davinci_evm_dt_ids), 403 404 }, 404 405 };
+36 -43
sound/soc/davinci/davinci-mcasp.c
··· 263 263 unsigned int fmt) 264 264 { 265 265 struct davinci_mcasp *mcasp = snd_soc_dai_get_drvdata(cpu_dai); 266 + int ret = 0; 266 267 268 + pm_runtime_get_sync(mcasp->dev); 267 269 switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { 268 270 case SND_SOC_DAIFMT_DSP_B: 269 271 case SND_SOC_DAIFMT_AC97: ··· 319 317 break; 320 318 321 319 default: 322 - return -EINVAL; 320 + ret = -EINVAL; 321 + goto out; 323 322 } 324 323 325 324 switch (fmt & SND_SOC_DAIFMT_INV_MASK) { ··· 357 354 break; 358 355 359 356 default: 360 - return -EINVAL; 357 + ret = -EINVAL; 358 + break; 361 359 } 362 - 363 - return 0; 360 + out: 361 + pm_runtime_put_sync(mcasp->dev); 362 + return ret; 364 363 } 365 364 366 365 static int davinci_mcasp_set_clkdiv(struct snd_soc_dai *dai, int div_id, int div) ··· 453 448 return 0; 454 449 } 455 450 456 - static int davinci_hw_common_param(struct davinci_mcasp *mcasp, int stream, 451 + static int mcasp_common_hw_param(struct davinci_mcasp *mcasp, int stream, 457 452 int channels) 458 453 { 459 454 int i; ··· 529 524 return 0; 530 525 } 531 526 532 - static void davinci_hw_param(struct davinci_mcasp *mcasp, int stream) 527 + static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream) 533 528 { 534 529 int i, active_slots; 535 530 u32 mask = 0; 536 531 u32 busel = 0; 532 + 533 + if ((mcasp->tdm_slots < 2) || (mcasp->tdm_slots > 32)) { 534 + dev_err(mcasp->dev, "tdm slot %d not supported\n", 535 + mcasp->tdm_slots); 536 + return -EINVAL; 537 + } 537 538 538 539 active_slots = (mcasp->tdm_slots > 31) ? 32 : mcasp->tdm_slots; 539 540 for (i = 0; i < active_slots; i++) ··· 550 539 if (!mcasp->dat_port) 551 540 busel = TXSEL; 552 541 553 - if (stream == SNDRV_PCM_STREAM_PLAYBACK) { 554 - /* bit stream is MSB first with no delay */ 555 - /* DSP_B mode */ 556 - mcasp_set_reg(mcasp, DAVINCI_MCASP_TXTDM_REG, mask); 557 - mcasp_set_bits(mcasp, DAVINCI_MCASP_TXFMT_REG, busel | TXORD); 542 + mcasp_set_reg(mcasp, DAVINCI_MCASP_TXTDM_REG, mask); 543 + mcasp_set_bits(mcasp, DAVINCI_MCASP_TXFMT_REG, busel | TXORD); 544 + mcasp_mod_bits(mcasp, DAVINCI_MCASP_TXFMCTL_REG, 545 + FSXMOD(mcasp->tdm_slots), FSXMOD(0x1FF)); 558 546 559 - if ((mcasp->tdm_slots >= 2) && (mcasp->tdm_slots <= 32)) 560 - mcasp_mod_bits(mcasp, DAVINCI_MCASP_TXFMCTL_REG, 561 - FSXMOD(mcasp->tdm_slots), FSXMOD(0x1FF)); 562 - else 563 - printk(KERN_ERR "playback tdm slot %d not supported\n", 564 - mcasp->tdm_slots); 565 - } else { 566 - /* bit stream is MSB first with no delay */ 567 - /* DSP_B mode */ 568 - mcasp_set_bits(mcasp, DAVINCI_MCASP_RXFMT_REG, busel | RXORD); 569 - mcasp_set_reg(mcasp, DAVINCI_MCASP_RXTDM_REG, mask); 547 + mcasp_set_reg(mcasp, DAVINCI_MCASP_RXTDM_REG, mask); 548 + mcasp_set_bits(mcasp, DAVINCI_MCASP_RXFMT_REG, busel | RXORD); 549 + mcasp_mod_bits(mcasp, DAVINCI_MCASP_RXFMCTL_REG, 550 + FSRMOD(mcasp->tdm_slots), FSRMOD(0x1FF)); 570 551 571 - if ((mcasp->tdm_slots >= 2) && (mcasp->tdm_slots <= 32)) 572 - mcasp_mod_bits(mcasp, DAVINCI_MCASP_RXFMCTL_REG, 573 - FSRMOD(mcasp->tdm_slots), FSRMOD(0x1FF)); 574 - else 575 - printk(KERN_ERR "capture tdm slot %d not supported\n", 576 - mcasp->tdm_slots); 577 - } 552 + return 0; 578 553 } 579 554 580 555 /* S/PDIF */ 581 - static void davinci_hw_dit_param(struct davinci_mcasp *mcasp) 556 + static int mcasp_dit_hw_param(struct davinci_mcasp *mcasp) 582 557 { 583 558 /* Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0 584 559 and LSB first */ ··· 586 589 587 590 /* Enable the DIT */ 588 591 mcasp_set_bits(mcasp, DAVINCI_MCASP_TXDITCTL_REG, DITEN); 592 + 593 + return 0; 589 594 } 590 595 591 596 static int davinci_mcasp_hw_params(struct snd_pcm_substream *substream, ··· 604 605 u8 slots = mcasp->tdm_slots; 605 606 u8 active_serializers; 606 607 int channels; 608 + int ret; 607 609 struct snd_interval *pcm_channels = hw_param_interval(params, 608 610 SNDRV_PCM_HW_PARAM_CHANNELS); 609 611 channels = pcm_channels->min; 610 612 611 613 active_serializers = (channels + slots - 1) / slots; 612 614 613 - if (davinci_hw_common_param(mcasp, substream->stream, channels) == -EINVAL) 615 + if (mcasp_common_hw_param(mcasp, substream->stream, channels) == -EINVAL) 614 616 return -EINVAL; 615 617 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 616 618 fifo_level = mcasp->txnumevt * active_serializers; ··· 619 619 fifo_level = mcasp->rxnumevt * active_serializers; 620 620 621 621 if (mcasp->op_mode == DAVINCI_MCASP_DIT_MODE) 622 - davinci_hw_dit_param(mcasp); 622 + ret = mcasp_dit_hw_param(mcasp); 623 623 else 624 - davinci_hw_param(mcasp, substream->stream); 624 + ret = mcasp_i2s_hw_param(mcasp, substream->stream); 625 + 626 + if (ret) 627 + return ret; 625 628 626 629 switch (params_format(params)) { 627 630 case SNDRV_PCM_FORMAT_U8: ··· 681 678 case SNDRV_PCM_TRIGGER_RESUME: 682 679 case SNDRV_PCM_TRIGGER_START: 683 680 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 684 - ret = pm_runtime_get_sync(mcasp->dev); 685 - if (IS_ERR_VALUE(ret)) 686 - dev_err(mcasp->dev, "pm_runtime_get_sync() failed\n"); 687 681 davinci_mcasp_start(mcasp, substream->stream); 688 682 break; 689 - 690 683 case SNDRV_PCM_TRIGGER_SUSPEND: 691 - davinci_mcasp_stop(mcasp, substream->stream); 692 - ret = pm_runtime_put_sync(mcasp->dev); 693 - if (IS_ERR_VALUE(ret)) 694 - dev_err(mcasp->dev, "pm_runtime_put_sync() failed\n"); 695 - break; 696 - 697 684 case SNDRV_PCM_TRIGGER_STOP: 698 685 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 699 686 davinci_mcasp_stop(mcasp, substream->stream);
+2 -2
sound/soc/fsl/fsl_esai.c
··· 326 326 regmap_update_bits(esai_priv->regmap, REG_ESAI_TSMA, 327 327 ESAI_xSMA_xS_MASK, ESAI_xSMA_xS(tx_mask)); 328 328 regmap_update_bits(esai_priv->regmap, REG_ESAI_TSMB, 329 - ESAI_xSMA_xS_MASK, ESAI_xSMB_xS(tx_mask)); 329 + ESAI_xSMB_xS_MASK, ESAI_xSMB_xS(tx_mask)); 330 330 331 331 regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR, 332 332 ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(slots)); ··· 334 334 regmap_update_bits(esai_priv->regmap, REG_ESAI_RSMA, 335 335 ESAI_xSMA_xS_MASK, ESAI_xSMA_xS(rx_mask)); 336 336 regmap_update_bits(esai_priv->regmap, REG_ESAI_RSMB, 337 - ESAI_xSMA_xS_MASK, ESAI_xSMB_xS(rx_mask)); 337 + ESAI_xSMB_xS_MASK, ESAI_xSMB_xS(rx_mask)); 338 338 339 339 esai_priv->slot_width = slot_width; 340 340
+1 -1
sound/soc/fsl/fsl_esai.h
··· 322 322 #define ESAI_xSMB_xS_SHIFT 0 323 323 #define ESAI_xSMB_xS_WIDTH 16 324 324 #define ESAI_xSMB_xS_MASK (((1 << ESAI_xSMB_xS_WIDTH) - 1) << ESAI_xSMB_xS_SHIFT) 325 - #define ESAI_xSMB_xS(v) (((v) >> ESAI_xSMA_xS_WIDTH) & ESAI_xSMA_xS_MASK) 325 + #define ESAI_xSMB_xS(v) (((v) >> ESAI_xSMA_xS_WIDTH) & ESAI_xSMB_xS_MASK) 326 326 327 327 /* Port C Direction Register -- REG_ESAI_PRRC 0xF8 */ 328 328 #define ESAI_PRRC_PDC_SHIFT 0
-1
sound/soc/fsl/imx-mc13783.c
··· 160 160 .driver = { 161 161 .name = "imx_mc13783", 162 162 .owner = THIS_MODULE, 163 - .pm = &snd_soc_pm_ops, 164 163 }, 165 164 .probe = imx_mc13783_probe, 166 165 .remove = imx_mc13783_remove
+6 -4
sound/soc/fsl/imx-sgtl5000.c
··· 33 33 34 34 static int imx_sgtl5000_dai_init(struct snd_soc_pcm_runtime *rtd) 35 35 { 36 - struct imx_sgtl5000_data *data = container_of(rtd->card, 37 - struct imx_sgtl5000_data, card); 36 + struct imx_sgtl5000_data *data = snd_soc_card_get_drvdata(rtd->card); 38 37 struct device *dev = rtd->card->dev; 39 38 int ret; 40 39 ··· 158 159 data->card.dapm_widgets = imx_sgtl5000_dapm_widgets; 159 160 data->card.num_dapm_widgets = ARRAY_SIZE(imx_sgtl5000_dapm_widgets); 160 161 162 + platform_set_drvdata(pdev, &data->card); 163 + snd_soc_card_set_drvdata(&data->card, data); 164 + 161 165 ret = devm_snd_soc_register_card(&pdev->dev, &data->card); 162 166 if (ret) { 163 167 dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); 164 168 goto fail; 165 169 } 166 170 167 - platform_set_drvdata(pdev, data); 168 171 of_node_put(ssi_np); 169 172 of_node_put(codec_np); 170 173 ··· 185 184 186 185 static int imx_sgtl5000_remove(struct platform_device *pdev) 187 186 { 188 - struct imx_sgtl5000_data *data = platform_get_drvdata(pdev); 187 + struct snd_soc_card *card = platform_get_drvdata(pdev); 188 + struct imx_sgtl5000_data *data = snd_soc_card_get_drvdata(card); 189 189 190 190 clk_put(data->codec_clk); 191 191
+7 -4
sound/soc/fsl/imx-wm8962.c
··· 71 71 { 72 72 struct snd_soc_dai *codec_dai = card->rtd[0].codec_dai; 73 73 struct imx_priv *priv = &card_priv; 74 - struct imx_wm8962_data *data = platform_get_drvdata(priv->pdev); 74 + struct imx_wm8962_data *data = snd_soc_card_get_drvdata(card); 75 75 struct device *dev = &priv->pdev->dev; 76 76 unsigned int pll_out; 77 77 int ret; ··· 137 137 { 138 138 struct snd_soc_dai *codec_dai = card->rtd[0].codec_dai; 139 139 struct imx_priv *priv = &card_priv; 140 - struct imx_wm8962_data *data = platform_get_drvdata(priv->pdev); 140 + struct imx_wm8962_data *data = snd_soc_card_get_drvdata(card); 141 141 struct device *dev = &priv->pdev->dev; 142 142 int ret; 143 143 ··· 264 264 data->card.late_probe = imx_wm8962_late_probe; 265 265 data->card.set_bias_level = imx_wm8962_set_bias_level; 266 266 267 + platform_set_drvdata(pdev, &data->card); 268 + snd_soc_card_set_drvdata(&data->card, data); 269 + 267 270 ret = devm_snd_soc_register_card(&pdev->dev, &data->card); 268 271 if (ret) { 269 272 dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); 270 273 goto clk_fail; 271 274 } 272 275 273 - platform_set_drvdata(pdev, data); 274 276 of_node_put(ssi_np); 275 277 of_node_put(codec_np); 276 278 ··· 291 289 292 290 static int imx_wm8962_remove(struct platform_device *pdev) 293 291 { 294 - struct imx_wm8962_data *data = platform_get_drvdata(pdev); 292 + struct snd_soc_card *card = platform_get_drvdata(pdev); 293 + struct imx_wm8962_data *data = snd_soc_card_get_drvdata(card); 295 294 296 295 if (!IS_ERR(data->codec_clk)) 297 296 clk_disable_unprepare(data->codec_clk);
+3 -3
sound/soc/samsung/Kconfig
··· 59 59 select SND_SOC_WM8750 60 60 select SND_S3C2412_SOC_I2S 61 61 help 62 - Sat Y if you want to add support for SoC audio on the Jive. 62 + Say Y if you want to add support for SoC audio on the Jive. 63 63 64 64 config SND_SOC_SAMSUNG_SMDK_WM8580 65 65 tristate "SoC I2S Audio support for WM8580 on SMDK" ··· 145 145 146 146 config SND_SOC_SAMSUNG_SMDK_WM9713 147 147 tristate "SoC AC97 Audio support for SMDK with WM9713" 148 - depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110 || MACH_SMDKV310 || MACH_SMDKC210) 148 + depends on SND_SOC_SAMSUNG && (MACH_SMDK6410 || MACH_SMDKC100 || MACH_SMDKV210 || MACH_SMDKC110) 149 149 select SND_SOC_WM9713 150 150 select SND_SAMSUNG_AC97 151 151 help 152 - Sat Y if you want to add support for SoC audio on the SMDK. 152 + Say Y if you want to add support for SoC audio on the SMDK. 153 153 154 154 config SND_SOC_SMARTQ 155 155 tristate "SoC I2S Audio support for SmartQ board"
+5 -3
sound/soc/txx9/txx9aclc-ac97.c
··· 183 183 irq = platform_get_irq(pdev, 0); 184 184 if (irq < 0) 185 185 return irq; 186 + 187 + drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); 188 + if (!drvdata) 189 + return -ENOMEM; 190 + 186 191 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 187 192 drvdata->base = devm_ioremap_resource(&pdev->dev, r); 188 193 if (IS_ERR(drvdata->base)) 189 194 return PTR_ERR(drvdata->base); 190 195 191 - drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL); 192 - if (!drvdata) 193 - return -ENOMEM; 194 196 platform_set_drvdata(pdev, drvdata); 195 197 drvdata->physbase = r->start; 196 198 if (sizeof(drvdata->physbase) > sizeof(r->start) &&
+9
sound/usb/mixer_maps.c
··· 328 328 {} 329 329 }; 330 330 331 + static const struct usbmix_name_map kef_x300a_map[] = { 332 + { 10, NULL }, /* firmware locks up (?) when we try to access this FU */ 333 + { 0 } 334 + }; 335 + 331 336 /* 332 337 * Control map entries 333 338 */ ··· 423 418 { 424 419 .id = USB_ID(0x200c, 0x1018), 425 420 .map = ebox44_map, 421 + }, 422 + { 423 + .id = USB_ID(0x27ac, 0x1000), 424 + .map = kef_x300a_map, 426 425 }, 427 426 { 0 } /* terminator */ 428 427 };