module_param_named(mousepoll, hid_mousepoll_interval, uint, 0644);
MODULE_PARM_DESC(mousepoll, "Polling interval of mice");
-@@ -1114,7 +1114,9 @@ static int usbhid_start(struct hid_devic
+@@ -1117,7 +1117,9 @@ static int usbhid_start(struct hid_devic
*/
switch (hid->collection->usage) {
case HID_GD_MOUSE:
interval = hid_mousepoll_interval;
break;
case HID_GD_JOYSTICK:
-@@ -1126,6 +1128,7 @@ static int usbhid_start(struct hid_devic
+@@ -1129,6 +1131,7 @@ static int usbhid_start(struct hid_devic
interval = hid_kbpoll_interval;
break;
}
ddc = of_parse_phandle(dev->of_node, "ddc-i2c-bus", 0);
if (ddc) {
panel->ddc = of_find_i2c_adapter_by_node(ddc);
-@@ -2262,6 +2243,32 @@ static const struct panel_desc friendlya
+@@ -2263,6 +2244,32 @@ static const struct panel_desc friendlya
},
};
static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
.clock = 9000,
.hdisplay = 480,
-@@ -2442,6 +2449,38 @@ static const struct panel_desc innolux_a
+@@ -2443,6 +2450,38 @@ static const struct panel_desc innolux_a
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
};
static const struct drm_display_mode innolux_at070tn92_mode = {
.clock = 33333,
.hdisplay = 800,
-@@ -3855,6 +3894,31 @@ static const struct panel_desc rocktech_
+@@ -3856,6 +3895,31 @@ static const struct panel_desc rocktech_
.connector_type = DRM_MODE_CONNECTOR_DPI,
};
static const struct display_timing rocktech_rk070er9427_timing = {
.pixelclock = { 26400000, 33300000, 46800000 },
.hactive = { 800, 800, 800 },
-@@ -4799,6 +4863,9 @@ static const struct of_device_id platfor
+@@ -4800,6 +4864,9 @@ static const struct of_device_id platfor
.compatible = "friendlyarm,hd702e",
.data = &friendlyarm_hd702e,
}, {
.compatible = "giantplus,gpg482739qs5",
.data = &giantplus_gpg482739qs5
}, {
-@@ -4820,6 +4887,9 @@ static const struct of_device_id platfor
+@@ -4821,6 +4888,9 @@ static const struct of_device_id platfor
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
}, {
.compatible = "innolux,at070tn92",
.data = &innolux_at070tn92,
}, {
-@@ -4979,6 +5049,9 @@ static const struct of_device_id platfor
+@@ -4980,6 +5050,9 @@ static const struct of_device_id platfor
.compatible = "rocktech,rk043fn48h",
.data = &rocktech_rk043fn48h,
}, {
.compatible = "rocktech,rk070er9427",
.data = &rocktech_rk070er9427,
}, {
-@@ -5335,6 +5408,9 @@ static const struct panel_desc_dsi osd10
+@@ -5336,6 +5409,9 @@ static const struct panel_desc_dsi osd10
.lanes = 4,
};
static const struct of_device_id dsi_of_match[] = {
{
.compatible = "auo,b080uan01",
-@@ -5358,20 +5434,137 @@ static const struct of_device_id dsi_of_
+@@ -5359,20 +5435,137 @@ static const struct of_device_id dsi_of_
.compatible = "osddisplays,osd101t2045-53ts",
.data = &osd101t2045_53ts
}, {
#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
unsigned int pageblock_order __read_mostly;
#endif
-@@ -2269,12 +2290,13 @@ __rmqueue(struct zone *zone, unsigned in
+@@ -2265,12 +2286,13 @@ __rmqueue(struct zone *zone, unsigned in
if (IS_ENABLED(CONFIG_CMA)) {
/*
* Balance movable allocations between regular and CMA areas by
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
-@@ -4866,6 +4866,7 @@ static const struct {
+@@ -4877,6 +4877,7 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{
int ret = 0;
bool invalid_bdaddr;
size_t i;
-@@ -4894,7 +4895,8 @@ static int hci_dev_setup_sync(struct hci
+@@ -4905,7 +4906,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/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
-@@ -1212,7 +1212,11 @@ static const struct dwcmshc_pltfm_data s
+@@ -1236,7 +1236,11 @@ static const struct dwcmshc_pltfm_data s
.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
-@@ -220,6 +220,7 @@ struct rk35xx_priv {
+@@ -221,6 +221,7 @@ struct rk35xx_priv {
struct dwcmshc_priv {
struct clk *bus_clk;
int vendor_specific_area1; /* P_VENDOR_SPECIFIC_AREA1 reg */
int vendor_specific_area2; /* P_VENDOR_SPECIFIC_AREA2 reg */
-@@ -288,6 +289,17 @@ static void dwcmshc_adma_write_desc(stru
+@@ -289,6 +290,17 @@ static void dwcmshc_adma_write_desc(stru
sdhci_adma_write_desc(host, desc, addr, len, cmd);
}
static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host)
{
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
-@@ -1114,10 +1126,11 @@ static int sg2042_init(struct device *de
+@@ -1138,10 +1150,11 @@ static int sg2042_init(struct device *de
}
static const struct sdhci_ops sdhci_dwcmshc_ops = {
.reset = sdhci_reset,
.adma_write_desc = dwcmshc_adma_write_desc,
.irq = dwcmshc_cqe_irq_handler,
-@@ -1190,8 +1203,10 @@ static const struct sdhci_ops sdhci_dwcm
+@@ -1214,8 +1227,10 @@ static const struct sdhci_ops sdhci_dwcm
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = {
.pdata = {
.ops = &sdhci_dwcmshc_ops,
},
};
-@@ -1206,6 +1221,15 @@ static const struct dwcmshc_pltfm_data s
+@@ -1230,6 +1245,15 @@ static const struct dwcmshc_pltfm_data s
};
#endif
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = {
.pdata = {
.ops = &sdhci_dwcmshc_rk35xx_ops,
-@@ -1317,6 +1341,10 @@ dsbl_cqe_caps:
+@@ -1353,6 +1377,10 @@ dsbl_cqe_caps:
static const struct of_device_id sdhci_dwcmshc_dt_ids[] = {
{
.compatible = "rockchip,rk3588-dwcmshc",
.data = &sdhci_dwcmshc_rk35xx_pdata,
},
-@@ -1405,13 +1433,32 @@ static int dwcmshc_probe(struct platform
+@@ -1445,13 +1473,32 @@ static int dwcmshc_probe(struct platform
priv->bus_clk = devm_clk_get(dev, "bus");
if (!IS_ERR(priv->bus_clk))
clk_prepare_enable(priv->bus_clk);
priv->vendor_specific_area1 =
sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK;
-@@ -1471,6 +1518,7 @@ err_rpm:
+@@ -1511,6 +1558,7 @@ err_rpm:
pm_runtime_put_noidle(dev);
err_clk:
clk_disable_unprepare(pltfm_host->clk);
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
-@@ -519,4 +519,11 @@ config SPRD_IOMMU
+@@ -518,4 +518,11 @@ config SPRD_IOMMU
Say Y here if you want to use the multimedia devices listed above.
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
-@@ -4866,7 +4866,8 @@ static const struct {
+@@ -4877,7 +4877,8 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
-@@ -120,6 +120,15 @@ config RASPBERRYPI_FIRMWARE
+@@ -119,6 +119,15 @@ config RASPBERRYPI_FIRMWARE
This option enables support for communicating with the firmware on the
Raspberry Pi.
KUNIT_ASSERT_EQ(test, hweight32(encoder->possible_crtcs), 1);
--- a/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
+++ b/drivers/gpu/drm/vc4/tests/vc4_mock_output.c
-@@ -77,7 +77,7 @@ int vc4_mock_atomic_add_output(struct ku
- encoder = vc4_find_encoder_by_type(drm, type);
- KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
+@@ -78,7 +78,7 @@ int vc4_mock_atomic_add_output(struct ku
+ if (!encoder)
+ return -ENODEV;
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
- KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
+ if (!crtc)
+ return -ENODEV;
- output = encoder_to_vc4_dummy_output(encoder);
-@@ -115,7 +115,7 @@ int vc4_mock_atomic_del_output(struct ku
- encoder = vc4_find_encoder_by_type(drm, type);
- KUNIT_ASSERT_NOT_ERR_OR_NULL(test, encoder);
+@@ -122,7 +122,7 @@ int vc4_mock_atomic_del_output(struct ku
+ if (!encoder)
+ return -ENODEV;
- crtc = vc4_find_crtc_for_encoder(test, drm, encoder);
+ crtc = vc4_find_crtc_for_encoder(test, encoder);
- KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc);
+ if (!crtc)
+ return -ENODEV;
- crtc_state = drm_atomic_get_crtc_state(state, crtc);
--- a/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
+++ b/drivers/gpu/drm/vc4/tests/vc4_test_pv_muxing.c
@@ -131,7 +131,7 @@ get_vc4_crtc_state_for_encoder(struct ku
{
struct drm_device *drm = state->dev;
struct drm_connector_state *conn_state;
-@@ -96,7 +97,7 @@ int vc4_mock_atomic_add_output(struct ku
+@@ -102,7 +103,7 @@ int vc4_mock_atomic_add_output(struct ku
crtc_state->active = true;
--- a/drivers/mmc/host/sdhci-of-dwcmshc.c
+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c
-@@ -1221,13 +1221,15 @@ static const struct dwcmshc_pltfm_data s
+@@ -1245,13 +1245,15 @@ static const struct dwcmshc_pltfm_data s
};
#endif
+++ /dev/null
-From 5ad20e3d8cfe3b2e42bbddc7e0ebaa74479bb589 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Thu, 29 May 2025 15:09:14 +0200
-Subject: [PATCH] spi: bcm63xx-spi: fix shared reset
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
-and HSSPI controllers, so reset shouldn't be exclusive.
-
-Fixes: 38807adeaf1e ("spi: bcm63xx-spi: add reset support")
-Reported-by: Jonas Gorski <jonas.gorski@gmail.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-Link: https://patch.msgid.link/20250529130915.2519590-2-noltari@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- drivers/spi/spi-bcm63xx.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/spi-bcm63xx.c
-+++ b/drivers/spi/spi-bcm63xx.c
-@@ -523,7 +523,7 @@ static int bcm63xx_spi_probe(struct plat
- return PTR_ERR(clk);
- }
-
-- reset = devm_reset_control_get_optional_exclusive(dev, NULL);
-+ reset = devm_reset_control_get_optional_shared(dev, NULL);
- if (IS_ERR(reset))
- return PTR_ERR(reset);
-
+++ /dev/null
-From 3d6d84c8f2f66d3fd6a43a1e2ce8e6b54c573960 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Thu, 29 May 2025 15:09:15 +0200
-Subject: [PATCH] spi: bcm63xx-hsspi: fix shared reset
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some bmips SoCs (bcm6362, bcm63268) share the same SPI reset for both SPI
-and HSSPI controllers, so reset shouldn't be exclusive.
-
-Fixes: 0eeadddbf09a ("spi: bcm63xx-hsspi: add reset support")
-Reported-by: Jonas Gorski <jonas.gorski@gmail.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-Link: https://patch.msgid.link/20250529130915.2519590-3-noltari@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- drivers/spi/spi-bcm63xx-hsspi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/spi/spi-bcm63xx-hsspi.c
-+++ b/drivers/spi/spi-bcm63xx-hsspi.c
-@@ -745,7 +745,7 @@ static int bcm63xx_hsspi_probe(struct pl
- if (IS_ERR(clk))
- return PTR_ERR(clk);
-
-- reset = devm_reset_control_get_optional_exclusive(dev, NULL);
-+ reset = devm_reset_control_get_optional_shared(dev, NULL);
- if (IS_ERR(reset))
- return PTR_ERR(reset);
-
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2358,13 +2358,16 @@ int b53_eee_init(struct dsa_switch *ds,
+@@ -2343,13 +2343,16 @@ int b53_eee_init(struct dsa_switch *ds,
}
EXPORT_SYMBOL(b53_eee_init);
return 0;
}
EXPORT_SYMBOL(b53_get_mac_eee);
-@@ -2374,9 +2377,6 @@ int b53_set_mac_eee(struct dsa_switch *d
+@@ -2359,9 +2362,6 @@ int b53_set_mac_eee(struct dsa_switch *d
struct b53_device *dev = ds->priv;
struct ethtool_keee *p = &dev->ports[port].eee;
p->eee_enabled = e->eee_enabled;
b53_eee_enable_set(ds, port, e->eee_enabled);
-@@ -2433,6 +2433,7 @@ static const struct dsa_switch_ops b53_s
+@@ -2418,6 +2418,7 @@ static const struct dsa_switch_ops b53_s
.port_setup = b53_setup_port,
.port_enable = b53_enable_port,
.port_disable = b53_disable_port,
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2552,6 +2552,19 @@ static const struct b53_chip_data b53_sw
+@@ -2537,6 +2537,19 @@ static const struct b53_chip_data b53_sw
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
},
{
.chip_id = BCM53115_DEVICE_ID,
.dev_name = "BCM53115",
.vlans = 4096,
-@@ -2932,6 +2945,7 @@ int b53_switch_detect(struct b53_device
+@@ -2917,6 +2930,7 @@ int b53_switch_detect(struct b53_device
return ret;
switch (id32) {
ret = b53_reset_switch(dev);
if (ret) {
dev_err(ds->dev, "failed to reset switch\n");
-@@ -2412,6 +2417,28 @@ static int b53_get_max_mtu(struct dsa_sw
+@@ -2397,6 +2402,28 @@ static int b53_get_max_mtu(struct dsa_sw
return B53_MAX_MTU;
}
static const struct phylink_mac_ops b53_phylink_mac_ops = {
.mac_select_pcs = b53_phylink_mac_select_pcs,
.mac_config = b53_phylink_mac_config,
-@@ -2436,6 +2463,7 @@ static const struct dsa_switch_ops b53_s
+@@ -2421,6 +2448,7 @@ static const struct dsa_switch_ops b53_s
.support_eee = b53_support_eee,
.get_mac_eee = b53_get_mac_eee,
.set_mac_eee = b53_set_mac_eee,
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2353,6 +2353,9 @@ int b53_eee_init(struct dsa_switch *ds,
+@@ -2338,6 +2338,9 @@ int b53_eee_init(struct dsa_switch *ds,
{
int ret;
ret = phy_init_eee(phy, false);
if (ret)
return 0;
-@@ -2367,7 +2370,7 @@ bool b53_support_eee(struct dsa_switch *
+@@ -2352,7 +2355,7 @@ bool b53_support_eee(struct dsa_switch *
{
struct b53_device *dev = ds->priv;
+++ /dev/null
-From 4af523551d876ab8b8057d1e5303a860fd736fcb Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Mon, 2 Jun 2025 21:39:50 +0200
-Subject: [PATCH] net: dsa: b53: do not enable RGMII delay on bcm63xx
-
-bcm63xx's RGMII ports are always in MAC mode, never in PHY mode, so we
-shouldn't enable any delays and let the PHY handle any delays as
-necessary.
-
-This fixes using RGMII ports with normal PHYs like BCM54612E, which will
-handle the delay in the PHY.
-
-Fixes: ce3bf94871f7 ("net: dsa: b53: add support for BCM63xx RGMIIs")
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-Link: https://patch.msgid.link/20250602193953.1010487-3-jonas.gorski@gmail.com
-Signed-off-by: Paolo Abeni <pabeni@redhat.com>
----
- drivers/net/dsa/b53/b53_common.c | 19 +------------------
- 1 file changed, 1 insertion(+), 18 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1330,24 +1330,7 @@ static void b53_adjust_63xx_rgmii(struct
- off = B53_RGMII_CTRL_P(port);
-
- b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
--
-- switch (interface) {
-- case PHY_INTERFACE_MODE_RGMII_ID:
-- rgmii_ctrl |= (RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
-- break;
-- case PHY_INTERFACE_MODE_RGMII_RXID:
-- rgmii_ctrl &= ~(RGMII_CTRL_DLL_TXC);
-- rgmii_ctrl |= RGMII_CTRL_DLL_RXC;
-- break;
-- case PHY_INTERFACE_MODE_RGMII_TXID:
-- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC);
-- rgmii_ctrl |= RGMII_CTRL_DLL_TXC;
-- break;
-- case PHY_INTERFACE_MODE_RGMII:
-- default:
-- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
-- break;
-- }
-+ rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
-
- if (port != dev->imp_port) {
- if (is63268(dev))
{
struct b53_device *dev = ds->priv;
- u8 rgmii_ctrl = 0, off;
-+ u8 rgmii_ctrl = 0;
-
+-
- if (port == dev->imp_port)
- off = B53_RGMII_CTRL_IMP;
- else
- off = B53_RGMII_CTRL_P(port);
--
++ u8 rgmii_ctrl = 0;
+
- b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
+ b53_read8(dev, B53_CTRL_PAGE, B53_RGMII_CTRL_P(port), &rgmii_ctrl);
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
dev_dbg(ds->dev, "Configured port %d for %s\n", port,
phy_modes(interface));
-@@ -1484,7 +1478,7 @@ static void b53_phylink_mac_config(struc
+@@ -1490,7 +1484,7 @@ static void b53_phylink_mac_config(struc
struct b53_device *dev = ds->priv;
int port = dp->index;
+++ /dev/null
-From 5ea0d42c1980e6d10e5cb56a78021db5bfcebaaf Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Mon, 2 Jun 2025 21:39:52 +0200
-Subject: [PATCH] net: dsa: b53: allow RGMII for bcm63xx RGMII ports
-
-Add RGMII to supported interfaces for BCM63xx RGMII ports so they can be
-actually used in RGMII mode.
-
-Without this, phylink will fail to configure them:
-
-[ 3.580000] b53-switch 10700000.switch GbE3 (uninitialized): validation of rgmii with support 0000000,00000000,00000000,000062ff and advertisement 0000000,00000000,00000000,000062ff failed: -EINVAL
-[ 3.600000] b53-switch 10700000.switch GbE3 (uninitialized): failed to connect to PHY: -EINVAL
-[ 3.610000] b53-switch 10700000.switch GbE3 (uninitialized): error -22 setting up PHY for tree 0, switch 0, port 4
-
-Fixes: ce3bf94871f7 ("net: dsa: b53: add support for BCM63xx RGMIIs")
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
-Link: https://patch.msgid.link/20250602193953.1010487-5-jonas.gorski@gmail.com
-Signed-off-by: Paolo Abeni <pabeni@redhat.com>
----
- drivers/net/dsa/b53/b53_common.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1439,6 +1439,10 @@ static void b53_phylink_get_caps(struct
- __set_bit(PHY_INTERFACE_MODE_MII, config->supported_interfaces);
- __set_bit(PHY_INTERFACE_MODE_REVMII, config->supported_interfaces);
-
-+ /* BCM63xx RGMII ports support RGMII */
-+ if (is63xx(dev) && in_range(port, B53_63XX_RGMII0, 4))
-+ phy_interface_set_rgmii(config->supported_interfaces);
-+
- config->mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
- MAC_10 | MAC_100;
-
+++ /dev/null
-From bc1a65eb81a21e2aa3c3dca058ee8adf687b6ef5 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Mon, 2 Jun 2025 21:39:53 +0200
-Subject: [PATCH] net: dsa: b53: do not touch DLL_IQQD on bcm53115
-
-According to OpenMDK, bit 2 of the RGMII register has a different
-meaning for BCM53115 [1]:
-
-"DLL_IQQD 1: In the IDDQ mode, power is down0: Normal function
- mode"
-
-Configuring RGMII delay works without setting this bit, so let's keep it
-at the default. For other chips, we always set it, so not clearing it
-is not an issue.
-
-One would assume BCM53118 works the same, but OpenMDK is not quite sure
-what this bit actually means [2]:
-
-"BYPASS_IMP_2NS_DEL #1: In the IDDQ mode, power is down#0: Normal
- function mode1: Bypass dll65_2ns_del IP0: Use
- dll65_2ns_del IP"
-
-So lets keep setting it for now.
-
-[1] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53115/bcm53115_a0_defs.h#L19871
-[2] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53118/bcm53118_a0_defs.h#L14392
-
-Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
-Link: https://patch.msgid.link/20250602193953.1010487-6-jonas.gorski@gmail.com
-Signed-off-by: Paolo Abeni <pabeni@redhat.com>
----
- drivers/net/dsa/b53/b53_common.c | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -1354,8 +1354,7 @@ static void b53_adjust_531x5_rgmii(struc
- * tx_clk aligned timing (restoring to reset defaults)
- */
- b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
-- rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC |
-- RGMII_CTRL_TIMING_SEL);
-+ rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
-
- /* PHY_INTERFACE_MODE_RGMII_TXID means TX internal delay, make
- * sure that we enable the port TX clock internal delay to
-@@ -1375,7 +1374,10 @@ static void b53_adjust_531x5_rgmii(struc
- rgmii_ctrl |= RGMII_CTRL_DLL_TXC;
- if (interface == PHY_INTERFACE_MODE_RGMII)
- rgmii_ctrl |= RGMII_CTRL_DLL_TXC | RGMII_CTRL_DLL_RXC;
-- rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
-+
-+ if (dev->chip_id != BCM53115_DEVICE_ID)
-+ rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
-+
- b53_write8(dev, B53_CTRL_PAGE, off, rgmii_ctrl);
-
- dev_info(ds->dev, "Configured port %d for %s\n", port,
+++ /dev/null
-From efdddc4484859082da6c7877ed144c8121c8ea55 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Thu, 29 May 2025 14:44:06 +0200
-Subject: [PATCH] net: dsa: tag_brcm: legacy: fix pskb_may_pull length
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-BRCM_LEG_PORT_ID was incorrectly used for pskb_may_pull length.
-The correct check is BRCM_LEG_TAG_LEN + VLAN_HLEN, or 10 bytes.
-
-Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags")
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-Link: https://patch.msgid.link/20250529124406.2513779-1-noltari@gmail.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- net/dsa/tag_brcm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/net/dsa/tag_brcm.c
-+++ b/net/dsa/tag_brcm.c
-@@ -257,7 +257,7 @@ static struct sk_buff *brcm_leg_tag_rcv(
- int source_port;
- u8 *brcm_tag;
-
-- if (unlikely(!pskb_may_pull(skb, BRCM_LEG_PORT_ID)))
-+ if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN)))
- return NULL;
-
- brcm_tag = dsa_etype_header_pos_rx(skb);
This driver adds support for Broadcom managed switch chips. It supports
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2245,8 +2245,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
+@@ -2241,8 +2241,11 @@ enum dsa_tag_protocol b53_get_tag_protoc
goto out;
}
/* Issue a read operation for this MAC */
ret = b53_arl_rw_op(dev, 1);
-@@ -2844,6 +2845,9 @@ static int b53_switch_init(struct b53_de
+@@ -2840,6 +2841,9 @@ static int b53_switch_init(struct b53_de
}
}
dev->num_ports = fls(dev->enabled_ports);
dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS);
-@@ -2945,10 +2949,24 @@ int b53_switch_detect(struct b53_device
+@@ -2941,10 +2945,24 @@ int b53_switch_detect(struct b53_device
b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, 0xf);
b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, &tmp);
b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®);
if (learning)
reg &= ~BIT(port);
-@@ -2247,7 +2250,13 @@ int b53_br_flags_pre(struct dsa_switch *
+@@ -2243,7 +2246,13 @@ int b53_br_flags_pre(struct dsa_switch *
struct switchdev_brport_flags flags,
struct netlink_ext_ack *extack)
{
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -3385,11 +3385,17 @@ static int of_phy_led(struct phy_device
+@@ -3387,11 +3387,17 @@ static int of_phy_led(struct phy_device
if (index > U8_MAX)
return -EINVAL;
if (!phydev->drv->led_polarity_set)
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -877,8 +877,9 @@ struct phy_plca_status {
+@@ -874,8 +874,9 @@ struct phy_plca_status {
/* Modes for PHY LED configuration */
enum phy_led_modes {
--- a/net/core/page_pool.c
+++ b/net/core/page_pool.c
-@@ -1064,7 +1064,7 @@ static void page_pool_release_retry(stru
+@@ -1120,7 +1120,7 @@ static void page_pool_release_retry(stru
struct delayed_work *dwq = to_delayed_work(wq);
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
void *netdev;
inflight = page_pool_release(pool);
/* In rare cases, a driver bug may cause inflight to go negative.
-@@ -1076,6 +1076,17 @@ static void page_pool_release_retry(stru
+@@ -1132,6 +1132,17 @@ static void page_pool_release_retry(stru
if (inflight <= 0)
return;
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -4422,6 +4422,7 @@ int wake_up_state(struct task_struct *p,
+@@ -4428,6 +4428,7 @@ int wake_up_state(struct task_struct *p,
{
return try_to_wake_up(p, state, 0);
}
-LINUX_VERSION-6.12 = .33
-LINUX_KERNEL_HASH-6.12.33 = c0a575630f2603a20bb0641f8df8f955e46c9d7ac1fae8b54b21316e6b52a254
+LINUX_VERSION-6.12 = .34
+LINUX_KERNEL_HASH-6.12.34 = a7f3fe381f67eca4172e9b63efb61a14bd7f9e1278e03603d0ff5a93f270c24d
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -2013,6 +2013,9 @@ void phy_detach(struct phy_device *phyde
- if (phydev->devlink)
- device_link_del(phydev->devlink);
+@@ -2015,6 +2015,9 @@ void phy_detach(struct phy_device *phyde
+ phydev->devlink = NULL;
+ }
+ if (phydev->drv && phydev->drv->detach)
+ phydev->drv->detach(phydev);
sysfs_remove_link(&dev->dev.kobj, "phydev");
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -999,6 +999,12 @@ struct phy_driver {
+@@ -996,6 +996,12 @@ struct phy_driver {
/** @handle_interrupt: Override default interrupt handling */
irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
*
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -819,6 +819,24 @@ struct phy_tdr_config {
+@@ -816,6 +816,24 @@ struct phy_tdr_config {
#define PHY_PAIR_ALL -1
/**
* struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
* Avoidance) Reconciliation Sublayer.
*
-@@ -958,6 +976,19 @@ struct phy_driver {
+@@ -955,6 +973,19 @@ struct phy_driver {
int (*get_features)(struct phy_device *phydev);
/**
* @get_rate_matching: Get the supported type of rate matching for a
* particular phy interface. This is used by phy consumers to determine
* whether to advertise lower-speed modes for that interface. It is
-@@ -1842,6 +1873,9 @@ int phy_config_aneg(struct phy_device *p
+@@ -1839,6 +1870,9 @@ int phy_config_aneg(struct phy_device *p
int _phy_start_aneg(struct phy_device *phydev);
int phy_start_aneg(struct phy_device *phydev);
int phy_aneg_done(struct phy_device *phydev);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -1229,6 +1229,8 @@ struct phy_driver {
+@@ -1226,6 +1226,8 @@ struct phy_driver {
*/
int (*led_polarity_set)(struct phy_device *dev, int index,
unsigned long modes);
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -1454,7 +1454,7 @@ static int stmmac_init_rx_buffers(struct
+@@ -1459,7 +1459,7 @@ static int stmmac_init_rx_buffers(struct
{
struct stmmac_rx_queue *rx_q = &dma_conf->rx_queue[queue];
struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i];
if (priv->dma_cap.host_dma_width <= 32)
gfp |= GFP_DMA32;
-@@ -4790,7 +4790,7 @@ static inline void stmmac_rx_refill(stru
+@@ -4795,7 +4795,7 @@ static inline void stmmac_rx_refill(stru
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
int dirty = stmmac_rx_dirty(priv, queue);
unsigned int entry = rx_q->dirty_rx;