Commit d269b2e0 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'for-linus' into for-next

Back-merge the 5.5-devel branch for fixing FireWire bugs.
The upcoming PCM API update patchset relies on these.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parents e42617b8 6e8aeda2
...@@ -247,7 +247,7 @@ static int pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -247,7 +247,7 @@ static int pcm_hw_params(struct snd_pcm_substream *substream,
mutex_unlock(&ff->mutex); mutex_unlock(&ff->mutex);
} }
return 0; return err;
} }
static int pcm_hw_free(struct snd_pcm_substream *substream) static int pcm_hw_free(struct snd_pcm_substream *substream)
......
...@@ -177,18 +177,14 @@ static int pcm_open(struct snd_pcm_substream *substream) ...@@ -177,18 +177,14 @@ static int pcm_open(struct snd_pcm_substream *substream)
err = snd_pcm_hw_constraint_minmax(substream->runtime, err = snd_pcm_hw_constraint_minmax(substream->runtime,
SNDRV_PCM_HW_PARAM_PERIOD_SIZE, SNDRV_PCM_HW_PARAM_PERIOD_SIZE,
frames_per_period, frames_per_period); frames_per_period, frames_per_period);
if (err < 0) { if (err < 0)
mutex_unlock(&motu->mutex);
goto err_locked; goto err_locked;
}
err = snd_pcm_hw_constraint_minmax(substream->runtime, err = snd_pcm_hw_constraint_minmax(substream->runtime,
SNDRV_PCM_HW_PARAM_BUFFER_SIZE, SNDRV_PCM_HW_PARAM_BUFFER_SIZE,
frames_per_buffer, frames_per_buffer); frames_per_buffer, frames_per_buffer);
if (err < 0) { if (err < 0)
mutex_unlock(&motu->mutex);
goto err_locked; goto err_locked;
}
} }
} }
......
...@@ -285,7 +285,7 @@ static int pcm_playback_hw_params(struct snd_pcm_substream *substream, ...@@ -285,7 +285,7 @@ static int pcm_playback_hw_params(struct snd_pcm_substream *substream,
mutex_unlock(&oxfw->mutex); mutex_unlock(&oxfw->mutex);
} }
return 0; return err;
} }
static int pcm_capture_hw_free(struct snd_pcm_substream *substream) static int pcm_capture_hw_free(struct snd_pcm_substream *substream)
......
...@@ -635,36 +635,30 @@ This function assumes there are no more than 16 in/out busses or pipes ...@@ -635,36 +635,30 @@ This function assumes there are no more than 16 in/out busses or pipes
Meters is an array [3][16][2] of long. */ Meters is an array [3][16][2] of long. */
static void get_audio_meters(struct echoaudio *chip, long *meters) static void get_audio_meters(struct echoaudio *chip, long *meters)
{ {
int i, m, n; unsigned int i, m, n;
m = 0; for (i = 0 ; i < 96; i++)
n = 0; meters[i] = 0;
for (i = 0; i < num_busses_out(chip); i++, m++) {
for (m = 0, n = 0, i = 0; i < num_busses_out(chip); i++, m++) {
meters[n++] = chip->comm_page->vu_meter[m]; meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m]; meters[n++] = chip->comm_page->peak_meter[m];
} }
for (; n < 32; n++)
meters[n] = 0;
#ifdef ECHOCARD_ECHO3G #ifdef ECHOCARD_ECHO3G
m = E3G_MAX_OUTPUTS; /* Skip unused meters */ m = E3G_MAX_OUTPUTS; /* Skip unused meters */
#endif #endif
for (i = 0; i < num_busses_in(chip); i++, m++) { for (n = 32, i = 0; i < num_busses_in(chip); i++, m++) {
meters[n++] = chip->comm_page->vu_meter[m]; meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m]; meters[n++] = chip->comm_page->peak_meter[m];
} }
for (; n < 64; n++)
meters[n] = 0;
#ifdef ECHOCARD_HAS_VMIXER #ifdef ECHOCARD_HAS_VMIXER
for (i = 0; i < num_pipes_out(chip); i++, m++) { for (n = 64, i = 0; i < num_pipes_out(chip); i++, m++) {
meters[n++] = chip->comm_page->vu_meter[m]; meters[n++] = chip->comm_page->vu_meter[m];
meters[n++] = chip->comm_page->peak_meter[m]; meters[n++] = chip->comm_page->peak_meter[m];
} }
#endif #endif
for (; n < 96; n++)
meters[n] = 0;
} }
......
...@@ -1419,7 +1419,6 @@ static bool atpx_present(void) ...@@ -1419,7 +1419,6 @@ static bool atpx_present(void)
return true; return true;
} }
} }
pci_dev_put(pdev);
} }
return false; return false;
} }
......
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