memcpy(ctl->cache, p, ctl->len);
----- if (!ctl->enabled) {
----- ctl->set = 1;
+++++ ctl->set = 1;
+++++ if (!ctl->enabled)
return 0;
----- }
return wm_coeff_write_control(kcontrol, p, ctl->len);
}
int ret, pos, blocks, type, offset, reg;
char *file;
struct wm_adsp_buf *buf;
----- int tmp;
file = kzalloc(PAGE_SIZE, GFP_KERNEL);
if (file == NULL)
}
}
----- tmp = le32_to_cpu(blk->len) % 4;
----- if (tmp)
----- pos += le32_to_cpu(blk->len) + (4 - tmp) + sizeof(*blk);
----- else
----- pos += le32_to_cpu(blk->len) + sizeof(*blk);
-----
+++++ pos += (le32_to_cpu(blk->len) + sizeof(*blk) + 3) & ~0x03;
blocks++;
}
struct snd_kcontrol *kcontrol,
int event)
{
- - struct snd_soc_codec *codec = w->codec;
+ + struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
struct wm_adsp *dsp = &dsps[w->shift];
struct wm_adsp_alg_region *alg_region;
int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event)
{
- - struct snd_soc_codec *codec = w->codec;
+ + struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
struct wm_adsp *dsp = &dsps[w->shift];
int wm_adsp2_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event)
{
- - struct snd_soc_codec *codec = w->codec;
+ + struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
struct wm_adsp *dsps = snd_soc_codec_get_drvdata(codec);
struct wm_adsp *dsp = &dsps[w->shift];
struct wm_adsp_alg_region *alg_region;
SND_SOC_DAPM_HP("Headphones", NULL),
SND_SOC_DAPM_SPK("Speakers", NULL),
SND_SOC_DAPM_MIC("Mic Jack", NULL),
++++ + SND_SOC_DAPM_MIC("Int Mic", NULL),
};
static const struct snd_kcontrol_new tegra_max98090_controls[] = {
++++ + SOC_DAPM_PIN_SWITCH("Headphones"),
SOC_DAPM_PIN_SWITCH("Speakers"),
++++ + SOC_DAPM_PIN_SWITCH("Mic Jack"),
++++ + SOC_DAPM_PIN_SWITCH("Int Mic"),
};
static int tegra_max98090_asoc_init(struct snd_soc_pcm_runtime *rtd)
{
----- struct snd_soc_dai *codec_dai = rtd->codec_dai;
----- struct snd_soc_codec *codec = codec_dai->codec;
struct tegra_max98090 *machine = snd_soc_card_get_drvdata(rtd->card);
if (gpio_is_valid(machine->gpio_hp_det)) {
----- snd_soc_jack_new(codec, "Headphones", SND_JACK_HEADPHONE,
----- &tegra_max98090_hp_jack);
----- snd_soc_jack_add_pins(&tegra_max98090_hp_jack,
----- ARRAY_SIZE(tegra_max98090_hp_jack_pins),
----- tegra_max98090_hp_jack_pins);
+++++ snd_soc_card_jack_new(rtd->card, "Headphones",
+++++ SND_JACK_HEADPHONE,
+++++ &tegra_max98090_hp_jack,
+++++ tegra_max98090_hp_jack_pins,
+++++ ARRAY_SIZE(tegra_max98090_hp_jack_pins));
tegra_max98090_hp_jack_gpio.gpio = machine->gpio_hp_det;
snd_soc_jack_add_gpios(&tegra_max98090_hp_jack,
}
if (gpio_is_valid(machine->gpio_mic_det)) {
----- snd_soc_jack_new(codec, "Mic Jack", SND_JACK_MICROPHONE,
----- &tegra_max98090_mic_jack);
----- snd_soc_jack_add_pins(&tegra_max98090_mic_jack,
----- ARRAY_SIZE(tegra_max98090_mic_jack_pins),
----- tegra_max98090_mic_jack_pins);
+++++ snd_soc_card_jack_new(rtd->card, "Mic Jack",
+++++ SND_JACK_MICROPHONE,
+++++ &tegra_max98090_mic_jack,
+++++ tegra_max98090_mic_jack_pins,
+++++ ARRAY_SIZE(tegra_max98090_mic_jack_pins));
tegra_max98090_mic_jack_gpio.gpio = machine->gpio_mic_det;
snd_soc_jack_add_gpios(&tegra_max98090_mic_jack,