--- /dev/null
+From f406005e162b660dc405b4f18bf7bcb93a515608 Mon Sep 17 00:00:00 2001
+From: "Geoffrey D. Bennett" <g@b4.vu>
+Date: Thu, 17 Apr 2025 04:19:23 +0930
+Subject: ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface()
+
+From: Geoffrey D. Bennett <g@b4.vu>
+
+commit f406005e162b660dc405b4f18bf7bcb93a515608 upstream.
+
+During initialisation of Focusrite USB audio interfaces, -EPROTO is
+sometimes returned from usb_set_interface(), which sometimes prevents
+the device from working: subsequent usb_set_interface() and
+uac_clock_source_is_valid() calls fail.
+
+This patch adds up to 5 retries in endpoint_set_interface(), with a
+delay starting at 5ms and doubling each time. 5 retries was chosen to
+allow for longer than expected waits for the interface to start
+responding correctly; in testing, a single 5ms delay was sufficient to
+fix the issue.
+
+Closes: https://github.com/geoffreybennett/fcp-support/issues/2
+Cc: stable@vger.kernel.org
+Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
+Link: https://patch.msgid.link/Z//7s9dKsmVxHzY2@m.b4.vu
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/endpoint.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/sound/usb/endpoint.c
++++ b/sound/usb/endpoint.c
+@@ -926,6 +926,8 @@ static int endpoint_set_interface(struct
+ {
+ int altset = set ? ep->altsetting : 0;
+ int err;
++ int retries = 0;
++ const int max_retries = 5;
+
+ if (ep->iface_ref->altset == altset)
+ return 0;
+@@ -935,8 +937,13 @@ static int endpoint_set_interface(struct
+
+ usb_audio_dbg(chip, "Setting usb interface %d:%d for EP 0x%x\n",
+ ep->iface, altset, ep->ep_num);
++retry:
+ err = usb_set_interface(chip->dev, ep->iface, altset);
+ if (err < 0) {
++ if (err == -EPROTO && ++retries <= max_retries) {
++ msleep(5 * (1 << (retries - 1)));
++ goto retry;
++ }
+ usb_audio_err_ratelimited(
+ chip, "%d:%d: usb_set_interface failed (%d)\n",
+ ep->iface, altset, err);
--- /dev/null
+From 1149719442d28c96dc63cad432b5a6db7c300e1a Mon Sep 17 00:00:00 2001
+From: Joachim Priesner <joachim.priesner@web.de>
+Date: Mon, 28 Apr 2025 07:36:06 +0200
+Subject: ALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset
+
+From: Joachim Priesner <joachim.priesner@web.de>
+
+commit 1149719442d28c96dc63cad432b5a6db7c300e1a upstream.
+
+There seem to be multiple USB device IDs used for these;
+the one I have reports as 0b0e:030c when powered on.
+(When powered off, it reports as 0b0e:0311.)
+
+Signed-off-by: Joachim Priesner <joachim.priesner@web.de>
+Cc: <stable@vger.kernel.org>
+Link: https://patch.msgid.link/20250428053606.9237-1-joachim.priesner@web.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/format.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/sound/usb/format.c
++++ b/sound/usb/format.c
+@@ -260,7 +260,8 @@ static int parse_audio_format_rates_v1(s
+ }
+
+ /* Jabra Evolve 65 headset */
+- if (chip->usb_id == USB_ID(0x0b0e, 0x030b)) {
++ if (chip->usb_id == USB_ID(0x0b0e, 0x030b) ||
++ chip->usb_id == USB_ID(0x0b0e, 0x030c)) {
+ /* only 48kHz for playback while keeping 16kHz for capture */
+ if (fp->nr_rates != 1)
+ return set_fixed_rate(fp, 48000, SNDRV_PCM_RATE_48000);
--- /dev/null
+From 765f253e28909f161b0211f85cf0431cfee7d6df Mon Sep 17 00:00:00 2001
+From: Christian Heusel <christian@heusel.eu>
+Date: Thu, 24 Apr 2025 16:00:28 +0200
+Subject: Revert "rndis_host: Flag RNDIS modems as WWAN devices"
+
+From: Christian Heusel <christian@heusel.eu>
+
+commit 765f253e28909f161b0211f85cf0431cfee7d6df upstream.
+
+This reverts commit 67d1a8956d2d62fe6b4c13ebabb57806098511d8. Since this
+commit has been proven to be problematic for the setup of USB-tethered
+ethernet connections and the related breakage is very noticeable for
+users it should be reverted until a fixed version of the change can be
+rolled out.
+
+Closes: https://lore.kernel.org/all/e0df2d85-1296-4317-b717-bd757e3ab928@heusel.eu/
+Link: https://chaos.social/@gromit/114377862699921553
+Link: https://bugzilla.kernel.org/show_bug.cgi?id=220002
+Link: https://bugs.gentoo.org/953555
+Link: https://bbs.archlinux.org/viewtopic.php?id=304892
+Cc: stable@vger.kernel.org
+Acked-by: Lubomir Rintel <lkundrak@v3.sk>
+Signed-off-by: Christian Heusel <christian@heusel.eu>
+Link: https://patch.msgid.link/20250424-usb-tethering-fix-v1-1-b65cf97c740e@heusel.eu
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/usb/rndis_host.c | 16 ++--------------
+ 1 file changed, 2 insertions(+), 14 deletions(-)
+
+--- a/drivers/net/usb/rndis_host.c
++++ b/drivers/net/usb/rndis_host.c
+@@ -630,16 +630,6 @@ static const struct driver_info zte_rndi
+ .tx_fixup = rndis_tx_fixup,
+ };
+
+-static const struct driver_info wwan_rndis_info = {
+- .description = "Mobile Broadband RNDIS device",
+- .flags = FLAG_WWAN | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT,
+- .bind = rndis_bind,
+- .unbind = rndis_unbind,
+- .status = rndis_status,
+- .rx_fixup = rndis_rx_fixup,
+- .tx_fixup = rndis_tx_fixup,
+-};
+-
+ /*-------------------------------------------------------------------------*/
+
+ static const struct usb_device_id products [] = {
+@@ -676,11 +666,9 @@ static const struct usb_device_id produc
+ USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3),
+ .driver_info = (unsigned long) &rndis_info,
+ }, {
+- /* Mobile Broadband Modem, seen in Novatel Verizon USB730L and
+- * Telit FN990A (RNDIS)
+- */
++ /* Novatel Verizon USB730L */
+ USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1),
+- .driver_info = (unsigned long)&wwan_rndis_info,
++ .driver_info = (unsigned long) &rndis_info,
+ },
+ { }, // END
+ };
--- /dev/null
+revert-rndis_host-flag-rndis-modems-as-wwan-devices.patch
+alsa-usb-audio-add-retry-on-eproto-from-usb_set_interface.patch
+alsa-usb-audio-add-second-usb-id-for-jabra-evolve-65-headset.patch