Merge tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai: "It was a busy development cycle at this time, as you can see a wide range of changes in diffstat. There are no big changes but many refactoring and improvements. Here we go some highlights: ALSA core: - Procfs codes were cleaned up to use seq_file - Procfs can be opt out via Kconfig (only for EXPERT) - Two types of jack API were unified finally; now both kctl and input jack devs are handled via a single function call. HD-audio: - Continued code restructuring for the future ASoC driver; now HDA controller driver is split to a core helper module. - Preliminary codes for Skylake audio support in HDA core. - Proper i915 gfx power well management for SKL & co - Enabled runtime PM as default for Intel HDMI/DP codecs - Newer Tegra chip supports - More quirks for Dell headsets, Alienware (with CA0132), etc. - A couple of DRM ELD helper API functions ASoC: - Support for loading ASoC topology maps from firmware, intended to be used to allow self-describing DSP firmware images to be built which can map controls added by the DSP to userspace without the kernel needing to know about individual DSP firmwares - Lots of refactoring to avoid direct access to snd_soc_codec where it's not needed supporting future refactoring - Big refactoring, cleanup and enhancement for the Wolfson ADSP driver - Cleanup series for TI TAS2552 and R-CAR drivers - Fixes and improvements on RT56xx codecs - Support for TI TAS571x power amplifiers - Support for Qualcomm APQ8016 and ZTE ZX296702 SoCs - Support for x86 systems with RT5650 and Qualcomm Storm - Support for Mediatek AFE (Audio Front End) unit - Other various small fixes to ASoC codec drivers Firewire: - Enhanced to allow non-blocking streams to use timestamp synchronization - Improve support for DM1500 and BeBoBv3 Misc: - Cleanup of old pci API functions over all PCI sound drivers - Fix long-standing regression of the old powermac i2c setup" * tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (533 commits) ALSA: pcm: Fix pcm_class sysfs output ALSA: hda-beep: Update authors dead email address ASoC: wm_adsp: Move DSP Rate controls into the codec ASoC: wm8995: Fix setting sysclk for WM8995_SYSCLK_MCLK2 case ALSA: hda: provide default bus io ops extended hdac ALSA: hda: add hda link cleanup routine ALSA: hda: add hdac_ext stream creation and cleanup routines ASoC: rsrc-card: remove unused ret ALSA: HDAC: move SND_HDA_PREALLOC_SIZE to core ASoC: mediatek: Add machine driver for rt5650 rt5676 codec ASoC: mediatek: Add machine driver for MAX98090 codec ASoC: mediatek: Add AFE platform driver ASoC: rsnd: remove io from rsnd_mod ASoC: rsnd: move rsnd_mod_is_working() to rsnd_io_is_working() ASoC: rsnd: don't use rsnd_mod_to_io() on snd_kcontrol ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_src_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_ssi_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_dma_xxx() ASoC: rsnd: don't use rsnd_mod_to_io() on rsnd_get_adinr() ASoC: rsnd: add common interrupt handler for SSI/SRC/DMA ...
This commit is contained in:
@@ -100,12 +100,13 @@ config SND_OMAP_SOC_OMAP_TWL4030
|
||||
|
||||
config SND_OMAP_SOC_OMAP_ABE_TWL6040
|
||||
tristate "SoC Audio support for OMAP boards using ABE and twl6040 codec"
|
||||
depends on TWL6040_CORE && SND_OMAP_SOC && (ARCH_OMAP4 || SOC_OMAP5 || COMPILE_TEST)
|
||||
depends on TWL6040_CORE && SND_OMAP_SOC
|
||||
depends on ARCH_OMAP4 || (SOC_OMAP5 && MFD_PALMAS) || COMPILE_TEST
|
||||
select SND_OMAP_SOC_DMIC
|
||||
select SND_OMAP_SOC_MCPDM
|
||||
select SND_SOC_TWL6040
|
||||
select SND_SOC_DMIC
|
||||
select COMMON_CLK_PALMAS if MFD_PALMAS
|
||||
select COMMON_CLK_PALMAS if (SOC_OMAP5 && MFD_PALMAS)
|
||||
help
|
||||
Say Y if you want to add support for SoC audio on OMAP boards using
|
||||
ABE and twl6040 codec. This driver currently supports:
|
||||
|
@@ -159,9 +159,8 @@ static inline void twl4030_disconnect_pin(struct snd_soc_dapm_context *dapm,
|
||||
|
||||
static int omap_twl4030_init(struct snd_soc_pcm_runtime *rtd)
|
||||
{
|
||||
struct snd_soc_codec *codec = rtd->codec;
|
||||
struct snd_soc_card *card = rtd->card;
|
||||
struct snd_soc_dapm_context *dapm = &codec->dapm;
|
||||
struct snd_soc_dapm_context *dapm = &card->dapm;
|
||||
struct omap_tw4030_pdata *pdata = dev_get_platdata(card->dev);
|
||||
struct omap_twl4030 *priv = snd_soc_card_get_drvdata(card);
|
||||
int ret = 0;
|
||||
|
@@ -245,6 +245,8 @@ static const struct snd_soc_dapm_widget aic34_dapm_widgets[] = {
|
||||
static const struct snd_soc_dapm_route audio_map[] = {
|
||||
{"Ext Spk", NULL, "HPLOUT"},
|
||||
{"Ext Spk", NULL, "HPROUT"},
|
||||
{"Ext Spk", NULL, "HPLCOM"},
|
||||
{"Ext Spk", NULL, "HPRCOM"},
|
||||
{"Headphone Jack", NULL, "LLOUT"},
|
||||
{"Headphone Jack", NULL, "RLOUT"},
|
||||
{"FM Transmitter", NULL, "LLOUT"},
|
||||
@@ -288,15 +290,8 @@ static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
|
||||
struct snd_soc_codec *codec = rtd->codec;
|
||||
struct snd_soc_card *card = rtd->card;
|
||||
struct rx51_audio_pdata *pdata = snd_soc_card_get_drvdata(card);
|
||||
|
||||
struct snd_soc_dapm_context *dapm = &codec->dapm;
|
||||
int err;
|
||||
|
||||
/* Set up NC codec pins */
|
||||
snd_soc_dapm_nc_pin(dapm, "MIC3L");
|
||||
snd_soc_dapm_nc_pin(dapm, "MIC3R");
|
||||
snd_soc_dapm_nc_pin(dapm, "LINE1R");
|
||||
|
||||
err = tpa6130a2_add_controls(codec);
|
||||
if (err < 0) {
|
||||
dev_err(card->dev, "Failed to add TPA6130A2 controls\n");
|
||||
@@ -383,6 +378,7 @@ static struct snd_soc_card rx51_sound_card = {
|
||||
.num_aux_devs = ARRAY_SIZE(rx51_aux_dev),
|
||||
.codec_conf = rx51_codec_conf,
|
||||
.num_configs = ARRAY_SIZE(rx51_codec_conf),
|
||||
.fully_routed = true,
|
||||
|
||||
.controls = aic34_rx51_controls,
|
||||
.num_controls = ARRAY_SIZE(aic34_rx51_controls),
|
||||
@@ -455,50 +451,36 @@ static int rx51_soc_probe(struct platform_device *pdev)
|
||||
snd_soc_card_set_drvdata(card, pdata);
|
||||
|
||||
pdata->tvout_selection_gpio = devm_gpiod_get(card->dev,
|
||||
"tvout-selection");
|
||||
"tvout-selection",
|
||||
GPIOD_OUT_LOW);
|
||||
if (IS_ERR(pdata->tvout_selection_gpio)) {
|
||||
dev_err(card->dev, "could not get tvout selection gpio\n");
|
||||
return PTR_ERR(pdata->tvout_selection_gpio);
|
||||
}
|
||||
|
||||
err = gpiod_direction_output(pdata->tvout_selection_gpio, 0);
|
||||
if (err) {
|
||||
dev_err(card->dev, "could not setup tvout selection gpio\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
pdata->jack_detection_gpio = devm_gpiod_get(card->dev,
|
||||
"jack-detection");
|
||||
"jack-detection",
|
||||
GPIOD_ASIS);
|
||||
if (IS_ERR(pdata->jack_detection_gpio)) {
|
||||
dev_err(card->dev, "could not get jack detection gpio\n");
|
||||
return PTR_ERR(pdata->jack_detection_gpio);
|
||||
}
|
||||
|
||||
pdata->eci_sw_gpio = devm_gpiod_get(card->dev, "eci-switch");
|
||||
pdata->eci_sw_gpio = devm_gpiod_get(card->dev, "eci-switch",
|
||||
GPIOD_OUT_HIGH);
|
||||
if (IS_ERR(pdata->eci_sw_gpio)) {
|
||||
dev_err(card->dev, "could not get eci switch gpio\n");
|
||||
return PTR_ERR(pdata->eci_sw_gpio);
|
||||
}
|
||||
|
||||
err = gpiod_direction_output(pdata->eci_sw_gpio, 1);
|
||||
if (err) {
|
||||
dev_err(card->dev, "could not setup eci switch gpio\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
pdata->speaker_amp_gpio = devm_gpiod_get(card->dev,
|
||||
"speaker-amplifier");
|
||||
"speaker-amplifier",
|
||||
GPIOD_OUT_LOW);
|
||||
if (IS_ERR(pdata->speaker_amp_gpio)) {
|
||||
dev_err(card->dev, "could not get speaker enable gpio\n");
|
||||
return PTR_ERR(pdata->speaker_amp_gpio);
|
||||
}
|
||||
|
||||
err = gpiod_direction_output(pdata->speaker_amp_gpio, 0);
|
||||
if (err) {
|
||||
dev_err(card->dev, "could not setup speaker enable gpio\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
err = devm_snd_soc_register_card(card->dev, card);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", err);
|
||||
|
Reference in New Issue
Block a user