-LINUX_VERSION-6.6 = .108
-LINUX_KERNEL_HASH-6.6.108 = 601cd332aa695d16607b353feff369b4a0b36d111be077e8af54bdd41e1968a6
+LINUX_VERSION-6.6 = .109
+LINUX_KERNEL_HASH-6.6.109 = 7731cd99778cfdeedd63aa1b5aa8379511b97ec7df8c9eca44baed4e401730f4
* For devices with more than one control interface, we assume the
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
-@@ -2260,6 +2260,8 @@ static const struct usb_audio_quirk_flag
+@@ -2278,6 +2278,8 @@ static const struct usb_audio_quirk_flag
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
-@@ -4927,6 +4927,7 @@ static const struct {
+@@ -4934,6 +4934,7 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{
int ret = 0;
bool invalid_bdaddr;
size_t i;
-@@ -4955,7 +4956,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4962,7 +4963,8 @@ static int hci_dev_setup_sync(struct hci
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
if (!ret) {
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
-@@ -4927,7 +4927,8 @@ static const struct {
+@@ -4934,7 +4934,8 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{
#endif /* __KERNEL__ */
/**
-@@ -250,6 +252,4 @@ static inline void *offset_to_ptr(const
+@@ -259,6 +261,4 @@ static inline void *offset_to_ptr(const
*/
#define prevent_tail_call_optimization() mb()
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1509,6 +1509,7 @@ static void gswip_xrx200_phylink_get_cap
+@@ -1511,6 +1511,7 @@ static void gswip_xrx200_phylink_get_cap
case 2:
case 3:
case 4:
__set_bit(PHY_INTERFACE_MODE_INTERNAL,
config->supported_interfaces);
break;
-@@ -1540,6 +1541,7 @@ static void gswip_xrx300_phylink_get_cap
+@@ -1542,6 +1543,7 @@ static void gswip_xrx300_phylink_get_cap
case 2:
case 3:
case 4:
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -829,7 +829,7 @@ static int gswip_setup(struct dsa_switch
+@@ -830,7 +830,7 @@ static int gswip_setup(struct dsa_switch
err = gswip_pce_load_microcode(priv);
if (err) {
return err;
}
-@@ -1780,7 +1780,7 @@ static u32 gswip_bcm_ram_entry_read(stru
+@@ -1782,7 +1782,7 @@ static u32 gswip_bcm_ram_entry_read(stru
err = gswip_switch_r_timeout(priv, GSWIP_BM_RAM_CTRL,
GSWIP_BM_RAM_CTRL_BAS);
if (err) {
table, index);
return 0;
}
-@@ -2009,7 +2009,7 @@ static void gswip_gphy_fw_remove(struct
+@@ -2012,7 +2012,7 @@ static void gswip_gphy_fw_remove(struct
ret = regmap_write(priv->rcu_regmap, gphy_fw->fw_addr_offset, 0);
if (ret)
clk_disable_unprepare(gphy_fw->clk_gate);
-@@ -2038,7 +2038,7 @@ static int gswip_gphy_fw_list(struct gsw
+@@ -2041,7 +2041,7 @@ static int gswip_gphy_fw_list(struct gsw
priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
break;
default:
return -ENOENT;
}
}
-@@ -2048,7 +2048,7 @@ static int gswip_gphy_fw_list(struct gsw
+@@ -2051,7 +2051,7 @@ static int gswip_gphy_fw_list(struct gsw
priv->gphy_fw_name_cfg = match->data;
if (!priv->gphy_fw_name_cfg) {
return -ENOENT;
}
-@@ -2150,7 +2150,7 @@ static int gswip_probe(struct platform_d
+@@ -2153,7 +2153,7 @@ static int gswip_probe(struct platform_d
return -EINVAL;
break;
default:
return -ENOENT;
}
-@@ -2181,7 +2181,7 @@ static int gswip_probe(struct platform_d
+@@ -2184,7 +2184,7 @@ static int gswip_probe(struct platform_d
goto mdio_bus;
}
if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) {
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1919,11 +1919,9 @@ static int gswip_gphy_fw_load(struct gsw
+@@ -1922,11 +1922,9 @@ static int gswip_gphy_fw_load(struct gsw
msleep(200);
ret = request_firmware(&fw, gphy_fw->fw_name, dev);
/* GPHY cores need the firmware code in a persistent and contiguous
* memory area with a 16 kB boundary aligned start address.
-@@ -1936,9 +1934,9 @@ static int gswip_gphy_fw_load(struct gsw
+@@ -1939,9 +1937,9 @@ static int gswip_gphy_fw_load(struct gsw
dev_addr = ALIGN(dma_addr, XRX200_GPHY_FW_ALIGN);
memcpy(fw_addr, fw->data, fw->size);
} else {
}
release_firmware(fw);
-@@ -1965,8 +1963,8 @@ static int gswip_gphy_fw_probe(struct gs
+@@ -1968,8 +1966,8 @@ static int gswip_gphy_fw_probe(struct gs
gphy_fw->clk_gate = devm_clk_get(dev, gphyname);
if (IS_ERR(gphy_fw->clk_gate)) {
}
ret = of_property_read_u32(gphy_fw_np, "reg", &gphy_fw->fw_addr_offset);
-@@ -1986,8 +1984,8 @@ static int gswip_gphy_fw_probe(struct gs
+@@ -1989,8 +1987,8 @@ static int gswip_gphy_fw_probe(struct gs
gphy_fw->fw_name = priv->gphy_fw_name_cfg->ge_firmware_name;
break;
default:
}
gphy_fw->reset = of_reset_control_array_get_exclusive(gphy_fw_np);
-@@ -2038,8 +2036,9 @@ static int gswip_gphy_fw_list(struct gsw
+@@ -2041,8 +2039,9 @@ static int gswip_gphy_fw_list(struct gsw
priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
break;
default:
}
}
-@@ -2047,10 +2046,9 @@ static int gswip_gphy_fw_list(struct gsw
+@@ -2050,10 +2049,9 @@ static int gswip_gphy_fw_list(struct gsw
if (match && match->data)
priv->gphy_fw_name_cfg = match->data;
priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np);
if (!priv->num_gphy_fw)
-@@ -2150,8 +2148,8 @@ static int gswip_probe(struct platform_d
+@@ -2153,8 +2151,8 @@ static int gswip_probe(struct platform_d
return -EINVAL;
break;
default:
}
/* bring up the mdio bus */
-@@ -2159,10 +2157,9 @@ static int gswip_probe(struct platform_d
+@@ -2162,10 +2160,9 @@ static int gswip_probe(struct platform_d
if (gphy_fw_np) {
err = gswip_gphy_fw_list(priv, gphy_fw_np, version);
of_node_put(gphy_fw_np);
}
/* bring up the mdio bus */
-@@ -2170,20 +2167,20 @@ static int gswip_probe(struct platform_d
+@@ -2173,20 +2170,20 @@ static int gswip_probe(struct platform_d
if (mdio_np) {
err = gswip_mdio(priv, mdio_np);
if (err) {
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -891,8 +891,6 @@ static int gswip_setup(struct dsa_switch
+@@ -892,8 +892,6 @@ static int gswip_setup(struct dsa_switch
ds->mtu_enforcement_ingress = true;
+++ /dev/null
-From 86b9ea6412af41914ef6549f85a849c3b987f4f3 Mon Sep 17 00:00:00 2001
-From: Martin Schiller <ms@dev.tdt.de>
-Date: Tue, 11 Jun 2024 15:54:28 +0200
-Subject: net: dsa: lantiq_gswip: do also enable or disable cpu port
-
-Before commit 74be4babe72f ("net: dsa: do not enable or disable non user
-ports"), gswip_port_enable/disable() were also executed for the cpu port
-in gswip_setup() which disabled the cpu port during initialization.
-
-Let's restore this by removing the dsa_is_user_port checks. Also, let's
-clean up the gswip_port_enable() function so that we only have to check
-for the cpu port once. The operation reordering done here is safe.
-
-Signed-off-by: Martin Schiller <ms@dev.tdt.de>
-Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
-Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
-Link: https://lore.kernel.org/r/20240611135434.3180973-7-ms@dev.tdt.de
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/dsa/lantiq_gswip.c | 24 ++++++++----------------
- 1 file changed, 8 insertions(+), 16 deletions(-)
-
---- a/drivers/net/dsa/lantiq_gswip.c
-+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -688,13 +688,18 @@ static int gswip_port_enable(struct dsa_
- struct gswip_priv *priv = ds->priv;
- int err;
-
-- if (!dsa_is_user_port(ds, port))
-- return 0;
--
- if (!dsa_is_cpu_port(ds, port)) {
-+ u32 mdio_phy = 0;
-+
- err = gswip_add_single_port_br(priv, port, true);
- if (err)
- return err;
-+
-+ if (phydev)
-+ mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK;
-+
-+ gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy,
-+ GSWIP_MDIO_PHYp(port));
- }
-
- /* RMON Counter Enable for port */
-@@ -707,16 +712,6 @@ static int gswip_port_enable(struct dsa_
- gswip_switch_mask(priv, 0, GSWIP_SDMA_PCTRL_EN,
- GSWIP_SDMA_PCTRLp(port));
-
-- if (!dsa_is_cpu_port(ds, port)) {
-- u32 mdio_phy = 0;
--
-- if (phydev)
-- mdio_phy = phydev->mdio.addr & GSWIP_MDIO_PHY_ADDR_MASK;
--
-- gswip_mdio_mask(priv, GSWIP_MDIO_PHY_ADDR_MASK, mdio_phy,
-- GSWIP_MDIO_PHYp(port));
-- }
--
- return 0;
- }
-
-@@ -724,9 +719,6 @@ static void gswip_port_disable(struct ds
- {
- struct gswip_priv *priv = ds->priv;
-
-- if (!dsa_is_user_port(ds, port))
-- return;
--
- gswip_switch_mask(priv, GSWIP_FDMA_PCTRL_EN, 0,
- GSWIP_FDMA_PCTRLp(port));
- gswip_switch_mask(priv, GSWIP_SDMA_PCTRL_EN, 0,
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1457,12 +1457,11 @@ static int gswip_port_max_mtu(struct dsa
+@@ -1467,12 +1467,11 @@ static int gswip_port_max_mtu(struct dsa
static int gswip_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
{
struct gswip_priv *priv = ds->priv;
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1406,7 +1406,7 @@ static int gswip_port_fdb_dump(struct ds
+@@ -1416,7 +1416,7 @@ static int gswip_port_fdb_dump(struct ds
{
struct gswip_priv *priv = ds->priv;
struct gswip_pce_table_entry mac_bridge = {0,};
#define XRX200_GPHY_FW_ALIGN (16 * 1024)
-@@ -1297,10 +1299,11 @@ static void gswip_port_fast_age(struct d
+@@ -1306,10 +1308,11 @@ static void gswip_port_fast_age(struct d
if (!mac_bridge.valid)
continue;
continue;
mac_bridge.valid = false;
-@@ -1375,9 +1378,9 @@ static int gswip_port_fdb(struct dsa_swi
+@@ -1385,9 +1388,9 @@ static int gswip_port_fdb(struct dsa_swi
mac_bridge.key[0] = addr[5] | (addr[4] << 8);
mac_bridge.key[1] = addr[3] | (addr[2] << 8);
mac_bridge.key[2] = addr[1] | (addr[0] << 8);
mac_bridge.valid = add;
err = gswip_pce_table_entry_write(priv, &mac_bridge);
-@@ -1431,14 +1434,15 @@ static int gswip_port_fdb_dump(struct ds
+@@ -1441,14 +1444,15 @@ static int gswip_port_fdb_dump(struct ds
addr[2] = (mac_bridge.key[1] >> 8) & 0xff;
addr[1] = mac_bridge.key[2] & 0xff;
addr[0] = (mac_bridge.key[2] >> 8) & 0xff;
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -773,7 +773,7 @@ static int gswip_port_vlan_filtering(str
+@@ -782,7 +782,7 @@ static int gswip_port_vlan_filtering(str
}
if (vlan_filtering) {
gswip_switch_mask(priv,
GSWIP_PCE_VCTRL_VSR,
GSWIP_PCE_VCTRL_UVR | GSWIP_PCE_VCTRL_VIMR |
-@@ -782,7 +782,7 @@ static int gswip_port_vlan_filtering(str
+@@ -791,7 +791,7 @@ static int gswip_port_vlan_filtering(str
gswip_switch_mask(priv, GSWIP_PCE_PCTRL_0_TVM, 0,
GSWIP_PCE_PCTRL_0p(port));
} else {
--- a/drivers/net/dsa/lantiq_gswip.c
+++ b/drivers/net/dsa/lantiq_gswip.c
-@@ -1363,7 +1363,8 @@ static int gswip_port_fdb(struct dsa_swi
+@@ -1373,7 +1373,8 @@ static int gswip_port_fdb(struct dsa_swi
}
if (fid == -1) {