summaryrefslogtreecommitdiffstats
path: root/sound/usb/clock.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2022-06-03 09:56:53 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2022-06-03 09:56:53 -0700
commit6f6ebb9899861c8a4e49cc7d9796d024f731b512 (patch)
tree182700b5145823f0bf9e7c84a3396754a7e10279 /sound/usb/clock.c
parentab18b7b36a82b1900687c5718f7d46f0d8e77d86 (diff)
parent672362cbe6df049299c8ed0a463d89daf66b081c (diff)
downloadlinux-6f6ebb9899861c8a4e49cc7d9796d024f731b512.tar.bz2
Merge tag 'sound-fix-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of small fixes for 5.19 merge window. Nothing particular stands out, as most changes are device-specific fixes and quirks" * tag 'sound-fix-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: selftests: alsa: Handle pkg-config failure more gracefully ALSA: usb-audio: Optimize TEAC clock quirk ASoC: da7219: cancel AAD related work earlier for jack removal ASoC: da7219: Fix pole orientation detection on certain headsets ASoC: Intel: avs: Fix build error on arc, m68k and sparc ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS ALSA: hda/via: Delete does not require return ALSA: hda/realtek: Enable 4-speaker output for Dell XPS 15 9520 laptop ASoC: Intel: common: fix typo for tplg naming ALSA: usb-audio: Cancel pending work at closing a MIDI substream ALSA: usb-audio: Add mixer mapping for Gigabyte B450/550 Mobos ASoC: rt5640: Do not manipulate pin "Platform Clock" if the "Platform Clock" is not in the DAPM ASoC: SOF: amd: Fixed Build error ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition ASoC: soc-pcm: fix BE transition for TRIGGER_START
Diffstat (limited to 'sound/usb/clock.c')
-rw-r--r--sound/usb/clock.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/usb/clock.c b/sound/usb/clock.c
index 3c435d379306..33db334e6556 100644
--- a/sound/usb/clock.c
+++ b/sound/usb/clock.c
@@ -573,10 +573,14 @@ static int set_sample_rate_v2v3(struct snd_usb_audio *chip,
}
/* FIXME - TEAC devices require the immediate interface setup */
- if (rate != prev_rate && USB_ID_VENDOR(chip->usb_id) == 0x0644) {
- usb_set_interface(chip->dev, fmt->iface, fmt->altsetting);
- if (chip->quirk_flags & QUIRK_FLAG_IFACE_DELAY)
- msleep(50);
+ if (USB_ID_VENDOR(chip->usb_id) == 0x0644) {
+ bool cur_base_48k = (rate % 48000 == 0);
+ bool prev_base_48k = (prev_rate % 48000 == 0);
+ if (cur_base_48k != prev_base_48k) {
+ usb_set_interface(chip->dev, fmt->iface, fmt->altsetting);
+ if (chip->quirk_flags & QUIRK_FLAG_IFACE_DELAY)
+ msleep(50);
+ }
}
validation: