From f39c7e103f9a9aaa1381c9057c88b0827ca4010c Mon Sep 17 00:00:00 2001 From: John Audia Date: Sat, 23 Aug 2025 16:04:04 -0400 Subject: [PATCH] kernel: bump 6.12 to 6.12.43 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.43 Removed upstreamed: generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch[1] generic-backport/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch[2] generic-backport/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch[3] generic-backport/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch[4] generic-backport/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch[5] generic-backport/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch[6] bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch[7] bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch[8] bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch[9] bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch[10] lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch[11] lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch[12] qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch[13] generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch[14] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f16f96ccfe56ef2d627c20ba47f6d9d7dea40f5b 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=394bd12d1f93ed2fa0fa1d8f31ffd3c344681e85 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=9f45e4858f8096bb27f9a2c75fc24a538dffad67 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=15cf46cc6ecc7a54b397294675d11c379ddf69ef 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=0d250ad617a035904744cef74a5d5dc43d0199b9 6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=cb9bb872366e10fa42e1e0200a0c2e5d05a27bec 7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f25d566c5674decd0051a3e624805fc1524729bf 8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=3e03ee3b65baeac4c253b30650492ffffad9b608 9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=b42b107293b52ac8d46238815b1071138a47a7e4 10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=e285cdb9d2e4ba2e4515ae898f92e9f38be64eb3 11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=1e9079ff83eac962bc3b1e2fbad73b2f7d5256f4 12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=8520c843d9a2770012f23da08e4e2ccf1bb05ba6 13. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=f1c5c55fb6cda312f5ed15505588caaf05a69043 14. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.43&id=757955c80663ac3df7053abaf6fcc75051ef7a7c Build system: x86/64 (Intel N150 based) Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/19618 Signed-off-by: Robert Marko --- .../900-unaligned_access_hacks.patch | 2 +- ...-for-all-the-downstream-rpi-sound-ca.patch | 2 +- ...-tc358743-Increase-FIFO-level-to-374.patch | 31 ---- ...-Add-support-for-972Mbit-s-link-freq.patch | 4 +- ...743-Check-I2C-succeeded-during-probe.patch | 98 ------------ ...eturn-an-appropriate-colorspace-from.patch | 110 -------------- ...hci_fixup_endpoint-for-interval-adju.patch | 4 +- ...d-add-the-endpoint-context-in-xhci_f.patch | 2 +- ...it-out-the-BCM54213PE-from-the-BCM54.patch | 6 +- ...xups-for-driver-submitted-to-mailing.patch | 8 +- ...late-phy-driver-block-for-BCM54213PE.patch | 2 +- ...b-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch | 6 +- ...5-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 6 +- ...-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch | 20 --- ...nt-to-request-a-particular-dev-fbN-n.patch | 10 +- ...pci-Disable-Host-Memory-Buffer-usage.patch | 6 +- ...-to-Intel-scheme-for-calculating-U1-.patch | 4 +- ...6.13-block-introduce-add_disk_fwnode.patch | 2 +- ...3-net-dsa-use-ethtool-string-helpers.patch | 2 +- ...cm_sf2-implement-.support_eee-method.patch | 6 +- ...sa-b53-mdio-add-support-for-BCM53101.patch | 4 +- ...sa-b53-implement-setting-ageing-time.patch | 8 +- ...dsa-b53-do-not-enable-EEE-on-bcm63xx.patch | 4 +- ...ot-configure-bcm63xx-s-IMP-port-inte.patch | 4 +- ...-net-dsa-b53-support-legacy-FCS-tags.patch | 2 +- ...-net-dsa-b53-detect-BCM5325-variants.patch | 6 +- ...port-for-FDB-operations-on-5325-5365.patch | 16 +- ...3-prevent-FAST_AGE-access-on-BCM5325.patch | 6 +- ...revent-SWITCH_CTRL-access-on-BCM5325.patch | 39 ----- ...b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch | 57 ------- ...event-DIS_LEARNING-access-on-BCM5325.patch | 46 ------ ...ent-BRCM_HDR-access-on-older-devices.patch | 2 +- ...PORT_OVERRIDE_CTRL-access-on-BCM5325.patch | 77 ---------- ...3-fix-b53_imp_vlan_setup-for-BCM5325.patch | 32 ---- ...-b53-ensure-BCM5325-PHYs-are-enabled.patch | 59 -------- ...t-phy-Constify-struct-mdio_device_id.patch | 6 +- ...ger-netdev-Configure-LED-blink-inter.patch | 81 ---------- .../generic/hack-6.12/204-module_strip.patch | 8 +- .../hack-6.12/901-debloat_sock_diag.patch | 2 +- .../generic/hack-6.12/902-debloat_proc.patch | 2 +- target/linux/generic/kernel-6.12 | 4 +- ...-block-add-support-for-notifications.patch | 2 +- ..._F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch | 2 +- .../pending-6.12/834-ledtrig-libata.patch | 2 +- ...msm-use-sdhci_set_clock-instead-of-s.patch | 2 +- ...m-comment-unused-sdhci_msm_set_clock.patch | 2 +- ...dsa-add-out-of-band-tagging-protocol.patch | 2 +- .../001-MIPS-lantiq-add-pcie-driver.patch | 2 +- ...on-sysctrl-fix-request-memory-check-.patch | 65 -------- ...missing-prototypes-for-vpe_-alloc-st.patch | 44 ------ ...nor-Use-1-bit-mode-of-spansion-s25fs.patch | 2 +- ...-freq-table-for-nss_port6_tx_clk_src.patch | 143 ------------------ .../810-uvc-add-iPassion-iP2970-support.patch | 6 +- 53 files changed, 84 insertions(+), 986 deletions(-) delete mode 100644 target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch delete mode 100644 target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch delete mode 100644 target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch delete mode 100644 target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch delete mode 100644 target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch delete mode 100644 target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch delete mode 100644 target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch delete mode 100644 target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch delete mode 100644 target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch delete mode 100644 target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch delete mode 100644 target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch delete mode 100644 target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch delete mode 100644 target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch delete mode 100644 target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch diff --git a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch index 12fbc59e985..cb3aa56dc0a 100644 --- a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch @@ -784,7 +784,7 @@ SVN-Revision: 35130 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h -@@ -286,8 +286,10 @@ static inline bool neigh_key_eq128(const +@@ -287,8 +287,10 @@ static inline bool neigh_key_eq128(const const u32 *n32 = (const u32 *)n->primary_key; const u32 *p32 = pkey; diff --git a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch index 2da70b23d8b..59105068c11 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0073-ASoC-Add-support-for-all-the-downstream-rpi-sound-ca.patch @@ -18589,7 +18589,7 @@ Signed-off-by: j-schambacher u32 xfer_resolution; --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c -@@ -1434,7 +1434,15 @@ int snd_soc_runtime_set_dai_fmt(struct s +@@ -1437,7 +1437,15 @@ int snd_soc_runtime_set_dai_fmt(struct s return 0; for_each_rtd_codec_dais(rtd, i, codec_dai) { diff --git a/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch b/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch deleted file mode 100644 index 2981e5c6631..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0100-media-tc358743-Increase-FIFO-level-to-374.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6fd71667a133560b84946a5008e3c9375b5115b7 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Wed, 31 Oct 2018 14:56:59 +0000 -Subject: [PATCH] media: tc358743: Increase FIFO level to 374. - -The existing fixed value of 16 worked for UYVY 720P60 over -2 lanes at 594MHz, or UYVY 1080P60 over 4 lanes. (RGB888 -1080P60 needs 6 lanes at 594MHz). -It doesn't allow for lower resolutions to work as the FIFO -underflows. - -374 is required for 1080P24-30 UYVY over 2 lanes @ 972Mbit/s, but ->374 means that the FIFO underflows on 1080P50 UYVY over 2 lanes -@ 972Mbit/s. - -Signed-off-by: Dave Stevenson ---- - drivers/media/i2c/tc358743.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/media/i2c/tc358743.c -+++ b/drivers/media/i2c/tc358743.c -@@ -1942,7 +1942,7 @@ static int tc358743_probe_of(struct tc35 - state->pdata.ddc5v_delay = DDC5V_DELAY_100_MS; - state->pdata.enable_hdcp = false; - /* A FIFO level of 16 should be enough for 2-lane 720p60 at 594 MHz. */ -- state->pdata.fifo_level = 16; -+ state->pdata.fifo_level = 374; - /* - * The PLL input clock is obtained by dividing refclk by pll_prd. - * It must be between 6 MHz and 40 MHz, lower frequency is better. diff --git a/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch b/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch index 247b83d938b..4dc5d19c94d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0101-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch @@ -24,7 +24,7 @@ Signed-off-by: Jacko Dirks --- a/drivers/media/i2c/tc358743.c +++ b/drivers/media/i2c/tc358743.c -@@ -1962,6 +1962,7 @@ static int tc358743_probe_of(struct tc35 +@@ -1980,6 +1980,7 @@ static int tc358743_probe_of(struct tc35 /* * The CSI bps per lane must be between 62.5 Mbps and 1 Gbps. * The default is 594 Mbps for 4-lane 1080p60 or 2-lane 720p60. @@ -32,7 +32,7 @@ Signed-off-by: Jacko Dirks */ bps_pr_lane = 2 * endpoint.link_frequencies[0]; if (bps_pr_lane < 62500000U || bps_pr_lane > 1000000000U) { -@@ -1975,23 +1976,42 @@ static int tc358743_probe_of(struct tc35 +@@ -1993,23 +1994,42 @@ static int tc358743_probe_of(struct tc35 state->pdata.refclk_hz * state->pdata.pll_prd; /* diff --git a/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch b/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch deleted file mode 100644 index 77194eef037..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0102-media-tc358743-Check-I2C-succeeded-during-probe.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 307615221ab3249fcfdd21b81a8aca138ed7a1ed Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Wed, 31 Oct 2018 14:57:34 +0000 -Subject: [PATCH] media: tc358743: Check I2C succeeded during probe. - -The probe for the TC358743 reads the CHIPID register from -the device and compares it to the expected value of 0. -If the I2C request fails then that also returns 0, so -the driver loads thinking that the device is there. - -Generally I2C communications are reliable so there is -limited need to check the return value on every transfer, -therefore only amend the one read during probe to check -for I2C errors. - -Signed-off-by: Dave Stevenson ---- - drivers/media/i2c/tc358743.c | 27 +++++++++++++++++++++++---- - 1 file changed, 23 insertions(+), 4 deletions(-) - ---- a/drivers/media/i2c/tc358743.c -+++ b/drivers/media/i2c/tc358743.c -@@ -110,7 +110,7 @@ static inline struct tc358743_state *to_ - - /* --------------- I2C --------------- */ - --static void i2c_rd(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n) -+static int i2c_rd(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n) - { - struct tc358743_state *state = to_state(sd); - struct i2c_client *client = state->i2c_client; -@@ -136,6 +136,7 @@ static void i2c_rd(struct v4l2_subdev *s - v4l2_err(sd, "%s: reading register 0x%x from 0x%x failed: %d\n", - __func__, reg, client->addr, err); - } -+ return err != ARRAY_SIZE(msgs); - } - - static void i2c_wr(struct v4l2_subdev *sd, u16 reg, u8 *values, u32 n) -@@ -192,15 +193,24 @@ static void i2c_wr(struct v4l2_subdev *s - } - } - --static noinline u32 i2c_rdreg(struct v4l2_subdev *sd, u16 reg, u32 n) -+static noinline u32 i2c_rdreg_err(struct v4l2_subdev *sd, u16 reg, u32 n, -+ int *err) - { -+ int error; - __le32 val = 0; - -- i2c_rd(sd, reg, (u8 __force *)&val, n); -+ error = i2c_rd(sd, reg, (u8 __force *)&val, n); -+ if (err) -+ *err = error; - - return le32_to_cpu(val); - } - -+static inline u32 i2c_rdreg(struct v4l2_subdev *sd, u16 reg, u32 n) -+{ -+ return i2c_rdreg_err(sd, reg, n, NULL); -+} -+ - static noinline void i2c_wrreg(struct v4l2_subdev *sd, u16 reg, u32 val, u32 n) - { - __le32 raw = cpu_to_le32(val); -@@ -229,6 +239,13 @@ static u16 i2c_rd16(struct v4l2_subdev * - return i2c_rdreg(sd, reg, 2); - } - -+static int i2c_rd16_err(struct v4l2_subdev *sd, u16 reg, u16 *value) -+{ -+ int err; -+ *value = i2c_rdreg_err(sd, reg, 2, &err); -+ return err; -+} -+ - static void i2c_wr16(struct v4l2_subdev *sd, u16 reg, u16 val) - { - i2c_wrreg(sd, reg, val, 2); -@@ -2050,6 +2067,7 @@ static int tc358743_probe(struct i2c_cli - struct tc358743_platform_data *pdata = client->dev.platform_data; - struct v4l2_subdev *sd; - u16 irq_mask = MASK_HDMI_MSK | MASK_CSI_MSK; -+ u16 chipid; - int err; - - if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA)) -@@ -2081,7 +2099,8 @@ static int tc358743_probe(struct i2c_cli - sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS; - - /* i2c access */ -- if ((i2c_rd16(sd, CHIPID) & MASK_CHIPID) != 0) { -+ if (i2c_rd16_err(sd, CHIPID, &chipid) || -+ (chipid & MASK_CHIPID) != 0) { - v4l2_info(sd, "not a TC358743 on address 0x%x\n", - client->addr << 1); - return -ENODEV; diff --git a/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch b/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch deleted file mode 100644 index 0ac1a1a9f20..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0107-media-tc358743-Return-an-appropriate-colorspace-from.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 1745cb8447123a894db6c0b579259ec5d976808f Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Thu, 22 Nov 2018 17:31:06 +0000 -Subject: [PATCH] media: tc358743: Return an appropriate colorspace from - tc358743_set_fmt - -When calling tc358743_set_fmt, the code was calling tc358743_get_fmt -to choose a valid format. However that sets the colorspace -based on what was read back from the chip. When you set the format, -then the driver would choose and program the colorspace based -on the format code. - -The result was that if you called try or set format for UYVY -when the current format was RGB3 then you would get told sRGB, -and try RGB3 when current was UYVY and you would get told -SMPTE170M. - -The value programmed into the chip is determined by this driver, -therefore there is no need to read back the value. Return the -colorspace based on the format set/tried instead. - -Signed-off-by: Dave Stevenson - -media: i2c: tc358743: Only allow supported pixel fmts in set_fmt - -Fix commit "media: tc358743: Return an appropriate colorspace from -tc358743_set_fmt" to ensure that the format passed in to set_fmt -is checked to be valid, and reset to the current format if not. - -Signed-off-by: Dave Stevenson ---- - drivers/media/i2c/tc358743.c | 44 ++++++++++++++---------------------- - 1 file changed, 17 insertions(+), 27 deletions(-) - ---- a/drivers/media/i2c/tc358743.c -+++ b/drivers/media/i2c/tc358743.c -@@ -1677,12 +1677,23 @@ static int tc358743_enum_mbus_code(struc - return 0; - } - -+static u32 tc358743_g_colorspace(u32 code) -+{ -+ switch (code) { -+ case MEDIA_BUS_FMT_RGB888_1X24: -+ return V4L2_COLORSPACE_SRGB; -+ case MEDIA_BUS_FMT_UYVY8_1X16: -+ return V4L2_COLORSPACE_SMPTE170M; -+ default: -+ return 0; -+ } -+} -+ - static int tc358743_get_fmt(struct v4l2_subdev *sd, - struct v4l2_subdev_state *sd_state, - struct v4l2_subdev_format *format) - { - struct tc358743_state *state = to_state(sd); -- u8 vi_rep = i2c_rd8(sd, VI_REP); - - if (format->pad != 0) - return -EINVAL; -@@ -1692,23 +1703,7 @@ static int tc358743_get_fmt(struct v4l2_ - format->format.height = state->timings.bt.height; - format->format.field = V4L2_FIELD_NONE; - -- switch (vi_rep & MASK_VOUT_COLOR_SEL) { -- case MASK_VOUT_COLOR_RGB_FULL: -- case MASK_VOUT_COLOR_RGB_LIMITED: -- format->format.colorspace = V4L2_COLORSPACE_SRGB; -- break; -- case MASK_VOUT_COLOR_601_YCBCR_LIMITED: -- case MASK_VOUT_COLOR_601_YCBCR_FULL: -- format->format.colorspace = V4L2_COLORSPACE_SMPTE170M; -- break; -- case MASK_VOUT_COLOR_709_YCBCR_FULL: -- case MASK_VOUT_COLOR_709_YCBCR_LIMITED: -- format->format.colorspace = V4L2_COLORSPACE_REC709; -- break; -- default: -- format->format.colorspace = 0; -- break; -- } -+ format->format.colorspace = tc358743_g_colorspace(format->format.code); - - return 0; - } -@@ -1722,19 +1717,14 @@ static int tc358743_set_fmt(struct v4l2_ - u32 code = format->format.code; /* is overwritten by get_fmt */ - int ret = tc358743_get_fmt(sd, sd_state, format); - -- format->format.code = code; -+ if (code == MEDIA_BUS_FMT_RGB888_1X24 || -+ code == MEDIA_BUS_FMT_UYVY8_1X16) -+ format->format.code = code; -+ format->format.colorspace = tc358743_g_colorspace(format->format.code); - - if (ret) - return ret; - -- switch (code) { -- case MEDIA_BUS_FMT_RGB888_1X24: -- case MEDIA_BUS_FMT_UYVY8_1X16: -- break; -- default: -- return -EINVAL; -- } -- - if (format->which == V4L2_SUBDEV_FORMAT_TRY) - return 0; - diff --git a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 041d364b89e..b3f12332939 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1517,6 +1517,109 @@ static int xhci_check_ep0_maxpacket(stru +@@ -1519,6 +1519,109 @@ static int xhci_check_ep0_maxpacket(stru } /* @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5381,6 +5484,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5383,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch b/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch index c6f2196c320..1ac575a2ce0 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0127-usb-xhci-drop-and-add-the-endpoint-context-in-xhci_f.patch @@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1606,7 +1606,7 @@ static void xhci_fixup_endpoint(struct u +@@ -1608,7 +1608,7 @@ static void xhci_fixup_endpoint(struct u return; } ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index); diff --git a/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch index 950e93c5db4..b62142dd9fe 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0157-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell return; val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3); -@@ -1444,7 +1445,7 @@ static struct phy_driver broadcom_driver +@@ -1461,7 +1462,7 @@ static struct phy_driver broadcom_driver .link_change_notify = bcm54xx_link_change_notify, }, { .phy_id = PHY_ID_BCM54210E, @@ -35,7 +35,7 @@ Signed-off-by: Jonathan Bell .name = "Broadcom BCM54210E", /* PHY_GBIT_FEATURES */ .flags = PHY_ALWAYS_CALL_SUSPEND, -@@ -1462,6 +1463,13 @@ static struct phy_driver broadcom_driver +@@ -1479,6 +1480,13 @@ static struct phy_driver broadcom_driver .set_wol = bcm54xx_phy_set_wol, .led_brightness_set = bcm_phy_led_brightness_set, }, { @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell .phy_id = PHY_ID_BCM5461, .phy_id_mask = 0xfffffff0, .name = "Broadcom BCM5461", -@@ -1728,7 +1736,8 @@ module_phy_driver(broadcom_drivers); +@@ -1745,7 +1753,8 @@ module_phy_driver(broadcom_drivers); static const struct mdio_device_id __maybe_unused broadcom_tbl[] = { { PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 }, diff --git a/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch b/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch index 453b052824e..ef86c0ee60e 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0284-hwmon-emc2305-fixups-for-driver-submitted-to-mailing.patch @@ -165,7 +165,7 @@ Signed-off-by: Dave Stevenson if (IS_ERR(data->cdev_data[cdev_idx].cdev)) { dev_err(dev, "Failed to register cooling device %s\n", emc2305_fan_name[idx]); -@@ -347,9 +410,11 @@ static void emc2305_unset_tz(struct devi +@@ -353,9 +416,11 @@ static void emc2305_unset_tz(struct devi int i; /* Unregister cooling device. */ @@ -180,7 +180,7 @@ Signed-off-by: Dave Stevenson } static umode_t -@@ -571,11 +636,18 @@ static int emc2305_probe(struct i2c_clie +@@ -577,11 +642,18 @@ static int emc2305_probe(struct i2c_clie data->pwm_separate = pdata->pwm_separate; for (i = 0; i < EMC2305_PWM_MAX; i++) data->pwm_min[i] = pdata->pwm_min[i]; @@ -199,7 +199,7 @@ Signed-off-by: Dave Stevenson } data->hwmon_dev = devm_hwmon_device_register_with_info(dev, "emc2305", data, -@@ -596,6 +668,12 @@ static int emc2305_probe(struct i2c_clie +@@ -602,6 +674,12 @@ static int emc2305_probe(struct i2c_clie return ret; } @@ -212,7 +212,7 @@ Signed-off-by: Dave Stevenson return 0; } -@@ -610,6 +688,7 @@ static void emc2305_remove(struct i2c_cl +@@ -616,6 +694,7 @@ static void emc2305_remove(struct i2c_cl static struct i2c_driver emc2305_driver = { .driver = { .name = "emc2305", diff --git a/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch b/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch index b41c40e2e4b..4c8a0879242 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0290-Populate-phy-driver-block-for-BCM54213PE.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Lemon --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -1478,8 +1478,14 @@ static struct phy_driver broadcom_driver +@@ -1495,8 +1495,14 @@ static struct phy_driver broadcom_driver .phy_id_mask = 0xffffffff, .name = "Broadcom BCM54213PE", /* PHY_GBIT_FEATURES */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch index 8fec64dcc1c..4e1c1bd76b5 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0334-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch @@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c -@@ -1395,6 +1395,7 @@ int xhci_endpoint_init(struct xhci_hcd * +@@ -1397,6 +1397,7 @@ int xhci_endpoint_init(struct xhci_hcd * unsigned int ep_index; struct xhci_ep_ctx *ep_ctx; struct xhci_ring *ep_ring; @@ -42,7 +42,7 @@ Signed-off-by: Jonathan Bell unsigned int max_packet; enum xhci_ring_type ring_type; u32 max_esit_payload; -@@ -1404,6 +1405,8 @@ int xhci_endpoint_init(struct xhci_hcd * +@@ -1406,6 +1407,8 @@ int xhci_endpoint_init(struct xhci_hcd * unsigned int mult; unsigned int avg_trb_len; unsigned int err_count = 0; @@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell ep_index = xhci_get_endpoint_index(&ep->desc); ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); -@@ -1439,9 +1442,35 @@ int xhci_endpoint_init(struct xhci_hcd * +@@ -1441,9 +1444,35 @@ int xhci_endpoint_init(struct xhci_hcd * mult = xhci_get_endpoint_mult(udev, ep); max_packet = usb_endpoint_maxp(&ep->desc); diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index 37f9e20e3f4..4bc4330daad 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3656,6 +3656,48 @@ static int xhci_align_td(struct xhci_hcd +@@ -3659,6 +3659,48 @@ static int xhci_align_td(struct xhci_hcd return 1; } @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3810,6 +3852,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3813,6 +3855,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * } check_trb_math(urb, enqd_len); @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3958,6 +4002,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3961,6 +4005,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); diff --git a/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch b/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch deleted file mode 100644 index b24622a9dee..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0341-Allow-RESET_BRCMSTB-on-ARCH_BCM2835.patch +++ /dev/null @@ -1,20 +0,0 @@ -From c921a4d6cfed23d22f583dd18a25f61fdde3735a Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Thu, 27 May 2021 11:46:30 +0100 -Subject: [PATCH] Allow RESET_BRCMSTB on ARCH_BCM2835 - ---- - drivers/reset/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/reset/Kconfig -+++ b/drivers/reset/Kconfig -@@ -51,7 +51,7 @@ config RESET_BERLIN - - config RESET_BRCMSTB - tristate "Broadcom STB reset controller" -- depends on ARCH_BRCMSTB || COMPILE_TEST -+ depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST - default ARCH_BRCMSTB - help - This enables the reset controller driver for Broadcom STB SoCs using diff --git a/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch b/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch index 9322cedab0b..13e8d1bb3cc 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch @@ -36,9 +36,9 @@ Signed-off-by: Dave Stevenson + fb_info->node = i; + } - if (!fb_info->modelist.prev || !fb_info->modelist.next) - INIT_LIST_HEAD(&fb_info->modelist); -@@ -411,7 +415,6 @@ static int do_register_framebuffer(struc + if (i >= FB_MAX) + return -ENXIO; +@@ -414,7 +418,6 @@ static int do_register_framebuffer(struc if (err < 0) return err; @@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson refcount_set(&fb_info->count, 1); mutex_init(&fb_info->lock); mutex_init(&fb_info->mm_lock); -@@ -442,7 +445,7 @@ static int do_register_framebuffer(struc +@@ -445,7 +448,7 @@ static int do_register_framebuffer(struc pm_vt_switch_required(fb_info->device, true); num_registered_fb++; @@ -55,7 +55,7 @@ Signed-off-by: Dave Stevenson #ifdef CONFIG_GUMSTIX_AM200EPD { -@@ -503,6 +506,12 @@ static void do_unregister_framebuffer(st +@@ -506,6 +509,12 @@ static void do_unregister_framebuffer(st put_fb_info(fb_info); } diff --git a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch index 874ddc47c12..5ae8f6c9665 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0685-nvme-pci-Disable-Host-Memory-Buffer-usage.patch @@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c -@@ -2083,6 +2083,7 @@ static void nvme_free_host_mem(struct nv +@@ -2103,6 +2103,7 @@ static void nvme_free_host_mem(struct nv dev->nr_host_mem_descs = 0; } @@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred, u32 chunk_size) { -@@ -2151,9 +2152,11 @@ out: +@@ -2171,9 +2172,11 @@ out: dev->host_mem_descs = NULL; return -ENOMEM; } @@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell u64 min_chunk = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES); u64 hmminds = max_t(u32, dev->ctrl.hmminds * 4096, PAGE_SIZE * 2); u64 chunk_size; -@@ -2166,6 +2169,7 @@ static int nvme_alloc_host_mem(struct nv +@@ -2186,6 +2189,7 @@ static int nvme_alloc_host_mem(struct nv nvme_free_host_mem(dev); } } diff --git a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch index 8be659cdd0a..3a52a38589d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch @@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring) { struct xhci_segment *seg = ring->first_seg; -@@ -4786,7 +4790,7 @@ static u16 xhci_calculate_u1_timeout(str +@@ -4788,7 +4792,7 @@ static u16 xhci_calculate_u1_timeout(str } } @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc); else timeout_ns = udev->u1_params.sel; -@@ -4850,7 +4854,7 @@ static u16 xhci_calculate_u2_timeout(str +@@ -4852,7 +4856,7 @@ static u16 xhci_calculate_u2_timeout(str } } diff --git a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch index b9fabe6742d..381838d8ea0 100644 --- a/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch +++ b/target/linux/generic/backport-6.12/500-02-v6.13-block-introduce-add_disk_fwnode.patch @@ -82,7 +82,7 @@ Signed-off-by: Jens Axboe static void blk_report_disk_dead(struct gendisk *disk, bool surprise) --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h -@@ -734,6 +734,9 @@ static inline unsigned int blk_queue_dep +@@ -789,6 +789,9 @@ static inline unsigned int blk_queue_dep #define for_each_bio(_bio) \ for (; _bio; _bio = _bio->bi_next) diff --git a/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch b/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch index 003a896f30a..a435e29144b 100644 --- a/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch +++ b/target/linux/generic/backport-6.12/610-01-v6.13-net-dsa-use-ethtool-string-helpers.patch @@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -1061,8 +1061,7 @@ void b53_get_strings(struct dsa_switch * +@@ -1086,8 +1086,7 @@ void b53_get_strings(struct dsa_switch * if (stringset == ETH_SS_STATS) { for (i = 0; i < mib_size; i++) diff --git a/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch b/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch index 4e9512c548e..2658c6861b1 100644 --- a/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch +++ b/target/linux/generic/backport-6.12/610-02-v6.14-net-dsa-b53-bcm_sf2-implement-.support_eee-method.patch @@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -2343,13 +2343,16 @@ int b53_eee_init(struct dsa_switch *ds, +@@ -2387,13 +2387,16 @@ int b53_eee_init(struct dsa_switch *ds, } EXPORT_SYMBOL(b53_eee_init); @@ -39,7 +39,7 @@ Signed-off-by: Jakub Kicinski return 0; } EXPORT_SYMBOL(b53_get_mac_eee); -@@ -2359,9 +2362,6 @@ int b53_set_mac_eee(struct dsa_switch *d +@@ -2403,9 +2406,6 @@ int b53_set_mac_eee(struct dsa_switch *d struct b53_device *dev = ds->priv; struct ethtool_keee *p = &dev->ports[port].eee; @@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski p->eee_enabled = e->eee_enabled; b53_eee_enable_set(ds, port, e->eee_enabled); -@@ -2418,6 +2418,7 @@ static const struct dsa_switch_ops b53_s +@@ -2462,6 +2462,7 @@ static const struct dsa_switch_ops b53_s .port_setup = b53_setup_port, .port_enable = b53_enable_port, .port_disable = b53_disable_port, diff --git a/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch b/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch index deff0fe4d2e..dd17c8f6aad 100644 --- a/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch +++ b/target/linux/generic/backport-6.12/610-03-v6.15-net-dsa-b53-mdio-add-support-for-BCM53101.patch @@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -2537,6 +2537,19 @@ static const struct b53_chip_data b53_sw +@@ -2581,6 +2581,19 @@ static const struct b53_chip_data b53_sw .jumbo_size_reg = B53_JUMBO_MAX_SIZE, }, { @@ -38,7 +38,7 @@ Signed-off-by: Jakub Kicinski .chip_id = BCM53115_DEVICE_ID, .dev_name = "BCM53115", .vlans = 4096, -@@ -2917,6 +2930,7 @@ int b53_switch_detect(struct b53_device +@@ -2961,6 +2974,7 @@ int b53_switch_detect(struct b53_device return ret; switch (id32) { diff --git a/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch b/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch index a0b428e4d40..75ad5c5e3ee 100644 --- a/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch +++ b/target/linux/generic/backport-6.12/610-04-v6.16-net-dsa-b53-implement-setting-ageing-time.patch @@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski #include #include #include -@@ -1202,6 +1203,10 @@ static int b53_setup(struct dsa_switch * +@@ -1227,6 +1228,10 @@ static int b53_setup(struct dsa_switch * */ ds->untag_vlan_aware_bridge_pvid = true; @@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski ret = b53_reset_switch(dev); if (ret) { dev_err(ds->dev, "failed to reset switch\n"); -@@ -2397,6 +2402,28 @@ static int b53_get_max_mtu(struct dsa_sw +@@ -2441,6 +2446,28 @@ static int b53_get_max_mtu(struct dsa_sw return B53_MAX_MTU; } @@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski static const struct phylink_mac_ops b53_phylink_mac_ops = { .mac_select_pcs = b53_phylink_mac_select_pcs, .mac_config = b53_phylink_mac_config, -@@ -2421,6 +2448,7 @@ static const struct dsa_switch_ops b53_s +@@ -2465,6 +2492,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, @@ -89,7 +89,7 @@ Signed-off-by: Jakub Kicinski void b53_br_leave(struct dsa_switch *ds, int port, struct dsa_bridge bridge); --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h -@@ -220,6 +220,13 @@ +@@ -225,6 +225,13 @@ #define BRCM_HDR_P5_EN BIT(1) /* Enable tagging on port 5 */ #define BRCM_HDR_P7_EN BIT(2) /* Enable tagging on port 7 */ diff --git a/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch b/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch index d1735c41002..39fb229f33b 100644 --- a/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch +++ b/target/linux/generic/backport-6.12/610-05-v6.16-net-dsa-b53-do-not-enable-EEE-on-bcm63xx.patch @@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -2338,6 +2338,9 @@ int b53_eee_init(struct dsa_switch *ds, +@@ -2382,6 +2382,9 @@ int b53_eee_init(struct dsa_switch *ds, { int ret; @@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni ret = phy_init_eee(phy, false); if (ret) return 0; -@@ -2352,7 +2355,7 @@ bool b53_support_eee(struct dsa_switch * +@@ -2396,7 +2399,7 @@ bool b53_support_eee(struct dsa_switch * { struct b53_device *dev = ds->priv; diff --git a/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch b/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch index 17489e9b9fa..f2c4464b06f 100644 --- a/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch +++ b/target/linux/generic/backport-6.12/610-07-v6.16-net-dsa-b53-do-not-configure-bcm63xx-s-IMP-port-inte.patch @@ -28,7 +28,7 @@ Signed-off-by: Paolo Abeni #include #include #include -@@ -1322,24 +1323,17 @@ static void b53_adjust_63xx_rgmii(struct +@@ -1360,24 +1361,17 @@ static void b53_adjust_63xx_rgmii(struct phy_interface_t interface) { struct b53_device *dev = ds->priv; @@ -59,7 +59,7 @@ Signed-off-by: Paolo Abeni dev_dbg(ds->dev, "Configured port %d for %s\n", port, phy_modes(interface)); -@@ -1490,7 +1484,7 @@ static void b53_phylink_mac_config(struc +@@ -1528,7 +1522,7 @@ static void b53_phylink_mac_config(struc struct b53_device *dev = ds->priv; int port = dp->index; diff --git a/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch b/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch index 55227b643c4..3fbc697f01d 100644 --- a/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch +++ b/target/linux/generic/backport-6.12/612-03-v6.17-net-dsa-b53-support-legacy-FCS-tags.patch @@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski 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 -@@ -2241,8 +2241,11 @@ enum dsa_tag_protocol b53_get_tag_protoc +@@ -2285,8 +2285,11 @@ enum dsa_tag_protocol b53_get_tag_protoc goto out; } diff --git a/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch b/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch index 5ed003ad985..04ded31a8f2 100644 --- a/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch +++ b/target/linux/generic/backport-6.12/612-04-v6.17-net-dsa-b53-detect-BCM5325-variants.patch @@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -1778,7 +1778,8 @@ static int b53_arl_op(struct b53_device +@@ -1816,7 +1816,8 @@ static int b53_arl_op(struct b53_device /* Perform a read for the given MAC and VID */ b53_write48(dev, B53_ARLIO_PAGE, B53_MAC_ADDR_IDX, mac); @@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski /* Issue a read operation for this MAC */ ret = b53_arl_rw_op(dev, 1); -@@ -2840,6 +2841,9 @@ static int b53_switch_init(struct b53_de +@@ -2884,6 +2885,9 @@ static int b53_switch_init(struct b53_de } } @@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski dev->num_ports = fls(dev->enabled_ports); dev->ds->num_ports = min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS); -@@ -2941,10 +2945,24 @@ int b53_switch_detect(struct b53_device +@@ -2985,10 +2989,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); diff --git a/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch b/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch index 099638131cc..113528a6d5a 100644 --- a/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch +++ b/target/linux/generic/backport-6.12/612-05-v6.17-net-dsa-b53-add-support-for-FDB-operations-on-5325-5365.patch @@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -1764,6 +1764,45 @@ static int b53_arl_read(struct b53_devic +@@ -1802,6 +1802,45 @@ static int b53_arl_read(struct b53_devic return *idx >= dev->num_arl_bins ? -ENOSPC : -ENOENT; } @@ -70,7 +70,7 @@ Signed-off-by: Jakub Kicinski static int b53_arl_op(struct b53_device *dev, int op, int port, const unsigned char *addr, u16 vid, bool is_valid) { -@@ -1786,7 +1825,10 @@ static int b53_arl_op(struct b53_device +@@ -1824,7 +1863,10 @@ static int b53_arl_op(struct b53_device if (ret) return ret; @@ -82,7 +82,7 @@ Signed-off-by: Jakub Kicinski /* If this is a read, just finish now */ if (op) -@@ -1830,12 +1872,17 @@ static int b53_arl_op(struct b53_device +@@ -1868,12 +1910,17 @@ static int b53_arl_op(struct b53_device ent.is_static = true; ent.is_age = false; memcpy(ent.mac, addr, ETH_ALEN); @@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski return b53_arl_rw_op(dev, 0); } -@@ -1847,12 +1894,6 @@ int b53_fdb_add(struct dsa_switch *ds, i +@@ -1885,12 +1932,6 @@ int b53_fdb_add(struct dsa_switch *ds, i struct b53_device *priv = ds->priv; int ret; @@ -116,7 +116,7 @@ Signed-off-by: Jakub Kicinski mutex_lock(&priv->arl_mutex); ret = b53_arl_op(priv, 0, port, addr, vid, true); mutex_unlock(&priv->arl_mutex); -@@ -1879,10 +1920,15 @@ EXPORT_SYMBOL(b53_fdb_del); +@@ -1917,10 +1958,15 @@ EXPORT_SYMBOL(b53_fdb_del); static int b53_arl_search_wait(struct b53_device *dev) { unsigned int timeout = 1000; @@ -134,7 +134,7 @@ Signed-off-by: Jakub Kicinski if (!(reg & ARL_SRCH_STDN)) return 0; -@@ -1899,13 +1945,24 @@ static void b53_arl_search_rd(struct b53 +@@ -1937,13 +1983,24 @@ static void b53_arl_search_rd(struct b53 struct b53_arl_entry *ent) { u64 mac_vid; @@ -165,7 +165,7 @@ Signed-off-by: Jakub Kicinski } static int b53_fdb_copy(int port, const struct b53_arl_entry *ent, -@@ -1926,14 +1983,20 @@ int b53_fdb_dump(struct dsa_switch *ds, +@@ -1964,14 +2021,20 @@ int b53_fdb_dump(struct dsa_switch *ds, struct b53_device *priv = ds->priv; struct b53_arl_entry results[2]; unsigned int count = 0; @@ -234,7 +234,7 @@ Signed-off-by: Jakub Kicinski #include --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h -@@ -324,9 +324,10 @@ +@@ -329,9 +329,10 @@ #define ARLTBL_VID_MASK 0xfff #define ARLTBL_DATA_PORT_ID_S_25 48 #define ARLTBL_DATA_PORT_ID_MASK_25 0xf diff --git a/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch index 492c701a2ba..7397e3323c7 100644 --- a/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch +++ b/target/linux/generic/backport-6.12/612-06-v6.17-net-dsa-b53-prevent-FAST_AGE-access-on-BCM5325.patch @@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -487,6 +487,9 @@ static int b53_flush_arl(struct b53_devi +@@ -492,6 +492,9 @@ static int b53_flush_arl(struct b53_devi { unsigned int i; @@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_CTRL, FAST_AGE_DONE | FAST_AGE_DYNAMIC | mask); -@@ -511,6 +514,9 @@ out: +@@ -516,6 +519,9 @@ out: static int b53_fast_age_port(struct b53_device *dev, int port) { @@ -39,7 +39,7 @@ Signed-off-by: Jakub Kicinski b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_PORT_CTRL, port); return b53_flush_arl(dev, FAST_AGE_PORT); -@@ -518,6 +524,9 @@ static int b53_fast_age_port(struct b53_ +@@ -523,6 +529,9 @@ static int b53_fast_age_port(struct b53_ static int b53_fast_age_vlan(struct b53_device *dev, u16 vid) { diff --git a/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch deleted file mode 100644 index 275c120fdc4..00000000000 --- a/target/linux/generic/backport-6.12/612-07-v6.17-net-dsa-b53-prevent-SWITCH_CTRL-access-on-BCM5325.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 22ccaaca43440e90a3b68d2183045b42247dc4be Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 09:59:53 +0200 -Subject: [PATCH] net: dsa: b53: prevent SWITCH_CTRL access on BCM5325 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BCM5325 doesn't implement SWITCH_CTRL register so we should avoid reading -or writing it. - -Reviewed-by: Florian Fainelli -Signed-off-by: Álvaro Fernández Rojas -Link: https://patch.msgid.link/20250614080000.1884236-8-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - drivers/net/dsa/b53/b53_common.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - ---- a/drivers/net/dsa/b53/b53_common.c -+++ b/drivers/net/dsa/b53/b53_common.c -@@ -361,11 +361,12 @@ static void b53_set_forwarding(struct b5 - - b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt); - -- /* Include IMP port in dumb forwarding mode -- */ -- b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); -- mgmt |= B53_MII_DUMB_FWDG_EN; -- b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); -+ if (!is5325(dev)) { -+ /* Include IMP port in dumb forwarding mode */ -+ b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); -+ mgmt |= B53_MII_DUMB_FWDG_EN; -+ b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); -+ } - - /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether - * frames should be flooded or not. diff --git a/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch deleted file mode 100644 index e5b13f60a5a..00000000000 --- a/target/linux/generic/backport-6.12/612-08-v6.17-net-dsa-b53-fix-IP_MULTICAST_CTRL-on-BCM5325.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 044d5ce2788b165798bfd173548e61bf7b6baf4d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 09:59:54 +0200 -Subject: [PATCH] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BCM5325 doesn't implement B53_UC_FWD_EN, B53_MC_FWD_EN or B53_IPMC_FWD_EN. - -Reviewed-by: Florian Fainelli -Signed-off-by: Álvaro Fernández Rojas -Link: https://patch.msgid.link/20250614080000.1884236-9-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - drivers/net/dsa/b53/b53_common.c | 18 +++++++++++------- - drivers/net/dsa/b53/b53_regs.h | 1 + - 2 files changed, 12 insertions(+), 7 deletions(-) - ---- a/drivers/net/dsa/b53/b53_common.c -+++ b/drivers/net/dsa/b53/b53_common.c -@@ -366,14 +366,18 @@ static void b53_set_forwarding(struct b5 - b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); - mgmt |= B53_MII_DUMB_FWDG_EN; - b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); -- } - -- /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether -- * frames should be flooded or not. -- */ -- b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); -- mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN; -- b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); -+ /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether -+ * frames should be flooded or not. -+ */ -+ b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); -+ mgmt |= B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN; -+ b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); -+ } else { -+ b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); -+ mgmt |= B53_IP_MCAST_25; -+ b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); -+ } - } - - static void b53_enable_vlan(struct b53_device *dev, int port, bool enable, ---- a/drivers/net/dsa/b53/b53_regs.h -+++ b/drivers/net/dsa/b53/b53_regs.h -@@ -106,6 +106,7 @@ - - /* IP Multicast control (8 bit) */ - #define B53_IP_MULTICAST_CTRL 0x21 -+#define B53_IP_MCAST_25 BIT(0) - #define B53_IPMC_FWD_EN BIT(1) - #define B53_UC_FWD_EN BIT(6) - #define B53_MC_FWD_EN BIT(7) diff --git a/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch deleted file mode 100644 index b9616f0dad2..00000000000 --- a/target/linux/generic/backport-6.12/612-09-v6.17-net-dsa-b53-prevent-DIS_LEARNING-access-on-BCM5325.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 800728abd9f83bda4de62a30ce62a8b41c242020 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 09:59:55 +0200 -Subject: [PATCH] net: dsa: b53: prevent DIS_LEARNING access on BCM5325 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BCM5325 doesn't implement DIS_LEARNING register so we should avoid reading -or writing it. - -Reviewed-by: Florian Fainelli -Signed-off-by: Álvaro Fernández Rojas -Link: https://patch.msgid.link/20250614080000.1884236-10-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - drivers/net/dsa/b53/b53_common.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - ---- a/drivers/net/dsa/b53/b53_common.c -+++ b/drivers/net/dsa/b53/b53_common.c -@@ -593,6 +593,9 @@ static void b53_port_set_learning(struct - { - u16 reg; - -+ if (is5325(dev)) -+ return; -+ - b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®); - if (learning) - reg &= ~BIT(port); -@@ -2243,7 +2246,13 @@ int b53_br_flags_pre(struct dsa_switch * - struct switchdev_brport_flags flags, - struct netlink_ext_ack *extack) - { -- if (flags.mask & ~(BR_FLOOD | BR_MCAST_FLOOD | BR_LEARNING)) -+ struct b53_device *dev = ds->priv; -+ unsigned long mask = (BR_FLOOD | BR_MCAST_FLOOD); -+ -+ if (!is5325(dev)) -+ mask |= BR_LEARNING; -+ -+ if (flags.mask & ~mask) - return -EINVAL; - - return 0; diff --git a/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch b/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch index 6d058f8561f..6ea836734a5 100644 --- a/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch +++ b/target/linux/generic/backport-6.12/612-10-v6.17-net-dsa-b53-prevent-BRCM_HDR-access-on-older-devices.patch @@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -730,6 +730,11 @@ void b53_brcm_hdr_setup(struct dsa_switc +@@ -747,6 +747,11 @@ void b53_brcm_hdr_setup(struct dsa_switc hdr_ctl |= GC_FRM_MGMT_PORT_M; b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, hdr_ctl); diff --git a/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch b/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch deleted file mode 100644 index 7f412a2b0ec..00000000000 --- a/target/linux/generic/backport-6.12/612-11-v6.17-net-dsa-b53-prevent-GMII_PORT_OVERRIDE_CTRL-access-on-BCM5325.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 37883bbc45a8555d6eca88d3a9730504d2dac86c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 09:59:57 +0200 -Subject: [PATCH] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on - BCM5325 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -BCM5325 doesn't implement GMII_PORT_OVERRIDE_CTRL register so we should -avoid reading or writing it. -PORT_OVERRIDE_RX_FLOW and PORT_OVERRIDE_TX_FLOW aren't defined on BCM5325 -and we should use PORT_OVERRIDE_LP_FLOW_25 instead. - -Reviewed-by: Florian Fainelli -Signed-off-by: Álvaro Fernández Rojas -Link: https://patch.msgid.link/20250614080000.1884236-12-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - drivers/net/dsa/b53/b53_common.c | 21 +++++++++++++++++---- - drivers/net/dsa/b53/b53_regs.h | 1 + - 2 files changed, 18 insertions(+), 4 deletions(-) - ---- a/drivers/net/dsa/b53/b53_common.c -+++ b/drivers/net/dsa/b53/b53_common.c -@@ -1279,6 +1279,8 @@ static void b53_force_link(struct b53_de - if (port == dev->imp_port) { - off = B53_PORT_OVERRIDE_CTRL; - val = PORT_OVERRIDE_EN; -+ } else if (is5325(dev)) { -+ return; - } else { - off = B53_GMII_PORT_OVERRIDE_CTRL(port); - val = GMII_PO_EN; -@@ -1303,6 +1305,8 @@ static void b53_force_port_config(struct - if (port == dev->imp_port) { - off = B53_PORT_OVERRIDE_CTRL; - val = PORT_OVERRIDE_EN; -+ } else if (is5325(dev)) { -+ return; - } else { - off = B53_GMII_PORT_OVERRIDE_CTRL(port); - val = GMII_PO_EN; -@@ -1333,10 +1337,19 @@ static void b53_force_port_config(struct - return; - } - -- if (rx_pause) -- reg |= PORT_OVERRIDE_RX_FLOW; -- if (tx_pause) -- reg |= PORT_OVERRIDE_TX_FLOW; -+ if (rx_pause) { -+ if (is5325(dev)) -+ reg |= PORT_OVERRIDE_LP_FLOW_25; -+ else -+ reg |= PORT_OVERRIDE_RX_FLOW; -+ } -+ -+ if (tx_pause) { -+ if (is5325(dev)) -+ reg |= PORT_OVERRIDE_LP_FLOW_25; -+ else -+ reg |= PORT_OVERRIDE_TX_FLOW; -+ } - - b53_write8(dev, B53_CTRL_PAGE, off, reg); - } ---- a/drivers/net/dsa/b53/b53_regs.h -+++ b/drivers/net/dsa/b53/b53_regs.h -@@ -95,6 +95,7 @@ - #define PORT_OVERRIDE_SPEED_10M (0 << PORT_OVERRIDE_SPEED_S) - #define PORT_OVERRIDE_SPEED_100M (1 << PORT_OVERRIDE_SPEED_S) - #define PORT_OVERRIDE_SPEED_1000M (2 << PORT_OVERRIDE_SPEED_S) -+#define PORT_OVERRIDE_LP_FLOW_25 BIT(3) /* BCM5325 only */ - #define PORT_OVERRIDE_RV_MII_25 BIT(4) /* BCM5325 only */ - #define PORT_OVERRIDE_RX_FLOW BIT(4) - #define PORT_OVERRIDE_TX_FLOW BIT(5) diff --git a/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch b/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch deleted file mode 100644 index 9d7dcd84028..00000000000 --- a/target/linux/generic/backport-6.12/612-13-v6.17-net-dsa-b53-fix-b53_imp_vlan_setup-for-BCM5325.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c00df1018791185ea398f78af415a2a0aaa0c79c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 09:59:59 +0200 -Subject: [PATCH] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -CPU port should be B53_CPU_PORT instead of B53_CPU_PORT_25 for -B53_PVLAN_PORT_MASK register. - -Reviewed-by: Florian Fainelli -Signed-off-by: Álvaro Fernández Rojas -Link: https://patch.msgid.link/20250614080000.1884236-14-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - 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 -@@ -543,6 +543,10 @@ void b53_imp_vlan_setup(struct dsa_switc - unsigned int i; - u16 pvlan; - -+ /* BCM5325 CPU port is at 8 */ -+ if ((is5325(dev) || is5365(dev)) && cpu_port == B53_CPU_PORT_25) -+ cpu_port = B53_CPU_PORT; -+ - /* Enable the IMP port to be in the same VLAN as the other ports - * on a per-port basis such that we only have Port i and IMP in - * the same VLAN. diff --git a/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch b/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch deleted file mode 100644 index f9bea6133a5..00000000000 --- a/target/linux/generic/backport-6.12/612-14-v6.17-net-dsa-b53-ensure-BCM5325-PHYs-are-enabled.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 966a83df36c6f27476ac3501771422e7852098bc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 14 Jun 2025 10:00:00 +0200 -Subject: [PATCH] net: dsa: b53: ensure BCM5325 PHYs are enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -According to the datasheet, BCM5325 uses B53_PD_MODE_CTRL_25 register to -disable clocking to individual PHYs. -Only ports 1-4 can be enabled or disabled and the datasheet is explicit -about not toggling BIT(0) since it disables the PLL power and the switch. - -Signed-off-by: Álvaro Fernández Rojas -Reviewed-by: Florian Fainelli -Link: https://patch.msgid.link/20250614080000.1884236-15-noltari@gmail.com -Signed-off-by: Jakub Kicinski ---- - drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++ - drivers/net/dsa/b53/b53_regs.h | 5 ++++- - 2 files changed, 17 insertions(+), 1 deletion(-) - ---- a/drivers/net/dsa/b53/b53_common.c -+++ b/drivers/net/dsa/b53/b53_common.c -@@ -660,6 +660,19 @@ int b53_setup_port(struct dsa_switch *ds - if (dsa_is_user_port(ds, port)) - b53_set_eap_mode(dev, port, EAP_MODE_SIMPLIFIED); - -+ if (is5325(dev) && -+ in_range(port, 1, 4)) { -+ u8 reg; -+ -+ b53_read8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, ®); -+ reg &= ~PD_MODE_POWER_DOWN_PORT(0); -+ if (dsa_is_unused_port(ds, port)) -+ reg |= PD_MODE_POWER_DOWN_PORT(port); -+ else -+ reg &= ~PD_MODE_POWER_DOWN_PORT(port); -+ b53_write8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, reg); -+ } -+ - return 0; - } - EXPORT_SYMBOL(b53_setup_port); ---- a/drivers/net/dsa/b53/b53_regs.h -+++ b/drivers/net/dsa/b53/b53_regs.h -@@ -103,8 +103,11 @@ - #define PORT_OVERRIDE_SPEED_2000M BIT(6) /* BCM5301X only, requires setting 1000M */ - #define PORT_OVERRIDE_EN BIT(7) /* Use the register contents */ - --/* Power-down mode control */ -+/* Power-down mode control (8 bit) */ - #define B53_PD_MODE_CTRL_25 0x0f -+#define PD_MODE_PORT_MASK 0x1f -+/* Bit 0 also powers down the switch. */ -+#define PD_MODE_POWER_DOWN_PORT(i) BIT(i) - - /* IP Multicast control (8 bit) */ - #define B53_IP_MULTICAST_CTRL 0x21 diff --git a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch index a1be891a099..aa5fc662fac 100644 --- a/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch +++ b/target/linux/generic/backport-6.12/720-09-v6.14-net-phy-Constify-struct-mdio_device_id.patch @@ -205,7 +205,7 @@ Signed-off-by: Jakub Kicinski }; --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c -@@ -1717,7 +1717,7 @@ static struct phy_driver broadcom_driver +@@ -1734,7 +1734,7 @@ static struct phy_driver broadcom_driver module_phy_driver(broadcom_drivers); @@ -458,7 +458,7 @@ Signed-off-by: Jakub Kicinski { } --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c -@@ -5691,7 +5691,7 @@ MODULE_DESCRIPTION("Micrel PHY driver"); +@@ -5701,7 +5701,7 @@ MODULE_DESCRIPTION("Micrel PHY driver"); MODULE_AUTHOR("David J. Choi"); MODULE_LICENSE("GPL"); @@ -645,7 +645,7 @@ Signed-off-by: Jakub Kicinski }; --- a/drivers/net/phy/smsc.c +++ b/drivers/net/phy/smsc.c -@@ -884,7 +884,7 @@ MODULE_DESCRIPTION("SMSC PHY driver"); +@@ -885,7 +885,7 @@ MODULE_DESCRIPTION("SMSC PHY driver"); MODULE_AUTHOR("Herbert Valerio Riedel"); MODULE_LICENSE("GPL"); diff --git a/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch b/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch deleted file mode 100644 index ba83b8e0699..00000000000 --- a/target/linux/generic/backport-6.12/830-v6.17-Revert-leds-trigger-netdev-Configure-LED-blink-inter.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 26f732791f2bcab18f59c61915bbe35225f30136 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Sat, 12 Jul 2025 16:39:21 +0100 -Subject: [PATCH] Revert "leds: trigger: netdev: Configure LED blink interval - for HW offload" - -This reverts commit c629c972b310af41e9e072febb6dae9a299edde6. - -While .led_blink_set() would previously put an LED into an unconditional -permanently blinking state, the offending commit now uses same operation -to (also?) set the blink timing of the netdev trigger when offloading. - -This breaks many if not all of the existing PHY drivers which offer -offloading LED operations, as those drivers would just put the LED into -blinking state after .led_blink_set() has been called. - -Unfortunately the change even made it into stable kernels for unknown -reasons, so it should be reverted there as well. - -Fixes: c629c972b310a ("leds: trigger: netdev: Configure LED blink interval for HW offload") -Link: https://lore.kernel.org/linux-leds/c6134e26-2e45-4121-aa15-58aaef327201@lunn.ch/T/#m9d6fe81bbcb273e59f12bbedbd633edd32118387 -Suggested-by: Andrew Lunn -Cc: stable@vger.kernel.org -Signed-off-by: Daniel Golle -Reviewed-by: Andrew Lunn -Link: https://lore.kernel.org/r/6dcc77ee1c9676891d6250d8994850f521426a0f.1752334655.git.daniel@makrotopia.org -Signed-off-by: Lee Jones ---- - drivers/leds/trigger/ledtrig-netdev.c | 16 +++------------- - 1 file changed, 3 insertions(+), 13 deletions(-) - ---- a/drivers/leds/trigger/ledtrig-netdev.c -+++ b/drivers/leds/trigger/ledtrig-netdev.c -@@ -68,7 +68,6 @@ struct led_netdev_data { - unsigned int last_activity; - - unsigned long mode; -- unsigned long blink_delay; - int link_speed; - __ETHTOOL_DECLARE_LINK_MODE_MASK(supported_link_modes); - u8 duplex; -@@ -87,10 +86,6 @@ static void set_baseline_state(struct le - /* Already validated, hw control is possible with the requested mode */ - if (trigger_data->hw_control) { - led_cdev->hw_control_set(led_cdev, trigger_data->mode); -- if (led_cdev->blink_set) { -- led_cdev->blink_set(led_cdev, &trigger_data->blink_delay, -- &trigger_data->blink_delay); -- } - - return; - } -@@ -459,11 +454,10 @@ static ssize_t interval_store(struct dev - size_t size) - { - struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev); -- struct led_classdev *led_cdev = trigger_data->led_cdev; - unsigned long value; - int ret; - -- if (trigger_data->hw_control && !led_cdev->blink_set) -+ if (trigger_data->hw_control) - return -EINVAL; - - ret = kstrtoul(buf, 0, &value); -@@ -472,13 +466,9 @@ static ssize_t interval_store(struct dev - - /* impose some basic bounds on the timer interval */ - if (value >= 5 && value <= 10000) { -- if (trigger_data->hw_control) { -- trigger_data->blink_delay = value; -- } else { -- cancel_delayed_work_sync(&trigger_data->work); -+ cancel_delayed_work_sync(&trigger_data->work); - -- atomic_set(&trigger_data->interval, msecs_to_jiffies(value)); -- } -+ atomic_set(&trigger_data->interval, msecs_to_jiffies(value)); - set_baseline_state(trigger_data); /* resets timer */ - } - diff --git a/target/linux/generic/hack-6.12/204-module_strip.patch b/target/linux/generic/hack-6.12/204-module_strip.patch index d999e0992c6..1c67eb5de4a 100644 --- a/target/linux/generic/hack-6.12/204-module_strip.patch +++ b/target/linux/generic/hack-6.12/204-module_strip.patch @@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau endif # MODULES --- a/kernel/module/main.c +++ b/kernel/module/main.c -@@ -999,6 +999,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE( +@@ -1001,6 +1001,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE( static const char vermagic[] = VERMAGIC_STRING; @@ -110,7 +110,7 @@ Signed-off-by: Felix Fietkau int try_to_force_load(struct module *mod, const char *reason) { #ifdef CONFIG_MODULE_FORCE_LOAD -@@ -1010,6 +1011,7 @@ int try_to_force_load(struct module *mod +@@ -1012,6 +1013,7 @@ int try_to_force_load(struct module *mod return -ENOEXEC; #endif } @@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau /* Parse tag=value strings from .modinfo section */ char *module_next_tag_pair(char *string, unsigned long *secsize) -@@ -2093,9 +2095,11 @@ static void module_augment_kernel_taints +@@ -2095,9 +2097,11 @@ static void module_augment_kernel_taints static int check_modinfo(struct module *mod, struct load_info *info, int flags) { @@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau if (flags & MODULE_INIT_IGNORE_VERMAGIC) modmagic = NULL; -@@ -2109,6 +2113,7 @@ static int check_modinfo(struct module * +@@ -2111,6 +2115,7 @@ static int check_modinfo(struct module * info->name, modmagic, vermagic); return -ENOEXEC; } diff --git a/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch b/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch index d130b82dd6c..17a22d0528a 100644 --- a/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch +++ b/target/linux/generic/hack-6.12/901-debloat_sock_diag.patch @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, u32)); INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, -@@ -2326,9 +2343,11 @@ static void __sk_free(struct sock *sk) +@@ -2342,9 +2359,11 @@ static void __sk_free(struct sock *sk) if (likely(sk->sk_net_refcnt)) sock_inuse_add(sock_net(sk), -1); diff --git a/target/linux/generic/hack-6.12/902-debloat_proc.patch b/target/linux/generic/hack-6.12/902-debloat_proc.patch index c52a7ac5f35..5b344a1982a 100644 --- a/target/linux/generic/hack-6.12/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.12/902-debloat_proc.patch @@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -4256,6 +4256,8 @@ static __net_initdata struct pernet_oper +@@ -4273,6 +4273,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 51f0379fc1c..78b4d39332e 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .42 -LINUX_KERNEL_HASH-6.12.42 = 4804528a29cd20309a0b41c30e5aeffc35fa21ee3358f4a706d4586d003bc1fb +LINUX_VERSION-6.12 = .43 +LINUX_KERNEL_HASH-6.12.43 = 0fcbbbbcd456e87bbbfc8bf37af541fda62ccfcce76903503424fd101ef7bdee diff --git a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch index 300cbf7c7c5..bb78fc368f8 100644 --- a/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch +++ b/target/linux/generic/pending-6.12/454-block-add-support-for-notifications.patch @@ -149,7 +149,7 @@ Signed-off-by: Daniel Golle +device_initcall(blk_notifications_init); --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h -@@ -1696,4 +1696,12 @@ static inline bool bdev_can_atomic_write +@@ -1751,4 +1751,12 @@ static inline bool bdev_can_atomic_write #define DEFINE_IO_COMP_BATCH(name) struct io_comp_batch name = { } diff --git a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch index e89e0d25f5b..4cc5717b1c0 100644 --- a/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch +++ b/target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch @@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau } --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -2533,7 +2533,7 @@ void sk_setup_caps(struct sock *sk, stru +@@ -2550,7 +2550,7 @@ void sk_setup_caps(struct sock *sk, stru if (sk_is_tcp(sk)) sk->sk_route_caps |= NETIF_F_GSO; if (sk->sk_route_caps & NETIF_F_GSO) diff --git a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch index 72e2a76b624..09c53ee8751 100644 --- a/target/linux/generic/pending-6.12/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-6.12/834-ledtrig-libata.patch @@ -132,7 +132,7 @@ Signed-off-by: Daniel Golle /* * Define if arch has non-standard setup. This is a _PCI_ standard -@@ -934,6 +937,10 @@ struct ata_port { +@@ -935,6 +938,10 @@ struct ata_port { #ifdef CONFIG_ATA_ACPI struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ #endif diff --git a/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch b/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch index 76c36db38fd..737da1e2fe7 100644 --- a/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch +++ b/target/linux/ipq40xx/patches-6.12/400-mmc-sdhci-sdhci-msm-use-sdhci_set_clock-instead-of-s.patch @@ -13,7 +13,7 @@ Signed-off-by: Robert Marko --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -2369,7 +2369,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat +@@ -2383,7 +2383,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat static const struct sdhci_ops sdhci_msm_ops = { .reset = sdhci_and_cqhci_reset, diff --git a/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch b/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch index a90b0aaf9b3..6e0f35b6fc0 100644 --- a/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch +++ b/target/linux/ipq40xx/patches-6.12/401-mmc-sdhci-msm-comment-unused-sdhci_msm_set_clock.patch @@ -13,7 +13,7 @@ Signed-off-by: Christian Marangi --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c -@@ -1804,49 +1804,49 @@ static unsigned int sdhci_msm_get_min_cl +@@ -1818,49 +1818,49 @@ static unsigned int sdhci_msm_get_min_cl return SDHCI_MSM_MIN_CLOCK; } diff --git a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch index b9be19232d8..7d4f7a482fc 100644 --- a/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch +++ b/target/linux/ipq40xx/patches-6.12/701-net-dsa-add-out-of-band-tagging-protocol.patch @@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier +#endif --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -4792,6 +4792,9 @@ enum skb_ext_id { +@@ -4798,6 +4798,9 @@ enum skb_ext_id { #if IS_ENABLED(CONFIG_MCTP_FLOWS) SKB_EXT_MCTP, #endif diff --git a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch index a125b6bfb33..f325607dbf1 100644 --- a/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch +++ b/target/linux/lantiq/patches-6.12/001-MIPS-lantiq-add-pcie-driver.patch @@ -5518,7 +5518,7 @@ Signed-off-by: John Crispin (transaction layer end-to-end CRC checking). --- a/include/linux/pci.h +++ b/include/linux/pci.h -@@ -1629,6 +1629,8 @@ void pci_walk_bus_locked(struct pci_bus +@@ -1643,6 +1643,8 @@ void pci_walk_bus_locked(struct pci_bus void *userdata); int pci_cfg_space_size(struct pci_dev *dev); unsigned char pci_bus_max_busnr(struct pci_bus *bus); diff --git a/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch b/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch deleted file mode 100644 index 13c72d826bc..00000000000 --- a/target/linux/lantiq/patches-6.12/102-11-v6.17-MIPS-lantiq-falcon-sysctrl-fix-request-memory-check-.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 9c9a7ff9882fc6ba7d2f4050697e8bb80383e8dc Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Wed, 18 Jun 2025 22:53:23 +0800 -Subject: [PATCH 11/11] MIPS: lantiq: falcon: sysctrl: fix request memory check - logic - -request_mem_region() will return NULL instead of error code -when the memory request fails. Therefore, we should check if -the return value is non-zero instead of less than zero. In -this way, this patch also fixes the build warnings: - -arch/mips/lantiq/falcon/sysctrl.c:214:50: error: ordered comparison of pointer with integer zero [-Werror=extra] - 214 | res_status.name) < 0) || - | ^ -arch/mips/lantiq/falcon/sysctrl.c:216:47: error: ordered comparison of pointer with integer zero [-Werror=extra] - 216 | res_ebu.name) < 0) || - | ^ -arch/mips/lantiq/falcon/sysctrl.c:219:50: error: ordered comparison of pointer with integer zero [-Werror=extra] - 219 | res_sys[0].name) < 0) || - | ^ -arch/mips/lantiq/falcon/sysctrl.c:222:50: error: ordered comparison of pointer with integer zero [-Werror=extra] - 222 | res_sys[1].name) < 0) || - | ^ -arch/mips/lantiq/falcon/sysctrl.c:225:50: error: ordered comparison of pointer with integer zero [-Werror=extra] - 225 | res_sys[2].name) < 0)) - | - -Signed-off-by: Shiji Yang -Signed-off-by: Thomas Bogendoerfer ---- - arch/mips/lantiq/falcon/sysctrl.c | 23 ++++++++++------------- - 1 file changed, 10 insertions(+), 13 deletions(-) - ---- a/arch/mips/lantiq/falcon/sysctrl.c -+++ b/arch/mips/lantiq/falcon/sysctrl.c -@@ -210,19 +210,16 @@ void __init ltq_soc_init(void) - of_node_put(np_syseth); - of_node_put(np_sysgpe); - -- if ((request_mem_region(res_status.start, resource_size(&res_status), -- res_status.name) < 0) || -- (request_mem_region(res_ebu.start, resource_size(&res_ebu), -- res_ebu.name) < 0) || -- (request_mem_region(res_sys[0].start, -- resource_size(&res_sys[0]), -- res_sys[0].name) < 0) || -- (request_mem_region(res_sys[1].start, -- resource_size(&res_sys[1]), -- res_sys[1].name) < 0) || -- (request_mem_region(res_sys[2].start, -- resource_size(&res_sys[2]), -- res_sys[2].name) < 0)) -+ if ((!request_mem_region(res_status.start, resource_size(&res_status), -+ res_status.name)) || -+ (!request_mem_region(res_ebu.start, resource_size(&res_ebu), -+ res_ebu.name)) || -+ (!request_mem_region(res_sys[0].start, resource_size(&res_sys[0]), -+ res_sys[0].name)) || -+ (!request_mem_region(res_sys[1].start, resource_size(&res_sys[1]), -+ res_sys[1].name)) || -+ (!request_mem_region(res_sys[2].start, resource_size(&res_sys[2]), -+ res_sys[2].name))) - pr_err("Failed to request core resources"); - - status_membase = ioremap(res_status.start, diff --git a/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch b/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch deleted file mode 100644 index d3ed482badb..00000000000 --- a/target/linux/lantiq/patches-6.12/102-12-v6.17-MIPS-vpe-mt-add-missing-prototypes-for-vpe_-alloc-st.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 844615dd0f2d95c018ec66b943e08af22b62aff3 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Thu, 3 Jul 2025 21:06:32 +0800 -Subject: [PATCH] MIPS: vpe-mt: add missing prototypes for - vpe_{alloc,start,stop,free} - -These functions are exported but their prototypes are not defined. -This patch adds the missing function prototypes to fix the following -compilation warnings: - -arch/mips/kernel/vpe-mt.c:180:7: error: no previous prototype for 'vpe_alloc' [-Werror=missing-prototypes] - 180 | void *vpe_alloc(void) - | ^~~~~~~~~ -arch/mips/kernel/vpe-mt.c:198:5: error: no previous prototype for 'vpe_start' [-Werror=missing-prototypes] - 198 | int vpe_start(void *vpe, unsigned long start) - | ^~~~~~~~~ -arch/mips/kernel/vpe-mt.c:208:5: error: no previous prototype for 'vpe_stop' [-Werror=missing-prototypes] - 208 | int vpe_stop(void *vpe) - | ^~~~~~~~ -arch/mips/kernel/vpe-mt.c:229:5: error: no previous prototype for 'vpe_free' [-Werror=missing-prototypes] - 229 | int vpe_free(void *vpe) - | ^~~~~~~~ - -Signed-off-by: Shiji Yang -Signed-off-by: Thomas Bogendoerfer ---- - arch/mips/include/asm/vpe.h | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/arch/mips/include/asm/vpe.h -+++ b/arch/mips/include/asm/vpe.h -@@ -119,4 +119,12 @@ void cleanup_tc(struct tc *tc); - - int __init vpe_module_init(void); - void __exit vpe_module_exit(void); -+ -+#ifdef CONFIG_MIPS_VPE_LOADER_MT -+void *vpe_alloc(void); -+int vpe_start(void *vpe, unsigned long start); -+int vpe_stop(void *vpe); -+int vpe_free(void *vpe); -+#endif /* CONFIG_MIPS_VPE_LOADER_MT */ -+ - #endif /* _ASM_VPE_H */ diff --git a/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch b/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch index 71dc41569aa..f9ea6a6e4e0 100644 --- a/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch +++ b/target/linux/layerscape/patches-6.12/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch @@ -15,7 +15,7 @@ Signed-off-by: Kuldeep Singh --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c -@@ -828,9 +828,9 @@ static const struct flash_info spansion_ +@@ -859,9 +859,9 @@ static const struct flash_info spansion_ .name = "s25fs512s", .size = SZ_64M, .sector_size = SZ_256K, diff --git a/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch b/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch deleted file mode 100644 index 1f4c0904e6d..00000000000 --- a/target/linux/qualcommax/patches-6.12/0170-clk-qcom-gcc-ipq8074-fix-broken-freq-table-for-nss_port6_tx_clk_src.patch +++ /dev/null @@ -1,143 +0,0 @@ -From patchwork Thu May 22 20:25:55 2025 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Christian Marangi -X-Patchwork-Id: 14097271 -Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com - [209.85.221.50]) - (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) - (No client certificate requested) - by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE1BF2B9A9; - Thu, 22 May 2025 20:26:28 +0000 (UTC) -Authentication-Results: smtp.subspace.kernel.org; - arc=none smtp.client-ip=209.85.221.50 -ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; - t=1747945590; cv=none; - b=SJyQKJEIm31L7OgiCxpH5eSDCvy3pwWfc5Tm5ylnbA62aIfHLr9TAaJ3qgIEhatEmg1tASNg/kuDmfqVkvTcCgfN89i5AC/I6gvQRguLThtK4NHh5SuCKdUd49BWXk1X+Ma5cEIKEKY+Me0pO1q2XeLvwuWTFN3RHUkygO2Cias= -ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; - s=arc-20240116; t=1747945590; c=relaxed/simple; - bh=RcOtjmSun1IwEL5Wb3PSql0fo4oAT/kf0BO04Ne0FWo=; - h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; - b=lOheyUFV/bVQ1HRRivMF7JOVhTelzBEnWB7rGJmANrNWl2gcgEf+xEHi3nWPULWal/ppIdrVL9LjC0v7KEKoHe6XJ/WmqmhJgrNKiUSUJQbnmUZgaser6iyO9XJUCjR3TlgdSnZ2A8dsLXVbiK2UPLe+GUdb0V5O5ZChOm6rVAM= -ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; - dmarc=pass (p=none dis=none) header.from=gmail.com; - spf=pass smtp.mailfrom=gmail.com; - dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com - header.b=U3Ibckvp; arc=none smtp.client-ip=209.85.221.50 -Authentication-Results: smtp.subspace.kernel.org; - dmarc=pass (p=none dis=none) header.from=gmail.com -Authentication-Results: smtp.subspace.kernel.org; - spf=pass smtp.mailfrom=gmail.com -Authentication-Results: smtp.subspace.kernel.org; - dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com - header.b="U3Ibckvp" -Received: by mail-wr1-f50.google.com with SMTP id - ffacd0b85a97d-3a367ec7840so3966539f8f.2; - Thu, 22 May 2025 13:26:28 -0700 (PDT) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=gmail.com; s=20230601; t=1747945587; x=1748550387; - darn=vger.kernel.org; - h=content-transfer-encoding:mime-version:message-id:date:subject:cc - :to:from:from:to:cc:subject:date:message-id:reply-to; - bh=xgvKtt5DybnIrKc6mWPJ7EZTeS6I4nUMUzu2bm2zMtQ=; - b=U3IbckvpuScfyKSdVLd02B1axIbs/9630TXWceGPzDNFU/YHi8PIALyMXNVBZ5/DGb - fSlmQmam2bC0j5pk1bg2xqWs7I9sCteTah3Ygxo9X1vXhD9PnqbhJfgvQJp3KrNoLwC4 - JdRzdVi/vjJIEEuMlveXpcanmLLn+BjOEYYMs8x3EZ3yLYQr7KkHtJ+V6HTWPsE47qA8 - mOdp/ysLZ2jLPihravIjN6BlUSGMz5EkdYudIljy3wYNiga385aw4aQsa79gd/J7RxjD - o9GAIcFAtoRp4Co7G632DYC+zoYQw1G10ZfIzT7kOCPRZxoevlaGeRVxsgh9bCnsQ9LT - 3aog== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20230601; t=1747945587; x=1748550387; - h=content-transfer-encoding:mime-version:message-id:date:subject:cc - :to:from:x-gm-message-state:from:to:cc:subject:date:message-id - :reply-to; - bh=xgvKtt5DybnIrKc6mWPJ7EZTeS6I4nUMUzu2bm2zMtQ=; - b=Fdp0DTSGLe7u0fvh/rW+co2BBsFkL9sH5Y4cVO/uEyWrOuDZY4wEIY3k7tT9z/qusu - qsBqrFaiXgv99S3sOK6e4buTvnX+yvbk5hBq7kKb+WUSdLnvo7am0NzjlVz3/8ksSosU - g/6WFJbxG/UEf7eQS5ze9cOtfag1nj3qpj/wf1od2RAE8KLaGt1yT2RKXrxvWswjVtWc - TVKIc5mEANR4fTG4AwfOVG6QBU1JfLpTBS41O9THoy/vk3BI9id6by4w3zsD8BSc4Z6W - njvleK+s7I7draMy3YYcYM3etzGD2P5AiJj0NxoyEZ8hCSswjCDIcfQniPRhfblicRBT - Bi+Q== -X-Forwarded-Encrypted: i=1; - AJvYcCU//xD5uHyFhB4sHqPQHkUS/SeqLIOqpGrEMtx0zyh2/T2x39VopI/PnTpe2ESaMCDbmRl8MurqOBOJ@vger.kernel.org, - AJvYcCWlko+5ICQgXGZZ6qZxD3WWDXE1EmkOd7Tw+6qOZDni1suR0Um5tG1VcHHtIJIp034hXQ7Tj5WK3veOVQgD@vger.kernel.org, - AJvYcCXnJcB9/SJexBqJAU7vPtjnJ2eKMHLPx+eHgLCSNvPKpkH7r5TU+eAOzfjqSPvmxKNRZXM/L/CxkyxDzp+n@vger.kernel.org -X-Gm-Message-State: AOJu0Ywgx5kKVjnck8zcNF5jiJmr1aap8FGVVIFxqqFyLqAdMsRpJ5RM - YGVflzDLCHubLU2D5IwFoaoiTDyGi/eHphmIPndSUeFP8moWY/T6O3Pd -X-Gm-Gg: ASbGncunHQP8921RyvQsddVmY7ua8h+QTVvMvQHB4kaRgHeeD58OPdZJCqc3cNVNIP1 - X/LZAzqXAmd7j1ls65igxC/kCtPSyDnS4zh1hu6AFlttxuOfgdWgiXbFyqdozanfhYDRhD11FD6 - aAseq7i2gRb72LDgkGGmwREbBnHgtugTuSboaAJnCaoVVhU53SdpG0XfrAJBxVVHKFRv+WLtktr - o0itJiaG5BklL3SQ7I36EqdExH7yo3mPByvwYI5zarwBqgENcIqxoMbum72iweT8YSB7p6h0iMo - /dPKuoYps8Nt9k6kkL6oF2SkVLjTvYDQ4kna9JVBqwP0UdjBgTo+FMZBNy6UNnEnJC+4gKrLnE+ - I1asottOJwbm+C7Ke4/O9 -X-Google-Smtp-Source: - AGHT+IE/fBAh0wuvEHRV8Pp3re+RzxCwE85Zo4u5IxHZMcKKHBmdPi+/PvNmPZSoI/27B1urc+XZXg== -X-Received: by 2002:a05:6000:2281:b0:3a3:7be3:cba9 with SMTP id - ffacd0b85a97d-3a37be3cebdmr9761395f8f.18.1747945586791; - Thu, 22 May 2025 13:26:26 -0700 (PDT) -Received: from localhost.localdomain (93-34-88-225.ip49.fastwebnet.it. - [93.34.88.225]) - by smtp.googlemail.com with ESMTPSA id - ffacd0b85a97d-3a35ca5a03fsm23883073f8f.22.2025.05.22.13.26.25 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Thu, 22 May 2025 13:26:25 -0700 (PDT) -From: Christian Marangi -To: Bjorn Andersson , - Michael Turquette , - Stephen Boyd , - Christian Marangi , - linux-arm-msm@vger.kernel.org, - linux-clk@vger.kernel.org, - linux-kernel@vger.kernel.org -Cc: stable@vger.kernel.org -Subject: [PATCH] clk: qcom: gcc-ipq8074: fix broken freq table for - nss_port6_tx_clk_src -Date: Thu, 22 May 2025 22:25:55 +0200 -Message-ID: <20250522202600.4028-1-ansuelsmth@gmail.com> -X-Mailer: git-send-email 2.48.1 -Precedence: bulk -X-Mailing-List: linux-arm-msm@vger.kernel.org -List-Id: -List-Subscribe: -List-Unsubscribe: -MIME-Version: 1.0 - -With the conversion done by commit e88f03230dc0 ("clk: qcom: gcc-ipq8074: -rework nss_port5/6 clock to multiple conf") a Copy-Paste error was made -for the nss_port6_tx_clk_src frequency table. - -This was caused by the wrong setting of the parent in -ftbl_nss_port6_tx_clk_src that was wrongly set to P_UNIPHY1_RX instead -of P_UNIPHY2_TX. - -This cause the UNIPHY2 port to malfunction when it needs to be scaled to -higher clock. The malfunction was observed with the example scenario -with an Aquantia 10G PHY connected and a speed higher than 1G (example -2.5G) - -Fix the broken frequency table to restore original functionality. - -Cc: stable@vger.kernel.org -Fixes: e88f03230dc0 ("clk: qcom: gcc-ipq8074: rework nss_port5/6 clock to multiple conf") -Signed-off-by: Christian Marangi ---- - drivers/clk/qcom/gcc-ipq8074.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/drivers/clk/qcom/gcc-ipq8074.c -+++ b/drivers/clk/qcom/gcc-ipq8074.c -@@ -1895,10 +1895,10 @@ static const struct freq_conf ftbl_nss_p - static const struct freq_multi_tbl ftbl_nss_port6_tx_clk_src[] = { - FMS(19200000, P_XO, 1, 0, 0), - FM(25000000, ftbl_nss_port6_tx_clk_src_25), -- FMS(78125000, P_UNIPHY1_RX, 4, 0, 0), -+ FMS(78125000, P_UNIPHY2_TX, 4, 0, 0), - FM(125000000, ftbl_nss_port6_tx_clk_src_125), -- FMS(156250000, P_UNIPHY1_RX, 2, 0, 0), -- FMS(312500000, P_UNIPHY1_RX, 1, 0, 0), -+ FMS(156250000, P_UNIPHY2_TX, 2, 0, 0), -+ FMS(312500000, P_UNIPHY2_TX, 1, 0, 0), - { } - }; - diff --git a/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch index 0ab9517d889..489d2238060 100644 --- a/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -3185,6 +3185,18 @@ static const struct usb_device_id uvc_id +@@ -3197,6 +3197,18 @@ static const struct usb_device_id uvc_id .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, @@ -64,7 +64,7 @@ Signed-off-by: John Crispin #include #include -@@ -1344,9 +1349,149 @@ static void uvc_video_decode_data(struct +@@ -1353,9 +1358,149 @@ static void uvc_video_decode_data(struct uvc_urb->async_operations++; } @@ -214,7 +214,7 @@ Signed-off-by: John Crispin /* Mark the buffer as done if the EOF marker is set. */ if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) { uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n"); -@@ -1928,6 +2073,8 @@ static int uvc_init_video_isoc(struct uv +@@ -1937,6 +2082,8 @@ static int uvc_init_video_isoc(struct uv if (npackets == 0) return -ENOMEM; -- 2.47.2