From: Greg Kroah-Hartman Date: Thu, 12 Oct 2023 18:05:27 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v6.1.58~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=592ae03ecfc13e28a818b71456655e91eeefa363;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch --- diff --git a/queue-5.15/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch b/queue-5.15/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch new file mode 100644 index 00000000000..c15bce2ffa6 --- /dev/null +++ b/queue-5.15/alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch @@ -0,0 +1,43 @@ +From 6a83d6f3bb3c329a73e3483651fb77b78bac1878 Mon Sep 17 00:00:00 2001 +From: WhaleChang +Date: Fri, 6 Oct 2023 12:48:49 +0800 +Subject: ALSA: usb-audio: Fix microphone sound on Opencomm2 Headset + +From: WhaleChang + +commit 6a83d6f3bb3c329a73e3483651fb77b78bac1878 upstream. + +When a Opencomm2 Headset is connected to a Bluetooth USB dongle, +the audio playback functions properly, but the microphone does not work. + +In the dmesg logs, there are messages indicating that the init_pitch +function fails when the capture process begins. + +The microphone only functions when the ep pitch control is not set. + +Toggling the pitch control off bypasses the init_piatch function +and allows the microphone to work. + +Signed-off-by: WhaleChang +Link: https://lore.kernel.org/r/20231006044852.4181022-1-whalechang@google.com +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman +--- + sound/usb/quirks.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/sound/usb/quirks.c ++++ b/sound/usb/quirks.c +@@ -1725,7 +1725,11 @@ void snd_usb_audioformat_attributes_quir + /* mic works only when ep packet size is set to wMaxPacketSize */ + fp->attributes |= UAC_EP_CS_ATTR_FILL_MAX; + break; +- ++ case USB_ID(0x3511, 0x2b1e): /* Opencomm2 UC USB Bluetooth dongle */ ++ /* mic works only when ep pitch control is not set */ ++ if (stream == SNDRV_PCM_STREAM_CAPTURE) ++ fp->attributes &= ~UAC_EP_CS_ATTR_PITCH_CONTROL; ++ break; + } + } + diff --git a/queue-5.15/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch b/queue-5.15/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch new file mode 100644 index 00000000000..7dd285c0cc9 --- /dev/null +++ b/queue-5.15/asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch @@ -0,0 +1,53 @@ +From 197c53c8ecb34f2cd5922f4bdcffa8f701a134eb Mon Sep 17 00:00:00 2001 +From: Shengjiu Wang +Date: Tue, 19 Sep 2023 17:42:13 +0800 +Subject: ASoC: fsl_sai: Don't disable bitclock for i.MX8MP + +From: Shengjiu Wang + +commit 197c53c8ecb34f2cd5922f4bdcffa8f701a134eb upstream. + +On i.MX8MP, the BCE and TERE bit are binding with mclk +enablement, if BCE and TERE are cleared the MCLK also be +disabled on output pin, that cause the external codec (wm8960) +in wrong state. + +Codec (wm8960) is using the mclk to generate PLL clock, +if mclk is disabled before disabling PLL, the codec (wm8960) +won't generate bclk and frameclk when sysclk switch to +MCLK source in next test case. + +The test case: +$aplay -r44100 test1.wav (PLL source) +$aplay -r48000 test2.wav (MCLK source) +aplay: pcm_write:2127: write error: Input/output error + +Fixes: 269f399dc19f ("ASoC: fsl_sai: Disable bit clock with transmitter") +Signed-off-by: Shengjiu Wang +Link: https://lore.kernel.org/r/1695116533-23287-1-git-send-email-shengjiu.wang@nxp.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/fsl/fsl_sai.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- a/sound/soc/fsl/fsl_sai.c ++++ b/sound/soc/fsl/fsl_sai.c +@@ -557,10 +557,15 @@ static void fsl_sai_config_disable(struc + { + unsigned int ofs = sai->soc_data->reg_offset; + bool tx = dir == TX; +- u32 xcsr, count = 100; ++ u32 xcsr, count = 100, mask; ++ ++ if (sai->soc_data->mclk_with_tere && sai->mclk_direction_output) ++ mask = FSL_SAI_CSR_TERE; ++ else ++ mask = FSL_SAI_CSR_TERE | FSL_SAI_CSR_BCE; + + regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx, ofs), +- FSL_SAI_CSR_TERE | FSL_SAI_CSR_BCE, 0); ++ mask, 0); + + /* TERE will remain set till the end of current frame */ + do { diff --git a/queue-5.15/series b/queue-5.15/series index e33d8984d71..ecf92ba308f 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -12,3 +12,5 @@ lib-test_meminit-fix-off-by-one-error-in-test_pages.patch hid-logitech-hidpp-fix-kernel-crash-on-receiver-usb-disconnect.patch quota-fix-slow-quotaoff.patch net-prevent-address-rewrite-in-kernel_bind.patch +alsa-usb-audio-fix-microphone-sound-on-opencomm2-headset.patch +asoc-fsl_sai-don-t-disable-bitclock-for-i.mx8mp.patch