Charles Keepax 4f2ab5e1d1 ALSA: compress: Fix stop handling on compressed capture streams
It is normal user behaviour to start, stop, then start a stream
again without closing it. Currently this works for compressed
playback streams but not capture ones.

The states on a compressed capture stream go directly from OPEN to
PREPARED, unlike a playback stream which moves to SETUP and waits
for a write of data before moving to PREPARED. Currently however,
when a stop is sent the state is set to SETUP for both types of
streams. This leaves a capture stream in the situation where a new
start can't be sent as that requires the state to be PREPARED and
a new set_params can't be sent as that requires the state to be
OPEN. The only option being to close the stream, and then reopen.

Correct this issues by allowing snd_compr_drain_notify to set the
state depending on the stream direction, as we already do in
set_params.

Fixes: 49bb6402f1aa ("ALSA: compress_core: Add support for capture streams")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-02-05 22:01:41 +01:00
..
2011-08-17 00:53:54 +09:00
2011-05-19 14:10:45 -07:00
2014-05-05 18:20:22 -07:00
2015-11-30 12:24:12 +00:00
2012-09-28 14:21:54 +01:00
2017-11-27 16:19:52 -05:00
2010-10-18 16:46:27 -07:00
2014-07-04 18:50:51 +01:00
2015-07-09 12:00:11 +01:00
2016-09-24 19:51:57 +01:00
2015-03-11 12:08:20 +00:00
2018-06-18 12:54:38 +01:00
2017-11-13 15:45:57 +01:00
2018-09-20 10:31:20 -07:00
2014-09-15 15:52:03 +02:00
2011-09-20 16:02:16 +01:00
2011-08-08 14:30:37 +09:00
2010-04-30 16:12:44 +01:00