Commit 4a0a0472 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai

ALSA: oxfw: unify substreams counter

In former commits, two isochronous contexts are handles at the same
time. This commit unifies stream counters to obsolete them.
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 779f0dba
...@@ -19,7 +19,7 @@ static int midi_capture_open(struct snd_rawmidi_substream *substream) ...@@ -19,7 +19,7 @@ static int midi_capture_open(struct snd_rawmidi_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->capture_substreams++; ++oxfw->substreams_count;
err = snd_oxfw_stream_start_duplex(oxfw, &oxfw->tx_stream, 0, 0); err = snd_oxfw_stream_start_duplex(oxfw, &oxfw->tx_stream, 0, 0);
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
...@@ -41,7 +41,7 @@ static int midi_playback_open(struct snd_rawmidi_substream *substream) ...@@ -41,7 +41,7 @@ static int midi_playback_open(struct snd_rawmidi_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->playback_substreams++; ++oxfw->substreams_count;
err = snd_oxfw_stream_start_duplex(oxfw, &oxfw->rx_stream, 0, 0); err = snd_oxfw_stream_start_duplex(oxfw, &oxfw->rx_stream, 0, 0);
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
...@@ -58,7 +58,7 @@ static int midi_capture_close(struct snd_rawmidi_substream *substream) ...@@ -58,7 +58,7 @@ static int midi_capture_close(struct snd_rawmidi_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->capture_substreams--; --oxfw->substreams_count;
snd_oxfw_stream_stop_duplex(oxfw); snd_oxfw_stream_stop_duplex(oxfw);
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
...@@ -73,7 +73,7 @@ static int midi_playback_close(struct snd_rawmidi_substream *substream) ...@@ -73,7 +73,7 @@ static int midi_playback_close(struct snd_rawmidi_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->playback_substreams--; --oxfw->substreams_count;
snd_oxfw_stream_stop_duplex(oxfw); snd_oxfw_stream_stop_duplex(oxfw);
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
......
...@@ -220,7 +220,7 @@ static int pcm_capture_hw_params(struct snd_pcm_substream *substream, ...@@ -220,7 +220,7 @@ static int pcm_capture_hw_params(struct snd_pcm_substream *substream,
if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) { if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->capture_substreams++; ++oxfw->substreams_count;
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
} }
...@@ -239,7 +239,7 @@ static int pcm_playback_hw_params(struct snd_pcm_substream *substream, ...@@ -239,7 +239,7 @@ static int pcm_playback_hw_params(struct snd_pcm_substream *substream,
if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) { if (substream->runtime->status->state == SNDRV_PCM_STATE_OPEN) {
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
oxfw->playback_substreams++; ++oxfw->substreams_count;
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
} }
...@@ -253,7 +253,7 @@ static int pcm_capture_hw_free(struct snd_pcm_substream *substream) ...@@ -253,7 +253,7 @@ static int pcm_capture_hw_free(struct snd_pcm_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN) if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
oxfw->capture_substreams--; --oxfw->substreams_count;
snd_oxfw_stream_stop_duplex(oxfw); snd_oxfw_stream_stop_duplex(oxfw);
...@@ -268,7 +268,7 @@ static int pcm_playback_hw_free(struct snd_pcm_substream *substream) ...@@ -268,7 +268,7 @@ static int pcm_playback_hw_free(struct snd_pcm_substream *substream)
mutex_lock(&oxfw->mutex); mutex_lock(&oxfw->mutex);
if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN) if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
oxfw->playback_substreams--; --oxfw->substreams_count;
snd_oxfw_stream_stop_duplex(oxfw); snd_oxfw_stream_stop_duplex(oxfw);
......
...@@ -244,7 +244,7 @@ int snd_oxfw_stream_start_duplex(struct snd_oxfw *oxfw, ...@@ -244,7 +244,7 @@ int snd_oxfw_stream_start_duplex(struct snd_oxfw *oxfw,
enum avc_general_plug_dir dir; enum avc_general_plug_dir dir;
int err = 0; int err = 0;
if (oxfw->capture_substreams == 0 && oxfw->playback_substreams == 0) if (oxfw->substreams_count == 0)
return -EIO; return -EIO;
// Considering JACK/FFADO streaming: // Considering JACK/FFADO streaming:
...@@ -323,7 +323,7 @@ int snd_oxfw_stream_start_duplex(struct snd_oxfw *oxfw, ...@@ -323,7 +323,7 @@ int snd_oxfw_stream_start_duplex(struct snd_oxfw *oxfw,
void snd_oxfw_stream_stop_duplex(struct snd_oxfw *oxfw) void snd_oxfw_stream_stop_duplex(struct snd_oxfw *oxfw)
{ {
if (oxfw->capture_substreams == 0 && oxfw->playback_substreams == 0) { if (oxfw->substreams_count == 0) {
amdtp_stream_stop(&oxfw->rx_stream); amdtp_stream_stop(&oxfw->rx_stream);
cmp_connection_break(&oxfw->in_conn); cmp_connection_break(&oxfw->in_conn);
......
...@@ -52,8 +52,7 @@ struct snd_oxfw { ...@@ -52,8 +52,7 @@ struct snd_oxfw {
struct cmp_connection in_conn; struct cmp_connection in_conn;
struct amdtp_stream tx_stream; struct amdtp_stream tx_stream;
struct amdtp_stream rx_stream; struct amdtp_stream rx_stream;
unsigned int capture_substreams; unsigned int substreams_count;
unsigned int playback_substreams;
unsigned int midi_input_ports; unsigned int midi_input_ports;
unsigned int midi_output_ports; unsigned int midi_output_ports;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment