ALSA: firewire-lib, firewire-speakers: handle packet queueing errors

Add an AMDTP stream error state that occurs when we fail to queue
another packet.  In this case, the stream is stopped, and the error can
be reported when the application tries to restart the PCM stream.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
diff --git a/sound/firewire/speakers.c b/sound/firewire/speakers.c
index f6b095e..0fce921 100644
--- a/sound/firewire/speakers.c
+++ b/sound/firewire/speakers.c
@@ -283,6 +283,9 @@
 
 	mutex_lock(&fwspk->mutex);
 
+	if (amdtp_out_streaming_error(&fwspk->stream))
+		fwspk_stop_stream(fwspk);
+
 	if (!fwspk->stream_running) {
 		err = cmp_connection_establish(&fwspk->connection,
 			amdtp_out_stream_get_max_payload(&fwspk->stream));