aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2022-10-06 23:02:35 +0200
committerJan200101 <sentrycraft123@gmail.com>2022-10-06 23:02:35 +0200
commit6cc93e0191281aa5241c81edea40a7ef8cf4ca4d (patch)
tree84f2fa22f5cf2c264c6fba9e15721066dfc0b2dd
parent1f205a7894e0fd5cebfc54fef0f61160b085e8e7 (diff)
downloadkernel-fsync-6cc93e0191281aa5241c81edea40a7ef8cf4ca4d.tar.gz
kernel-fsync-6cc93e0191281aa5241c81edea40a7ef8cf4ca4d.zip
kernel 5.19.14
-rw-r--r--SOURCES/ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch200
-rw-r--r--SOURCES/patch-5.19-redhat.patch2
-rwxr-xr-xSPECS/kernel.spec15
3 files changed, 9 insertions, 208 deletions
diff --git a/SOURCES/ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch b/SOURCES/ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch
deleted file mode 100644
index d23deb0..0000000
--- a/SOURCES/ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-From 271f862ebc60b3a7ff1563654eb33cd4571c66aa Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Thu, 1 Sep 2022 14:41:36 +0200
-Subject: ALSA: usb-audio: Split endpoint setups for hw_params and prepare
-
-commit ff878b408a03bef5d610b7e2302702e16a53636e upstream.
-
-One of the former changes for the endpoint management was the more
-consistent setup of endpoints at hw_params.
-snd_usb_endpoint_configure() is a single function that does the full
-setup, and it's called from both PCM hw_params and prepare callbacks.
-Although the EP setup at the prepare phase is usually skipped (by
-checking need_setup flag), it may be still effective in some cases
-like suspend/resume that requires the interface setup again.
-
-As it's a full and single setup, the invocation of
-snd_usb_endpoint_configure() includes not only the USB interface setup
-but also the buffer release and allocation. OTOH, doing the buffer
-release and re-allocation at PCM prepare phase is rather superfluous,
-and better to be done only in the hw_params phase.
-
-For those optimizations, this patch splits the endpoint setup to two
-phases: snd_usb_endpoint_set_params() and snd_usb_endpoint_prepare(),
-to be called from hw_params and from prepare, respectively.
-
-Note that this patch changes the driver operation slightly,
-effectively moving the USB interface setup again to PCM prepare stage
-instead of hw_params stage, while the buffer allocation and such
-initializations are still done at hw_params stage.
-
-And, the change of the USB interface setup timing (moving to prepare)
-gave an interesting "fix", too: it was reported that the recent
-kernels caused silent output at the beginning on playbacks on some
-devices on Android, and this change casually fixed the regression.
-It seems that those devices are picky about the sample rate change (or
-the interface change?), and don't follow the too immediate rate
-changes.
-
-Meanwhile, Android operates the PCM in the following order:
-- open, then hw_params with the possibly highest sample rate
-- close without prepare
-- re-open, hw_params with the normal sample rate
-- prepare, and start streaming
-This procedure ended up the hw_params twice with different rates, and
-because the recent kernel did set up the sample rate twice one and
-after, it screwed up the device. OTOH, the earlier kernels didn't set
-up the USB interface at hw_params, hence this problem didn't appear.
-
-Now, with this patch, the USB interface setup is again back to the
-prepare phase, and it works around the problem automagically.
-Although we should address the sample rate problem in a more solid
-way in future, let's keep things working as before for now.
-
-Fixes: bf6313a0ff76 ("ALSA: usb-audio: Refactor endpoint management")
-Cc: <stable@vger.kernel.org>
-Reported-by: chihhao chen <chihhao.chen@mediatek.com>
-Link: https://lore.kernel.org/r/87e6d6ae69d68dc588ac9acc8c0f24d6188375c3.camel@mediatek.com
-Link: https://lore.kernel.org/r/20220901124136.4984-1-tiwai@suse.de
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- sound/usb/endpoint.c | 23 +++++++++--------------
- sound/usb/endpoint.h | 6 ++++--
- sound/usb/pcm.c | 14 ++++++++++----
- 3 files changed, 23 insertions(+), 20 deletions(-)
-
-diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
-index f9c921683948d..ff9c7bbbc43fe 100644
---- a/sound/usb/endpoint.c
-+++ b/sound/usb/endpoint.c
-@@ -758,7 +758,8 @@ bool snd_usb_endpoint_compatible(struct snd_usb_audio *chip,
- * The endpoint needs to be closed via snd_usb_endpoint_close() later.
- *
- * Note that this function doesn't configure the endpoint. The substream
-- * needs to set it up later via snd_usb_endpoint_configure().
-+ * needs to set it up later via snd_usb_endpoint_set_params() and
-+ * snd_usb_endpoint_prepare().
- */
- struct snd_usb_endpoint *
- snd_usb_endpoint_open(struct snd_usb_audio *chip,
-@@ -1290,12 +1291,13 @@ out_of_memory:
- /*
- * snd_usb_endpoint_set_params: configure an snd_usb_endpoint
- *
-+ * It's called either from hw_params callback.
- * Determine the number of URBs to be used on this endpoint.
- * An endpoint must be configured before it can be started.
- * An endpoint that is already running can not be reconfigured.
- */
--static int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
-- struct snd_usb_endpoint *ep)
-+int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
-+ struct snd_usb_endpoint *ep)
- {
- const struct audioformat *fmt = ep->cur_audiofmt;
- int err;
-@@ -1378,18 +1380,18 @@ static int init_sample_rate(struct snd_usb_audio *chip,
- }
-
- /*
-- * snd_usb_endpoint_configure: Configure the endpoint
-+ * snd_usb_endpoint_prepare: Prepare the endpoint
- *
- * This function sets up the EP to be fully usable state.
-- * It's called either from hw_params or prepare callback.
-+ * It's called either from prepare callback.
- * The function checks need_setup flag, and performs nothing unless needed,
- * so it's safe to call this multiple times.
- *
- * This returns zero if unchanged, 1 if the configuration has changed,
- * or a negative error code.
- */
--int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
-- struct snd_usb_endpoint *ep)
-+int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
-+ struct snd_usb_endpoint *ep)
- {
- bool iface_first;
- int err = 0;
-@@ -1410,9 +1412,6 @@ int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
- if (err < 0)
- goto unlock;
- }
-- err = snd_usb_endpoint_set_params(chip, ep);
-- if (err < 0)
-- goto unlock;
- goto done;
- }
-
-@@ -1440,10 +1439,6 @@ int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
- if (err < 0)
- goto unlock;
-
-- err = snd_usb_endpoint_set_params(chip, ep);
-- if (err < 0)
-- goto unlock;
--
- err = snd_usb_select_mode_quirk(chip, ep->cur_audiofmt);
- if (err < 0)
- goto unlock;
-diff --git a/sound/usb/endpoint.h b/sound/usb/endpoint.h
-index 6a9af04cf175a..e67ea28faa54f 100644
---- a/sound/usb/endpoint.h
-+++ b/sound/usb/endpoint.h
-@@ -17,8 +17,10 @@ snd_usb_endpoint_open(struct snd_usb_audio *chip,
- bool is_sync_ep);
- void snd_usb_endpoint_close(struct snd_usb_audio *chip,
- struct snd_usb_endpoint *ep);
--int snd_usb_endpoint_configure(struct snd_usb_audio *chip,
-- struct snd_usb_endpoint *ep);
-+int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
-+ struct snd_usb_endpoint *ep);
-+int snd_usb_endpoint_prepare(struct snd_usb_audio *chip,
-+ struct snd_usb_endpoint *ep);
- int snd_usb_endpoint_get_clock_rate(struct snd_usb_audio *chip, int clock);
-
- bool snd_usb_endpoint_compatible(struct snd_usb_audio *chip,
-diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
-index e692ae04436a5..02035b545f9dd 100644
---- a/sound/usb/pcm.c
-+++ b/sound/usb/pcm.c
-@@ -443,17 +443,17 @@ static int configure_endpoints(struct snd_usb_audio *chip,
- if (stop_endpoints(subs, false))
- sync_pending_stops(subs);
- if (subs->sync_endpoint) {
-- err = snd_usb_endpoint_configure(chip, subs->sync_endpoint);
-+ err = snd_usb_endpoint_prepare(chip, subs->sync_endpoint);
- if (err < 0)
- return err;
- }
-- err = snd_usb_endpoint_configure(chip, subs->data_endpoint);
-+ err = snd_usb_endpoint_prepare(chip, subs->data_endpoint);
- if (err < 0)
- return err;
- snd_usb_set_format_quirk(subs, subs->cur_audiofmt);
- } else {
- if (subs->sync_endpoint) {
-- err = snd_usb_endpoint_configure(chip, subs->sync_endpoint);
-+ err = snd_usb_endpoint_prepare(chip, subs->sync_endpoint);
- if (err < 0)
- return err;
- }
-@@ -551,7 +551,13 @@ static int snd_usb_hw_params(struct snd_pcm_substream *substream,
- subs->cur_audiofmt = fmt;
- mutex_unlock(&chip->mutex);
-
-- ret = configure_endpoints(chip, subs);
-+ if (subs->sync_endpoint) {
-+ ret = snd_usb_endpoint_set_params(chip, subs->sync_endpoint);
-+ if (ret < 0)
-+ goto unlock;
-+ }
-+
-+ ret = snd_usb_endpoint_set_params(chip, subs->data_endpoint);
-
- unlock:
- if (ret < 0)
---
-cgit
-
diff --git a/SOURCES/patch-5.19-redhat.patch b/SOURCES/patch-5.19-redhat.patch
index 6af2c8d..64174be 100644
--- a/SOURCES/patch-5.19-redhat.patch
+++ b/SOURCES/patch-5.19-redhat.patch
@@ -253,7 +253,7 @@ index 000000000000..733a26bd887a
+
+endmenu
diff --git a/Makefile b/Makefile
-index 2ecedf786e27..351174264fec 100644
+index ff4a15867145..975c3f82db13 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index c951345..fc53864 100755
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -122,17 +122,17 @@ Summary: The Linux kernel
# the --with-release option overrides this setting.)
%define debugbuildsenabled 1
%define buildid .fsync
-%define specversion 5.19.13
+%define specversion 5.19.14
%define patchversion 5.19
%define pkgrelease 200
%define kversion 5
-%define tarfile_release 5.19.13
+%define tarfile_release 5.19.14
# This is needed to do merge window version magic
%define patchlevel 19
# This allows pkg_release to have configurable %%{?dist} tag
%define specrelease 201%{?buildid}%{?dist}
# This defines the kabi tarball version
-%define kabiversion 5.19.13
+%define kabiversion 5.19.14
#
# End of genspec.sh variables
@@ -878,7 +878,6 @@ Patch401: 0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.patch
Patch402: amdgpu-regression.patch
Patch403: v3-1-7-acpi-x86-s2idle-Move-_HID-handling-for-AMD-systems-into-structures.patch
Patch405: mt76:-mt7921:-Disable-powersave-features-by-default.patch
-Patch406: ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch
Patch407: ACPI:-processor-idle:-Practically-limit-Dummy-wait-workaround-to-old-Intel-systems.patch
%endif
@@ -1472,7 +1471,6 @@ ApplyOptionalPatch 0001-Revert-PCI-Add-a-REBAR-size-quirk-for-Sapphire-RX-56.pat
ApplyOptionalPatch amdgpu-regression.patch
ApplyOptionalPatch v3-1-7-acpi-x86-s2idle-Move-_HID-handling-for-AMD-systems-into-structures.patch
ApplyOptionalPatch mt76:-mt7921:-Disable-powersave-features-by-default.patch
-ApplyOptionalPatch ALSA:-usb-audio:-Split-endpoint-setups-for-hw_params-and-prepare.patch
ApplyOptionalPatch ACPI:-processor-idle:-Practically-limit-Dummy-wait-workaround-to-old-Intel-systems.patch
%endif
@@ -3181,8 +3179,11 @@ fi
#
#
%changelog
-* Wed Oct 05 2022 Jan Drögehoff <sentrycraft123@gmail.com> - 5.19.13-201.fsync
-- Linux v5.19.13 futex2 zen openrgb
+* Thu Oct 06 2022 Jan Drögehoff <sentrycraft123@gmail.com> - 5.19.14-201.fsync
+- Linux v5.19.14 futex2 zen openrgb
+
+* Wed Oct 05 2022 Justin M. Forbes <jforbes@fedoraproject.org> [5.19.14-0]
+- Linux v5.19.14
* Tue Oct 04 2022 Justin M. Forbes <jforbes@fedoraproject.org> [5.19.13-0]
- Linux v5.19.13