mirror of https://gitee.com/openkylin/linux.git
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:
commit
b61c56227b
|
@ -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)
|
||||||
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,
|
||||||
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
|
||||||
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)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pci_dev_put(pdev);
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}),
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue