--- /dev/null
+From 61c606a43b6c74556e35acc645c7a1b6a67c2af9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Sch=C3=A4r?= <jan@jschaer.ch>
+Date: Tue, 5 Jul 2022 15:57:46 +0200
+Subject: ALSA: usb-audio: Add endianness annotations
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Jan Schär <jan@jschaer.ch>
+
+commit 61c606a43b6c74556e35acc645c7a1b6a67c2af9 upstream.
+
+Fixes: 4b8ea38fabab ("ALSA: usb-audio: Support jack detection on Dell dock")
+Reported-by: kernel test robot <lkp@intel.com>
+Link: https://lore.kernel.org/r/202207051932.qUilU0am-lkp@intel.com
+Signed-off-by: Jan Schär <jan@jschaer.ch>
+Link: https://lore.kernel.org/r/20220705135746.13713-1-jan@jschaer.ch
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ sound/usb/mixer_quirks.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/usb/mixer_quirks.c
++++ b/sound/usb/mixer_quirks.c
+@@ -1824,7 +1824,7 @@ static int snd_soundblaster_e1_switch_cr
+ static int realtek_hda_set(struct snd_usb_audio *chip, u32 cmd)
+ {
+ struct usb_device *dev = chip->dev;
+- u32 buf = cpu_to_be32(cmd);
++ __be32 buf = cpu_to_be32(cmd);
+
+ return snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), REALTEK_HDA_SET,
+ USB_RECIP_DEVICE | USB_TYPE_VENDOR | USB_DIR_OUT,
+@@ -1835,7 +1835,7 @@ static int realtek_hda_get(struct snd_us
+ {
+ struct usb_device *dev = chip->dev;
+ int err;
+- u32 buf = cpu_to_be32(cmd);
++ __be32 buf = cpu_to_be32(cmd);
+
+ err = snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), REALTEK_HDA_GET_OUT,
+ USB_RECIP_DEVICE | USB_TYPE_VENDOR | USB_DIR_OUT,
--- /dev/null
+From 73f476aa1975bae6a792b340f5b26ffcfba869a6 Mon Sep 17 00:00:00 2001
+From: Ioana Ciornei <ioana.ciornei@nxp.com>
+Date: Fri, 26 Feb 2021 17:30:20 +0200
+Subject: net: phy: ti: take into account all possible interrupt sources
+
+From: Ioana Ciornei <ioana.ciornei@nxp.com>
+
+commit 73f476aa1975bae6a792b340f5b26ffcfba869a6 upstream.
+
+The previous implementation of .handle_interrupt() did not take into
+account the fact that all the interrupt status registers should be
+acknowledged since multiple interrupt sources could be asserted.
+
+Fix this by reading all the status registers before exiting with
+IRQ_NONE or triggering the PHY state machine.
+
+Fixes: 1d1ae3c6ca3f ("net: phy: ti: implement generic .handle_interrupt() callback")
+Reported-by: Sven Schuchmann <schuchmann@schleissheimer.de>
+Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
+Link: https://lore.kernel.org/r/20210226153020.867852-1-ciorneiioana@gmail.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/phy/dp83822.c | 9 +++++----
+ drivers/net/phy/dp83tc811.c | 11 ++++++-----
+ 2 files changed, 11 insertions(+), 9 deletions(-)
+
+--- a/drivers/net/phy/dp83822.c
++++ b/drivers/net/phy/dp83822.c
+@@ -305,6 +305,7 @@ static int dp83822_config_intr(struct ph
+
+ static irqreturn_t dp83822_handle_interrupt(struct phy_device *phydev)
+ {
++ bool trigger_machine = false;
+ int irq_status;
+
+ /* The MISR1 and MISR2 registers are holding the interrupt status in
+@@ -320,7 +321,7 @@ static irqreturn_t dp83822_handle_interr
+ return IRQ_NONE;
+ }
+ if (irq_status & ((irq_status & GENMASK(7, 0)) << 8))
+- goto trigger_machine;
++ trigger_machine = true;
+
+ irq_status = phy_read(phydev, MII_DP83822_MISR2);
+ if (irq_status < 0) {
+@@ -328,11 +329,11 @@ static irqreturn_t dp83822_handle_interr
+ return IRQ_NONE;
+ }
+ if (irq_status & ((irq_status & GENMASK(7, 0)) << 8))
+- goto trigger_machine;
++ trigger_machine = true;
+
+- return IRQ_NONE;
++ if (!trigger_machine)
++ return IRQ_NONE;
+
+-trigger_machine:
+ phy_trigger_machine(phydev);
+
+ return IRQ_HANDLED;
+--- a/drivers/net/phy/dp83tc811.c
++++ b/drivers/net/phy/dp83tc811.c
+@@ -256,6 +256,7 @@ static int dp83811_config_intr(struct ph
+
+ static irqreturn_t dp83811_handle_interrupt(struct phy_device *phydev)
+ {
++ bool trigger_machine = false;
+ int irq_status;
+
+ /* The INT_STAT registers 1, 2 and 3 are holding the interrupt status
+@@ -271,7 +272,7 @@ static irqreturn_t dp83811_handle_interr
+ return IRQ_NONE;
+ }
+ if (irq_status & ((irq_status & GENMASK(7, 0)) << 8))
+- goto trigger_machine;
++ trigger_machine = true;
+
+ irq_status = phy_read(phydev, MII_DP83811_INT_STAT2);
+ if (irq_status < 0) {
+@@ -279,7 +280,7 @@ static irqreturn_t dp83811_handle_interr
+ return IRQ_NONE;
+ }
+ if (irq_status & ((irq_status & GENMASK(7, 0)) << 8))
+- goto trigger_machine;
++ trigger_machine = true;
+
+ irq_status = phy_read(phydev, MII_DP83811_INT_STAT3);
+ if (irq_status < 0) {
+@@ -287,11 +288,11 @@ static irqreturn_t dp83811_handle_interr
+ return IRQ_NONE;
+ }
+ if (irq_status & ((irq_status & GENMASK(7, 0)) << 8))
+- goto trigger_machine;
++ trigger_machine = true;
+
+- return IRQ_NONE;
++ if (!trigger_machine)
++ return IRQ_NONE;
+
+-trigger_machine:
+ phy_trigger_machine(phydev);
+
+ return IRQ_HANDLED;