sound fixes for 5.5-rc2

A small collection of fixes.  The main changes are fixes for a couple
 of regressions in AMD HD-audio and FireWire that were introduced in
 5.5-rc1.  The rest are small fixes for echoaudio and FireWire, as well
 as a usual Dell HD-audio fixup.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAl3yadwOHHRpd2FpQHN1
 c2UuZGUACgkQLtJE4w1nLE+ipw//Qa+x0w3AZeoOXQztEExEzJuiaRwEWNIpHY5/
 FykGjgS8RdmAjt1PJiXrvvyANA0JroOAErm4Jxd2e72cBhqTl90GQOmlOjn/EJkB
 El5PX4PE7+16pnOr8zi5Lsmi4JdZWSlWKcr0T71lvH+8TqDVQHP2cmVgBxKYjrNp
 7mipU45Yp5bT+R0B9BfYb6hyHeTGfOqnKDJvp5WHI8BNlTYjtByaWRWBKl5mdd+4
 OnM2//KT+U0+m/W+/Mla1m5eitcfxve3pha8MqLzHE48tWq92i2sHbBBf/6bvCwB
 zag8YWwZ8q9rnvm9+nqXhQ8ryZ4fwc4omxbCKjylKJDNP3wfUtlMWYeQOjgJxlQR
 8DirAW0hx3PWGPYkQIyyf01zlM3HYKf2KdbKEiMYODbCsuNJuHpFhVuXkPZ/ElEV
 XtWnW7OIfaMcHpme+ELcTKRSBL3CKPIG6WhUvngHvY4YkQDHMp/50YfOHBunkY0o
 1DFl1+D3iIsaymS5+u3tLA8XJj/Dujq6cbuS/xLwoSo54Hec8E8E4B7sC5ejezIG
 dHs+8z033zFr/t/U4ztHwtnMpdPhytCbbBUw/+2FHzMnuBm7Nelm1K99GiCu/H81
 5wS3ihLB4D0oS4FwpRu8uUkHTZa0JM+vu8/5NIlFLRv1hoHsKiDV3yAj8yMySMx3
 IboMRGo=
 =e3mk
 -----END PGP SIGNATURE-----

Merge tag 'sound-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "A small collection of fixes.

  The main changes are fixes for a couple of regressions in AMD HD-audio
  and FireWire that were introduced in 5.5-rc1. The rest are small fixes
  for echoaudio and FireWire, as well as a usual Dell HD-audio fixup"

* tag 'sound-5.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda/realtek - Line-out jack doesn't work on a Dell AIO
  ALSA: hda/hdmi - Fix duplicate unref of pci_dev
  ALSA: fireface: fix return value in error path of isochronous resources reservation
  ALSA: oxfw: fix return value in error path of isochronous resources reservation
  ALSA: firewire-motu: fix double unlocked 'motu->mutex'
  ALSA: echoaudio: simplify get_audio_levels
This commit is contained in:
Linus Torvalds 2019-12-13 14:40:38 -08:00
commit b61c56227b
6 changed files with 14 additions and 27 deletions

View File

@ -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)

View File

@ -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;
}
} }
} }

View File

@ -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)

View File

@ -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;
} }

View File

@ -1419,7 +1419,6 @@ static bool atpx_present(void)
return true; return true;
} }
} }
pci_dev_put(pdev);
} }
return false; return false;
} }

View File

@ -7643,11 +7643,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
{0x1a, 0x90a70130}, {0x1a, 0x90a70130},
{0x1b, 0x90170110}, {0x1b, 0x90170110},
{0x21, 0x03211020}), {0x21, 0x03211020}),
SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
{0x12, 0xb7a60130},
{0x13, 0xb8a61140},
{0x16, 0x90170110},
{0x21, 0x04211020}),
SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
{0x12, 0x90a60130}, {0x12, 0x90a60130},
{0x14, 0x90170110}, {0x14, 0x90170110},
@ -7841,6 +7836,9 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
{0x19, 0x40000000}, {0x19, 0x40000000},
{0x1a, 0x40000000}), {0x1a, 0x40000000}),
SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
{0x19, 0x40000000},
{0x1a, 0x40000000}),
{} {}
}; };