···122122int snd_soc_dpcm_can_be_params(struct snd_soc_pcm_runtime *fe,123123 struct snd_soc_pcm_runtime *be, int stream);124124125125+/* can this BE perform prepare */126126+int snd_soc_dpcm_can_be_prepared(struct snd_soc_pcm_runtime *fe,127127+ struct snd_soc_pcm_runtime *be, int stream);128128+125129/* is the current PCM operation for this FE ? */126130int snd_soc_dpcm_fe_can_update(struct snd_soc_pcm_runtime *fe, int stream);127131
···443443 }444444445445 for (mach = boards->machs; mach->id[0]; mach++) {446446- if (!acpi_dev_present(mach->id, NULL, -1))446446+ if (!acpi_dev_present(mach->id, mach->uid, -1))447447 continue;448448449449 if (mach->machine_quirk)
···24312431 if (!snd_soc_dpcm_be_can_update(fe, be, stream))24322432 continue;2433243324342434+ if (!snd_soc_dpcm_can_be_prepared(fe, be, stream))24352435+ continue;24362436+24342437 if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&24352438 (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&24362439 (be->dpcm[stream].state != SND_SOC_DPCM_STATE_SUSPEND) &&···30903087 return snd_soc_dpcm_check_state(fe, be, stream, state, ARRAY_SIZE(state));30913088}30923089EXPORT_SYMBOL_GPL(snd_soc_dpcm_can_be_params);30903090+30913091+/*30923092+ * We can only prepare a BE DAI if any of it's FE are not prepared,30933093+ * running or paused for the specified stream direction.30943094+ */30953095+int snd_soc_dpcm_can_be_prepared(struct snd_soc_pcm_runtime *fe,30963096+ struct snd_soc_pcm_runtime *be, int stream)30973097+{30983098+ const enum snd_soc_dpcm_state state[] = {30993099+ SND_SOC_DPCM_STATE_START,31003100+ SND_SOC_DPCM_STATE_PAUSED,31013101+ SND_SOC_DPCM_STATE_PREPARE,31023102+ };31033103+31043104+ return snd_soc_dpcm_check_state(fe, be, stream, state, ARRAY_SIZE(state));31053105+}31063106+EXPORT_SYMBOL_GPL(snd_soc_dpcm_can_be_prepared);
+3
sound/soc/tegra/tegra_pcm.c
···117117 return ret;118118 }119119120120+ /* Set wait time to 500ms by default */121121+ substream->wait_time = 500;122122+120123 return 0;121124}122125EXPORT_SYMBOL_GPL(tegra_pcm_open);