diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c index 12bb2f1a3244..bec8016937a2 100644 --- a/sound/soc/soc-compress.c +++ b/sound/soc/soc-compress.c @@ -800,34 +800,17 @@ int soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num) struct snd_pcm *be_pcm; char new_name[64]; int ret = 0, direction = 0; - int playback = 0, capture = 0; /* check client and interface hw capabilities */ snprintf(new_name, sizeof(new_name), "%s %s-%d", rtd->dai_link->stream_name, codec_dai->name, num); if (codec_dai->driver->playback.channels_min) - playback = 1; - if (codec_dai->driver->capture.channels_min) - capture = 1; - - capture = capture && cpu_dai->driver->capture.channels_min; - playback = playback && cpu_dai->driver->playback.channels_min; - - /* - * Compress devices are unidirectional so only one of the directions - * should be set, check for that (xor) - */ - if (playback + capture != 1) { - dev_err(rtd->card->dev, "Invalid direction for compress P %d, C %d\n", - playback, capture); - return -EINVAL; - } - - if(playback) direction = SND_COMPRESS_PLAYBACK; - else + else if (codec_dai->driver->capture.channels_min) direction = SND_COMPRESS_CAPTURE; + else + return -EINVAL; compr = kzalloc(sizeof(*compr), GFP_KERNEL); if (compr == NULL) {