Loading sound/soc/codecs/max98090.c +2 −2 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ #include "max98090.h" /* Allows for sparsely populated register maps */ static struct reg_default max98090_reg[] = { static const struct reg_default max98090_reg[] = { { 0x00, 0x00 }, /* 00 Software Reset */ { 0x03, 0x04 }, /* 03 Interrupt Masks */ { 0x04, 0x00 }, /* 04 System Clock Quick */ Loading Loading @@ -2704,7 +2704,7 @@ static const struct of_device_id max98090_of_match[] = { MODULE_DEVICE_TABLE(of, max98090_of_match); #ifdef CONFIG_ACPI static struct acpi_device_id max98090_acpi_match[] = { static const struct acpi_device_id max98090_acpi_match[] = { { "193C9890", MAX98090 }, { } }; Loading sound/soc/intel/Kconfig +2 −2 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH config SND_SOC_INTEL_CHT_BSW_RT5645_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading @@ -123,7 +123,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with MAX98090 & TI codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_MAX98090 select SND_SOC_TS3A227E select SND_SST_MFLD_PLATFORM Loading sound/soc/intel/atom/sst-atom-controls.c +8 −12 Original line number Diff line number Diff line Loading @@ -1401,36 +1401,32 @@ static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w, down_read(&card->controls_rwsem); list_for_each_entry(kctl, &card->controls, list) { idx = strstr(kctl->id.name, " "); idx = strchr(kctl->id.name, ' '); if (idx == NULL) continue; index = strlen(kctl->id.name) - strlen(idx); index = idx - (char*)kctl->id.name; if (strncmp(kctl->id.name, w->name, index)) continue; if (strstr(kctl->id.name, "Volume") && !strncmp(kctl->id.name, w->name, index)) if (strstr(kctl->id.name, "Volume")) ret = sst_fill_module_list(kctl, w, SST_MODULE_GAIN); else if (strstr(kctl->id.name, "params") && !strncmp(kctl->id.name, w->name, index)) else if (strstr(kctl->id.name, "params")) ret = sst_fill_module_list(kctl, w, SST_MODULE_ALGO); else if (strstr(kctl->id.name, "Switch") && !strncmp(kctl->id.name, w->name, index) && strstr(kctl->id.name, "Gain")) { struct sst_gain_mixer_control *mc = (void *)kctl->private_value; mc->w = w; } else if (strstr(kctl->id.name, "interleaver") && !strncmp(kctl->id.name, w->name, index)) { } else if (strstr(kctl->id.name, "interleaver")) { struct sst_enum *e = (void *)kctl->private_value; e->w = w; } else if (strstr(kctl->id.name, "deinterleaver") && !strncmp(kctl->id.name, w->name, index)) { } else if (strstr(kctl->id.name, "deinterleaver")) { struct sst_enum *e = (void *)kctl->private_value; e->w = w; Loading sound/soc/intel/atom/sst/sst.c +2 −2 Original line number Diff line number Diff line Loading @@ -368,8 +368,8 @@ static inline void sst_restore_shim64(struct intel_sst_drv *ctx, * initialize by FW or driver when firmware is loaded */ spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); sst_shim_write64(shim, SST_IMRX, shim_regs->imrx), sst_shim_write64(shim, SST_CSR, shim_regs->csr), sst_shim_write64(shim, SST_IMRX, shim_regs->imrx); sst_shim_write64(shim, SST_CSR, shim_regs->csr); spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); } Loading sound/soc/intel/boards/cht_bsw_max98090_ti.c +30 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,33 @@ static int cht_aif1_hw_params(struct snd_pcm_substream *substream, return 0; } static int cht_ti_jack_event(struct notifier_block *nb, unsigned long event, void *data) { struct snd_soc_jack *jack = (struct snd_soc_jack *)data; struct snd_soc_dai *codec_dai = jack->card->rtd->codec_dai; struct snd_soc_codec *codec = codec_dai->codec; if (event & SND_JACK_MICROPHONE) { snd_soc_dapm_force_enable_pin(&codec->dapm, "SHDN"); snd_soc_dapm_force_enable_pin(&codec->dapm, "MICBIAS"); snd_soc_dapm_sync(&codec->dapm); } else { snd_soc_dapm_disable_pin(&codec->dapm, "MICBIAS"); snd_soc_dapm_disable_pin(&codec->dapm, "SHDN"); snd_soc_dapm_sync(&codec->dapm); } return 0; } static struct notifier_block cht_jack_nb = { .notifier_call = cht_ti_jack_event, }; static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) { int ret; Loading Loading @@ -130,6 +157,9 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) return ret; } if (ctx->ts3a227e_present) snd_soc_jack_notifier_register(jack, &cht_jack_nb); return ret; } Loading Loading
sound/soc/codecs/max98090.c +2 −2 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ #include "max98090.h" /* Allows for sparsely populated register maps */ static struct reg_default max98090_reg[] = { static const struct reg_default max98090_reg[] = { { 0x00, 0x00 }, /* 00 Software Reset */ { 0x03, 0x04 }, /* 03 Interrupt Masks */ { 0x04, 0x00 }, /* 04 System Clock Quick */ Loading Loading @@ -2704,7 +2704,7 @@ static const struct of_device_id max98090_of_match[] = { MODULE_DEVICE_TABLE(of, max98090_of_match); #ifdef CONFIG_ACPI static struct acpi_device_id max98090_acpi_match[] = { static const struct acpi_device_id max98090_acpi_match[] = { { "193C9890", MAX98090 }, { } }; Loading
sound/soc/intel/Kconfig +2 −2 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH config SND_SOC_INTEL_CHT_BSW_RT5645_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5645/5650 codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_RT5645 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI Loading @@ -123,7 +123,7 @@ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH config SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with MAX98090 & TI codec" depends on X86_INTEL_LPSS depends on X86_INTEL_LPSS && I2C select SND_SOC_MAX98090 select SND_SOC_TS3A227E select SND_SST_MFLD_PLATFORM Loading
sound/soc/intel/atom/sst-atom-controls.c +8 −12 Original line number Diff line number Diff line Loading @@ -1401,36 +1401,32 @@ static int sst_fill_widget_module_info(struct snd_soc_dapm_widget *w, down_read(&card->controls_rwsem); list_for_each_entry(kctl, &card->controls, list) { idx = strstr(kctl->id.name, " "); idx = strchr(kctl->id.name, ' '); if (idx == NULL) continue; index = strlen(kctl->id.name) - strlen(idx); index = idx - (char*)kctl->id.name; if (strncmp(kctl->id.name, w->name, index)) continue; if (strstr(kctl->id.name, "Volume") && !strncmp(kctl->id.name, w->name, index)) if (strstr(kctl->id.name, "Volume")) ret = sst_fill_module_list(kctl, w, SST_MODULE_GAIN); else if (strstr(kctl->id.name, "params") && !strncmp(kctl->id.name, w->name, index)) else if (strstr(kctl->id.name, "params")) ret = sst_fill_module_list(kctl, w, SST_MODULE_ALGO); else if (strstr(kctl->id.name, "Switch") && !strncmp(kctl->id.name, w->name, index) && strstr(kctl->id.name, "Gain")) { struct sst_gain_mixer_control *mc = (void *)kctl->private_value; mc->w = w; } else if (strstr(kctl->id.name, "interleaver") && !strncmp(kctl->id.name, w->name, index)) { } else if (strstr(kctl->id.name, "interleaver")) { struct sst_enum *e = (void *)kctl->private_value; e->w = w; } else if (strstr(kctl->id.name, "deinterleaver") && !strncmp(kctl->id.name, w->name, index)) { } else if (strstr(kctl->id.name, "deinterleaver")) { struct sst_enum *e = (void *)kctl->private_value; e->w = w; Loading
sound/soc/intel/atom/sst/sst.c +2 −2 Original line number Diff line number Diff line Loading @@ -368,8 +368,8 @@ static inline void sst_restore_shim64(struct intel_sst_drv *ctx, * initialize by FW or driver when firmware is loaded */ spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); sst_shim_write64(shim, SST_IMRX, shim_regs->imrx), sst_shim_write64(shim, SST_CSR, shim_regs->csr), sst_shim_write64(shim, SST_IMRX, shim_regs->imrx); sst_shim_write64(shim, SST_CSR, shim_regs->csr); spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); } Loading
sound/soc/intel/boards/cht_bsw_max98090_ti.c +30 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,33 @@ static int cht_aif1_hw_params(struct snd_pcm_substream *substream, return 0; } static int cht_ti_jack_event(struct notifier_block *nb, unsigned long event, void *data) { struct snd_soc_jack *jack = (struct snd_soc_jack *)data; struct snd_soc_dai *codec_dai = jack->card->rtd->codec_dai; struct snd_soc_codec *codec = codec_dai->codec; if (event & SND_JACK_MICROPHONE) { snd_soc_dapm_force_enable_pin(&codec->dapm, "SHDN"); snd_soc_dapm_force_enable_pin(&codec->dapm, "MICBIAS"); snd_soc_dapm_sync(&codec->dapm); } else { snd_soc_dapm_disable_pin(&codec->dapm, "MICBIAS"); snd_soc_dapm_disable_pin(&codec->dapm, "SHDN"); snd_soc_dapm_sync(&codec->dapm); } return 0; } static struct notifier_block cht_jack_nb = { .notifier_call = cht_ti_jack_event, }; static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) { int ret; Loading Loading @@ -130,6 +157,9 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime) return ret; } if (ctx->ts3a227e_present) snd_soc_jack_notifier_register(jack, &cht_jack_nb); return ret; } Loading