From: John Audia Date: Fri, 27 Jun 2025 11:04:12 +0000 (-0400) Subject: kernel: bump 6.6 to 6.6.95 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F19265%2Fhead;p=thirdparty%2Fopenwrt.git kernel: bump 6.6 to 6.6.95 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.95 Removed upstreamed: backport-6.6/201-v6.16-mips-Add-std-flag-specified.patch[1] mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[2] mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[3] mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[4] mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch[5] gemini/patches-6.6/0005-net-ethernet-cortina-Use-TSO-also-on-common-TCP.patch [6] Manually refreshed: bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch [7] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=231f6a1de15b3f62eb8d6163a8b1bc5935025c69 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=ae48bc0b8be8786fd0ceab4b5a95c09b5aa93816 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=8a15a5438c5816a1003b88ce20f25ccc92909ee7 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=02c966a8869becb29282403540c88ba33e19c347 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=14a26f6692062a529b612420adb6c0b9290b25d3 6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=a37888a435b0737128d2d9c6f67b8d608f83df7a 7. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.95&id=0909b2b49c4546a7a08c80f53d93736b63270827 Build system: x86/64 Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64 Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/19248 (cherry picked from commit 18319664064b6d4d7a923175b85d2faae2f44418) Co-authored-by: Goetz Goerisch Co-authored-by: Hauke Mehrtens Signed-off-by: Goetz Goerisch Link: https://github.com/openwrt/openwrt/pull/19265 Signed-off-by: Hauke Mehrtens --- diff --git a/include/kernel-6.6 b/include/kernel-6.6 index a2e954d0020..d2d952e2541 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .94 -LINUX_KERNEL_HASH-6.6.94 = 713981ea26b20b476ba4ce880b76b21294576788d5db1c2188b167bcb06ecc56 +LINUX_VERSION-6.6 = .95 +LINUX_KERNEL_HASH-6.6.95 = 18640ae9a2c952f8f8868324378df1a9e138ad29e6b93a9c38155764ea67ea85 diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch index 92c8cd90d1b..9168d5e973d 100644 --- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch @@ -751,7 +751,7 @@ SVN-Revision: 35130 EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4276,14 +4276,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4283,14 +4283,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch index a0b5d2fd2a8..e983d5295b1 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch @@ -344,7 +344,7 @@ Signed-off-by: Phil Elwell } --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h -@@ -143,6 +143,14 @@ static const struct mmc_fixup __maybe_un +@@ -153,6 +153,14 @@ static const struct mmc_fixup __maybe_un MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd, MMC_QUIRK_BROKEN_SD_DISCARD), @@ -2013,10 +2013,10 @@ Signed-off-by: Phil Elwell sdhci_dumpregs(host); --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -297,6 +297,7 @@ struct mmc_card { - #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */ +@@ -298,6 +298,7 @@ struct mmc_card { #define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */ #define MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY (1<<17) /* Disable broken SD poweroff notify support */ + #define MMC_QUIRK_NO_UHS_DDR50_TUNING (1<<18) /* Disable DDR50 tuning */ +#define MMC_QUIRK_ERASE_BROKEN (1<<31) /* Skip erase */ bool written_flag; /* Indicates eMMC has been written since power on */ diff --git a/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch b/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch index 31a173a2e08..9abdb37960b 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0518-net-macb-Also-set-DMA-coherent-mask.patch @@ -367,7 +367,7 @@ Signed-off-by: Jonathan Bell spin_lock_init(&bp->lock); spin_lock_init(&bp->stats_lock); -@@ -5118,6 +5237,21 @@ static int macb_probe(struct platform_de +@@ -5122,6 +5241,21 @@ static int macb_probe(struct platform_de else bp->phy_interface = interface; @@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell /* IP specific init */ err = init(pdev); if (err) -@@ -5194,6 +5328,19 @@ static int macb_remove(struct platform_d +@@ -5198,6 +5332,19 @@ static int macb_remove(struct platform_d return 0; } @@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell static int __maybe_unused macb_suspend(struct device *dev) { struct net_device *netdev = dev_get_drvdata(dev); -@@ -5408,6 +5555,7 @@ static const struct dev_pm_ops macb_pm_o +@@ -5412,6 +5559,7 @@ static const struct dev_pm_ops macb_pm_o static struct platform_driver macb_driver = { .probe = macb_probe, .remove = macb_remove, diff --git a/target/linux/bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch b/target/linux/bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch index ee15b7969c2..fa382806f50 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0678-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch @@ -23,33 +23,40 @@ Signed-off-by: Dave Stevenson #define for_each_registered_fb(i) \ for (i = 0; i < FB_MAX; i++) \ if (!registered_fb[i]) {} else -@@ -938,10 +939,12 @@ static int do_register_framebuffer(struc +@@ -939,9 +940,12 @@ static int do_register_framebuffer(struc + if (num_registered_fb == FB_MAX) return -ENXIO; - num_registered_fb++; - for (i = 0 ; i < FB_MAX; i++) - if (!registered_fb[i]) - break; -- fb_info->node = i; + if (!fb_info->custom_fb_num || fb_info->node >= FB_MAX || registered_fb[fb_info->node]) { + for (i = min_dynamic_fb ; i < FB_MAX; i++) + if (!registered_fb[i]) + break; + fb_info->node = i; + } + + if (!fb_info->modelist.prev || !fb_info->modelist.next) + INIT_LIST_HEAD(&fb_info->modelist); +@@ -951,7 +955,6 @@ static int do_register_framebuffer(struc + if (err < 0) + return err; + +- fb_info->node = i; refcount_set(&fb_info->count, 1); mutex_init(&fb_info->lock); mutex_init(&fb_info->mm_lock); -@@ -976,7 +979,7 @@ static int do_register_framebuffer(struc +@@ -982,7 +985,7 @@ static int do_register_framebuffer(struc + pm_vt_switch_required(fb_info->device, true); - fb_var_to_videomode(&mode, &fb_info->var); - fb_add_videomode(&mode, &fb_info->modelist); + num_registered_fb++; - registered_fb[i] = fb_info; + registered_fb[fb_info->node] = fb_info; #ifdef CONFIG_GUMSTIX_AM200EPD { -@@ -1037,6 +1040,12 @@ static void do_unregister_framebuffer(st +@@ -1043,6 +1046,12 @@ static void do_unregister_framebuffer(st put_fb_info(fb_info); } diff --git a/target/linux/bcm27xx/patches-6.6/950-0980-drivers-mmc-add-SD-support-for-Command-Queueing.patch b/target/linux/bcm27xx/patches-6.6/950-0980-drivers-mmc-add-SD-support-for-Command-Queueing.patch index 14eb62cfac8..c7c227e8afe 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0980-drivers-mmc-add-SD-support-for-Command-Queueing.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0980-drivers-mmc-add-SD-support-for-Command-Queueing.patch @@ -91,7 +91,7 @@ Signed-off-by: Jonathan Bell cmd.flags &= ~MMC_RSP_CRC; /* Ignore CRC */ --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1016,8 +1016,8 @@ static bool mmc_sd_card_using_v18(struct +@@ -1032,8 +1032,8 @@ static bool mmc_sd_card_using_v18(struct (SD_MODE_UHS_SDR50 | SD_MODE_UHS_SDR104 | SD_MODE_UHS_DDR50); } @@ -102,7 +102,7 @@ Signed-off-by: Jonathan Bell { struct mmc_host *host = card->host; struct mmc_request mrq = {}; -@@ -1175,8 +1175,14 @@ static int sd_parse_ext_reg_perf(struct +@@ -1191,8 +1191,14 @@ static int sd_parse_ext_reg_perf(struct card->ext_perf.feature_support |= SD_EXT_PERF_CACHE; /* Command queue support indicated via queue depth bits (0 to 4). */ @@ -118,7 +118,7 @@ Signed-off-by: Jonathan Bell card->ext_perf.fno = fno; card->ext_perf.page = page; -@@ -1563,13 +1569,41 @@ cont: +@@ -1579,13 +1585,41 @@ cont: goto free_card; } diff --git a/target/linux/bcm27xx/patches-6.6/950-0983-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch b/target/linux/bcm27xx/patches-6.6/950-0983-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch index 2d1d317891c..c95bd1fc550 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0983-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0983-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch @@ -30,7 +30,7 @@ Signed-off-by: Jonathan Bell kfree(card); --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1026,9 +1026,8 @@ int sd_write_ext_reg(struct mmc_card *ca +@@ -1042,9 +1042,8 @@ int sd_write_ext_reg(struct mmc_card *ca struct scatterlist sg; u8 *reg_buf; @@ -42,7 +42,7 @@ Signed-off-by: Jonathan Bell mrq.cmd = &cmd; mrq.data = &data; -@@ -1060,8 +1059,6 @@ int sd_write_ext_reg(struct mmc_card *ca +@@ -1076,8 +1075,6 @@ int sd_write_ext_reg(struct mmc_card *ca mmc_set_data_timeout(&data, card); mmc_wait_for_req(host, &mrq); @@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell /* * Note that, the SD card is allowed to signal busy on DAT0 up to 1s * after the CMD49. Although, let's leave this to be managed by the -@@ -1102,9 +1099,7 @@ static int sd_parse_ext_reg_power(struct +@@ -1118,9 +1115,7 @@ static int sd_parse_ext_reg_power(struct int err; u8 *reg_buf; @@ -62,7 +62,7 @@ Signed-off-by: Jonathan Bell /* Read the extension register for power management function. */ err = sd_read_ext_reg(card, fno, page, offset, 512, reg_buf); -@@ -1134,7 +1129,6 @@ static int sd_parse_ext_reg_power(struct +@@ -1150,7 +1145,6 @@ static int sd_parse_ext_reg_power(struct card->ext_power.offset = offset; out: @@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell return err; } -@@ -1144,9 +1138,7 @@ static int sd_parse_ext_reg_perf(struct +@@ -1160,9 +1154,7 @@ static int sd_parse_ext_reg_perf(struct int err; u8 *reg_buf; @@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell err = sd_read_ext_reg(card, fno, page, offset, 512, reg_buf); if (err) { -@@ -1189,7 +1181,6 @@ static int sd_parse_ext_reg_perf(struct +@@ -1205,7 +1197,6 @@ static int sd_parse_ext_reg_perf(struct card->ext_perf.offset = offset; out: @@ -89,7 +89,7 @@ Signed-off-by: Jonathan Bell return err; } -@@ -1260,6 +1251,12 @@ static int sd_read_ext_regs(struct mmc_c +@@ -1276,6 +1267,12 @@ static int sd_read_ext_regs(struct mmc_c if (!gen_info_buf) return -ENOMEM; @@ -102,7 +102,7 @@ Signed-off-by: Jonathan Bell /* * Read 512 bytes of general info, which is found at function number 0, * at page 0 and with no offset. -@@ -1326,9 +1323,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1342,9 +1339,7 @@ static int sd_flush_cache(struct mmc_hos if (!sd_cache_enabled(host)) return 0; @@ -113,7 +113,7 @@ Signed-off-by: Jonathan Bell /* * Set Flush Cache at bit 0 in the performance enhancement register at -@@ -1364,21 +1359,15 @@ static int sd_flush_cache(struct mmc_hos +@@ -1380,21 +1375,15 @@ static int sd_flush_cache(struct mmc_hos if (reg_buf[0] & BIT(0)) err = -ETIMEDOUT; out: @@ -135,7 +135,7 @@ Signed-off-by: Jonathan Bell /* * Set Cache Enable at bit 0 in the performance enhancement register at * 260 bytes offset. -@@ -1397,7 +1386,6 @@ static int sd_enable_cache(struct mmc_ca +@@ -1413,7 +1402,6 @@ static int sd_enable_cache(struct mmc_ca card->ext_perf.feature_enabled |= SD_EXT_PERF_CACHE; out: @@ -145,7 +145,7 @@ Signed-off-by: Jonathan Bell --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -321,6 +321,7 @@ struct mmc_card { +@@ -322,6 +322,7 @@ struct mmc_card { struct sd_switch_caps sw_caps; /* switch (CMD6) caps */ struct sd_ext_reg ext_power; /* SD extension reg for PM */ struct sd_ext_reg ext_perf; /* SD extension reg for PERF */ diff --git a/target/linux/bcm27xx/patches-6.6/950-0994-drivers-mmc-export-SD-extension-register-read-write-.patch b/target/linux/bcm27xx/patches-6.6/950-0994-drivers-mmc-export-SD-extension-register-read-write-.patch index e2347ed9d2e..830b13e2d12 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0994-drivers-mmc-export-SD-extension-register-read-write-.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0994-drivers-mmc-export-SD-extension-register-read-write-.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1016,83 +1016,6 @@ static bool mmc_sd_card_using_v18(struct +@@ -1032,83 +1032,6 @@ static bool mmc_sd_card_using_v18(struct (SD_MODE_UHS_SDR50 | SD_MODE_UHS_SDR104 | SD_MODE_UHS_DDR50); } @@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell static int sd_parse_ext_reg_power(struct mmc_card *card, u8 fno, u8 page, u16 offset) { -@@ -1102,7 +1025,7 @@ static int sd_parse_ext_reg_power(struct +@@ -1118,7 +1041,7 @@ static int sd_parse_ext_reg_power(struct reg_buf = card->ext_reg_buf; /* Read the extension register for power management function. */ @@ -109,7 +109,7 @@ Signed-off-by: Jonathan Bell if (err) { pr_warn("%s: error %d reading PM func of ext reg\n", mmc_hostname(card->host), err); -@@ -1140,7 +1063,7 @@ static int sd_parse_ext_reg_perf(struct +@@ -1156,7 +1079,7 @@ static int sd_parse_ext_reg_perf(struct reg_buf = card->ext_reg_buf; @@ -118,7 +118,7 @@ Signed-off-by: Jonathan Bell if (err) { pr_warn("%s: error %d reading PERF func of ext reg\n", mmc_hostname(card->host), err); -@@ -1235,7 +1158,7 @@ static int sd_parse_ext_reg(struct mmc_c +@@ -1251,7 +1174,7 @@ static int sd_parse_ext_reg(struct mmc_c return 0; } @@ -127,7 +127,7 @@ Signed-off-by: Jonathan Bell { int err, i; u8 num_ext, *gen_info_buf; -@@ -1261,7 +1184,7 @@ static int sd_read_ext_regs(struct mmc_c +@@ -1277,7 +1200,7 @@ static int sd_read_ext_regs(struct mmc_c * Read 512 bytes of general info, which is found at function number 0, * at page 0 and with no offset. */ @@ -136,7 +136,7 @@ Signed-off-by: Jonathan Bell if (err) { pr_err("%s: error %d reading general info of SD ext reg\n", mmc_hostname(card->host), err); -@@ -1333,7 +1256,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1349,7 +1272,7 @@ static int sd_flush_cache(struct mmc_hos page = card->ext_perf.page; offset = card->ext_perf.offset + 261; @@ -145,7 +145,7 @@ Signed-off-by: Jonathan Bell if (err) { pr_warn("%s: error %d writing Cache Flush bit\n", mmc_hostname(host), err); -@@ -1349,7 +1272,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1365,7 +1288,7 @@ static int sd_flush_cache(struct mmc_hos * Read the Flush Cache bit. The card shall reset it, to confirm that * it's has completed the flushing of the cache. */ @@ -154,7 +154,7 @@ Signed-off-by: Jonathan Bell if (err) { pr_warn("%s: error %d reading Cache Flush bit\n", mmc_hostname(host), err); -@@ -1372,7 +1295,7 @@ static int sd_enable_cache(struct mmc_ca +@@ -1388,7 +1311,7 @@ static int sd_enable_cache(struct mmc_ca * Set Cache Enable at bit 0 in the performance enhancement register at * 260 bytes offset. */ @@ -163,7 +163,7 @@ Signed-off-by: Jonathan Bell card->ext_perf.offset + 260, BIT(0)); if (err) { pr_warn("%s: error %d writing Cache Enable bit\n", -@@ -1545,7 +1468,7 @@ retry: +@@ -1561,7 +1484,7 @@ retry: cont: if (!oldcard) { /* Read/parse the extension registers. */ @@ -172,7 +172,7 @@ Signed-off-by: Jonathan Bell if (err) goto free_card; } -@@ -1672,7 +1595,7 @@ static int sd_busy_poweroff_notify_cb(vo +@@ -1688,7 +1611,7 @@ static int sd_busy_poweroff_notify_cb(vo * one byte offset and is one byte long. The Power Off Notification * Ready is bit 0. */ @@ -181,7 +181,7 @@ Signed-off-by: Jonathan Bell card->ext_power.offset + 1, 1, data->reg_buf); if (err) { pr_warn("%s: error %d reading status reg of PM func\n", -@@ -1698,7 +1621,7 @@ static int sd_poweroff_notify(struct mmc +@@ -1714,7 +1637,7 @@ static int sd_poweroff_notify(struct mmc * Set the Power Off Notification bit in the power management settings * register at 2 bytes offset. */ diff --git a/target/linux/bcm27xx/patches-6.6/950-0995-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch b/target/linux/bcm27xx/patches-6.6/950-0995-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch index 6a855757ac0..50138211fd6 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0995-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0995-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch @@ -17,7 +17,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1089,8 +1089,12 @@ static int sd_parse_ext_reg_perf(struct +@@ -1105,8 +1105,12 @@ static int sd_parse_ext_reg_perf(struct if ((reg_buf[4] & BIT(0)) && !mmc_card_broken_sd_cache(card)) card->ext_perf.feature_support |= SD_EXT_PERF_CACHE; diff --git a/target/linux/bcm27xx/patches-6.6/950-0996-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch b/target/linux/bcm27xx/patches-6.6/950-0996-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch index c12229ece9d..fc09f375e2f 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0996-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0996-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch @@ -27,7 +27,7 @@ Signed-off-by: Jonathan Bell pr_info("%s: Host Software Queue enabled\n", --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -715,7 +715,8 @@ MMC_DEV_ATTR(oemid, "0x%04x\n", card->ci +@@ -731,7 +731,8 @@ MMC_DEV_ATTR(oemid, "0x%04x\n", card->ci MMC_DEV_ATTR(serial, "0x%08x\n", card->cid.serial); MMC_DEV_ATTR(ocr, "0x%08x\n", card->ocr); MMC_DEV_ATTR(rca, "0x%04x\n", card->rca); @@ -37,7 +37,7 @@ Signed-off-by: Jonathan Bell static ssize_t mmc_dsr_show(struct device *dev, struct device_attribute *attr, char *buf) -@@ -777,6 +778,8 @@ static struct attribute *sd_std_attrs[] +@@ -793,6 +794,8 @@ static struct attribute *sd_std_attrs[] &dev_attr_ocr.attr, &dev_attr_rca.attr, &dev_attr_dsr.attr, @@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell NULL, }; -@@ -1512,8 +1515,8 @@ cont: +@@ -1528,8 +1531,8 @@ cont: host->cqe_enabled = true; if (card->ext_csd.cmdq_en) { diff --git a/target/linux/bcm27xx/patches-6.6/950-0997-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch b/target/linux/bcm27xx/patches-6.6/950-0997-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch index 55b369d659a..8af51d3a239 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0997-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0997-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1177,7 +1177,7 @@ static int mmc_sd_read_ext_regs(struct m +@@ -1193,7 +1193,7 @@ static int mmc_sd_read_ext_regs(struct m if (!(card->scr.cmds & SD_SCR_CMD48_SUPPORT)) return 0; @@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell if (!gen_info_buf) return -ENOMEM; -@@ -1208,14 +1208,23 @@ static int mmc_sd_read_ext_regs(struct m +@@ -1224,14 +1224,23 @@ static int mmc_sd_read_ext_regs(struct m num_ext = gen_info_buf[4]; /* diff --git a/target/linux/bcm27xx/patches-6.6/950-1167-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch b/target/linux/bcm27xx/patches-6.6/950-1167-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch index b1ddf96311c..5408d381e2c 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1167-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1167-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch @@ -129,7 +129,7 @@ Signed-off-by: Jonathan Bell bool busy; --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1104,6 +1104,14 @@ static int sd_parse_ext_reg_perf(struct +@@ -1120,6 +1120,14 @@ static int sd_parse_ext_reg_perf(struct pr_debug("%s: Command Queue supported depth %u\n", mmc_hostname(card->host), card->ext_csd.cmdq_depth); @@ -146,7 +146,7 @@ Signed-off-by: Jonathan Bell card->ext_perf.fno = fno; --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -344,6 +344,8 @@ struct mmc_card { +@@ -345,6 +345,8 @@ struct mmc_card { unsigned int nr_parts; struct workqueue_struct *complete_wq; /* Private workqueue */ diff --git a/target/linux/bcm27xx/patches-6.6/950-1168-fixup-mmc-restrict-posted-write-counts-for-SD-cards-.patch b/target/linux/bcm27xx/patches-6.6/950-1168-fixup-mmc-restrict-posted-write-counts-for-SD-cards-.patch index b4f30b4b3c4..150f93e762f 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1168-fixup-mmc-restrict-posted-write-counts-for-SD-cards-.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1168-fixup-mmc-restrict-posted-write-counts-for-SD-cards-.patch @@ -39,7 +39,7 @@ Signed-off-by: Jonathan Bell return BLK_STS_RESOURCE; --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1105,13 +1105,14 @@ static int sd_parse_ext_reg_perf(struct +@@ -1121,13 +1121,14 @@ static int sd_parse_ext_reg_perf(struct mmc_hostname(card->host), card->ext_csd.cmdq_depth); /* @@ -60,7 +60,7 @@ Signed-off-by: Jonathan Bell } card->ext_perf.fno = fno; -@@ -1375,6 +1376,7 @@ retry: +@@ -1391,6 +1392,7 @@ retry: card->ocr = ocr; card->type = MMC_TYPE_SD; diff --git a/target/linux/bcm27xx/patches-6.6/950-1260-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch b/target/linux/bcm27xx/patches-6.6/950-1260-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch index 761e5bea7f6..327c74d720b 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1260-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1260-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch @@ -26,13 +26,13 @@ Signed-off-by: Jonathan Bell #define CID_MANFID_SAMSUNG 0x15 +#define CID_MANFID_SAMSUNG_SD 0x1b #define CID_MANFID_APACER 0x27 + #define CID_MANFID_SWISSBIT 0x5D #define CID_MANFID_KINGSTON 0x70 - #define CID_MANFID_HYNIX 0x90 --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h -@@ -34,6 +34,14 @@ static const struct mmc_fixup __maybe_un - MMC_QUIRK_BROKEN_SD_CACHE | MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY, - EXT_CSD_REV_ANY), +@@ -44,6 +44,14 @@ static const struct mmc_fixup __maybe_un + 0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd, + MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY), + /* + * Samsung Pro Plus/EVO Plus/Pro Ultimate SD cards (2023) claim to cache diff --git a/target/linux/bcm27xx/patches-6.6/950-1333-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch b/target/linux/bcm27xx/patches-6.6/950-1333-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch index c62b301c22f..0d8111b8901 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1333-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1333-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch @@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h -@@ -42,6 +42,18 @@ static const struct mmc_fixup __maybe_un +@@ -52,6 +52,18 @@ static const struct mmc_fixup __maybe_un 0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd, MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY), diff --git a/target/linux/bcm27xx/patches-6.6/950-1336-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch b/target/linux/bcm27xx/patches-6.6/950-1336-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch index feb6eaf8ead..83535468288 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1336-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1336-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h -@@ -171,6 +171,15 @@ static const struct mmc_fixup __maybe_un +@@ -181,6 +181,15 @@ static const struct mmc_fixup __maybe_un MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN), MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN), diff --git a/target/linux/bcm27xx/patches-6.6/950-1506-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch b/target/linux/bcm27xx/patches-6.6/950-1506-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch index e5148707bda..612f31e239a 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1506-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1506-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch @@ -22,8 +22,8 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/card.h +++ b/drivers/mmc/core/card.h -@@ -292,4 +292,9 @@ static inline int mmc_card_broken_sd_pow - return c->quirks & MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY; +@@ -298,4 +298,9 @@ static inline int mmc_card_no_uhs_ddr50_ + return c->quirks & MMC_QUIRK_NO_UHS_DDR50_TUNING; } +static inline int mmc_card_working_sd_cq(const struct mmc_card *c) @@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell #endif --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1506,6 +1506,10 @@ cont: +@@ -1522,6 +1522,10 @@ cont: goto free_card; } @@ -47,10 +47,10 @@ Signed-off-by: Jonathan Bell /* --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -297,6 +297,7 @@ struct mmc_card { - #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */ +@@ -298,6 +298,7 @@ struct mmc_card { #define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */ #define MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY (1<<17) /* Disable broken SD poweroff notify support */ + #define MMC_QUIRK_NO_UHS_DDR50_TUNING (1<<18) /* Disable DDR50 tuning */ +#define MMC_QUIRK_WORKING_SD_CQ (1<<30) /* SD card has known-good CQ implementation */ #define MMC_QUIRK_ERASE_BROKEN (1<<31) /* Skip erase */ diff --git a/target/linux/bcm27xx/patches-6.6/950-1507-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch b/target/linux/bcm27xx/patches-6.6/950-1507-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch index 0dd1ffae716..ac3e2ebf374 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1507-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1507-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/card.h +++ b/drivers/mmc/core/card.h -@@ -90,6 +90,7 @@ struct mmc_fixup { +@@ -91,6 +91,7 @@ struct mmc_fixup { #define CID_MANFID_KINGSTON 0x70 #define CID_MANFID_HYNIX 0x90 #define CID_MANFID_KINGSTON_SD 0x9F @@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell #define END_FIXUP { NULL } --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h -@@ -66,6 +66,12 @@ static const struct mmc_fixup __maybe_un +@@ -76,6 +76,12 @@ static const struct mmc_fixup __maybe_un 0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd, MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY), diff --git a/target/linux/bcm27xx/patches-6.6/950-1508-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch b/target/linux/bcm27xx/patches-6.6/950-1508-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch index 2139eef8be7..cd29a177545 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1508-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1508-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell if (host->caps & MMC_CAP_NONREMOVABLE) --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1506,8 +1506,8 @@ cont: +@@ -1522,8 +1522,8 @@ cont: goto free_card; } diff --git a/target/linux/gemini/patches-6.6/0005-net-ethernet-cortina-Use-TSO-also-on-common-TCP.patch b/target/linux/gemini/patches-6.6/0005-net-ethernet-cortina-Use-TSO-also-on-common-TCP.patch deleted file mode 100644 index c690b8fddb3..00000000000 --- a/target/linux/gemini/patches-6.6/0005-net-ethernet-cortina-Use-TSO-also-on-common-TCP.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 91fb8a7328dda827bc6c0da240a1eb17028416cd Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Thu, 9 May 2024 23:59:28 +0200 -Subject: [PATCH 2/5] net: ethernet: cortina: Use TSO also on common TCP - -It is possible to push the segment offloader to also -process non-segmented frames: just pass the skb->len -or desired MSS to the offloader and it will handle them. - -This is especially good if the user sets up the MTU -and the frames get big, because the checksumming engine -cannot handle any frames bigger than 1518 bytes, so -segmenting them all to be at max that will be helpful -for the hardware, which only need to quirk odd frames -such as big UDP ping packets. - -The vendor driver always uses the TSO like this, and -the driver seems more stable after this, so apparently -the hardware may have been engineered to always use -the TSO on anything it can handle. - -Signed-off-by: Linus Walleij ---- - drivers/net/ethernet/cortina/gemini.c | 31 +++++++++++++++++++++------ - 1 file changed, 24 insertions(+), 7 deletions(-) - ---- a/drivers/net/ethernet/cortina/gemini.c -+++ b/drivers/net/ethernet/cortina/gemini.c -@@ -1148,6 +1148,7 @@ static int gmac_map_tx_bufs(struct net_d - struct gmac_txdesc *txd; - skb_frag_t *skb_frag; - dma_addr_t mapping; -+ bool tcp = false; - void *buffer; - u16 mss; - int ret; -@@ -1155,6 +1156,13 @@ static int gmac_map_tx_bufs(struct net_d - word1 = skb->len; - word3 = SOF_BIT; - -+ /* Determine if we are doing TCP */ -+ if (skb->protocol == htons(ETH_P_IP)) -+ tcp = (ip_hdr(skb)->protocol == IPPROTO_TCP); -+ else -+ /* IPv6 */ -+ tcp = (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP); -+ - mss = skb_shinfo(skb)->gso_size; - if (mss) { - /* This means we are dealing with TCP and skb->len is the -@@ -1167,6 +1175,20 @@ static int gmac_map_tx_bufs(struct net_d - mss, skb->len); - word1 |= TSS_MTU_ENABLE_BIT; - word3 |= mss; -+ } else if (tcp) { -+ /* Even if we are not using TSO, use the segment offloader -+ * for transferring the TCP frame: the TSO engine will deal -+ * with chopping up frames that exceed ETH_DATA_LEN which -+ * the checksumming engine cannot handle (see below) into -+ * manageable chunks. It flawlessly deals with quite big -+ * frames and frames containing custom DSA EtherTypes. -+ */ -+ mss = netdev->mtu + skb_tcp_all_headers(skb); -+ mss = min(mss, skb->len); -+ netdev_dbg(netdev, "botched TSO len %04x mtu %04x mss %04x\n", -+ skb->len, netdev->mtu, mss); -+ word1 |= TSS_MTU_ENABLE_BIT; -+ word3 |= mss; - } else if (skb->len >= ETH_FRAME_LEN) { - /* Hardware offloaded checksumming isn't working on frames - * bigger than 1514 bytes. A hypothesis about this is that the -@@ -1185,21 +1207,16 @@ static int gmac_map_tx_bufs(struct net_d - } - - if (skb->ip_summed == CHECKSUM_PARTIAL) { -- int tcp = 0; -- - /* We do not switch off the checksumming on non TCP/UDP - * frames: as is shown from tests, the checksumming engine - * is smart enough to see that a frame is not actually TCP - * or UDP and then just pass it through without any changes - * to the frame. - */ -- if (skb->protocol == htons(ETH_P_IP)) { -+ if (skb->protocol == htons(ETH_P_IP)) - word1 |= TSS_IP_CHKSUM_BIT; -- tcp = ip_hdr(skb)->protocol == IPPROTO_TCP; -- } else { /* IPv6 */ -+ else - word1 |= TSS_IPV6_ENABLE_BIT; -- tcp = ipv6_hdr(skb)->nexthdr == IPPROTO_TCP; -- } - - word1 |= tcp ? TSS_TCP_CHKSUM_BIT : TSS_UDP_CHKSUM_BIT; - } diff --git a/target/linux/gemini/patches-6.6/0008-net-ethernet-cortina-Implement-.set_pauseparam.patch b/target/linux/gemini/patches-6.6/0008-net-ethernet-cortina-Implement-.set_pauseparam.patch index ad7594e855c..687c352911f 100644 --- a/target/linux/gemini/patches-6.6/0008-net-ethernet-cortina-Implement-.set_pauseparam.patch +++ b/target/linux/gemini/patches-6.6/0008-net-ethernet-cortina-Implement-.set_pauseparam.patch @@ -16,7 +16,7 @@ Signed-off-by: Linus Walleij --- a/drivers/net/ethernet/cortina/gemini.c +++ b/drivers/net/ethernet/cortina/gemini.c -@@ -2143,6 +2143,19 @@ static void gmac_get_pauseparam(struct n +@@ -2147,6 +2147,19 @@ static void gmac_get_pauseparam(struct n pparam->autoneg = true; } @@ -36,7 +36,7 @@ Signed-off-by: Linus Walleij static void gmac_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *rp, struct kernel_ethtool_ringparam *kernel_rp, -@@ -2263,6 +2276,7 @@ static const struct ethtool_ops gmac_351 +@@ -2267,6 +2280,7 @@ static const struct ethtool_ops gmac_351 .set_link_ksettings = gmac_set_ksettings, .nway_reset = gmac_nway_reset, .get_pauseparam = gmac_get_pauseparam, diff --git a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch index d38231684d3..b721a16f18c 100644 --- a/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch +++ b/target/linux/generic/backport-6.6/602-v6.10-net-Use-backlog-NAPI-to-clean-up-the-defer_list.patch @@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -3308,6 +3308,7 @@ static inline void dev_xmit_recursion_de +@@ -3309,6 +3309,7 @@ static inline void dev_xmit_recursion_de __this_cpu_dec(softnet_data.xmit.recursion); } diff --git a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch index 9e0bd14acfa..efc64121775 100644 --- a/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch +++ b/target/linux/generic/backport-6.6/700-v6.10-net-create-a-dummy-net_device-allocator.patch @@ -37,7 +37,7 @@ Signed-off-by: David S. Miller --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -4580,6 +4580,9 @@ static inline void netif_addr_unlock_bh( +@@ -4581,6 +4581,9 @@ static inline void netif_addr_unlock_bh( void ether_setup(struct net_device *dev); diff --git a/target/linux/generic/backport-6.6/850-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch b/target/linux/generic/backport-6.6/850-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch index 94d9bcd93d7..4aad22248af 100644 --- a/target/linux/generic/backport-6.6/850-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch +++ b/target/linux/generic/backport-6.6/850-v6.8-bus-mhi-host-Add-a-separate-timeout-parameter-for-wa.patch @@ -109,7 +109,7 @@ Signed-off-by: Manivannan Sadhasivam if (ret) dev_err(dev, "Device failed to enter READY state\n"); } -@@ -1125,7 +1130,8 @@ int mhi_async_power_up(struct mhi_contro +@@ -1141,7 +1146,8 @@ int mhi_async_power_up(struct mhi_contro if (state == MHI_STATE_SYS_ERR) { mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET); ret = mhi_poll_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, @@ -119,7 +119,7 @@ Signed-off-by: Manivannan Sadhasivam if (ret) { dev_info(dev, "Failed to reset MHI due to syserr state\n"); goto error_exit; -@@ -1216,14 +1222,18 @@ EXPORT_SYMBOL_GPL(mhi_power_down); +@@ -1232,14 +1238,18 @@ EXPORT_SYMBOL_GPL(mhi_power_down); int mhi_sync_power_up(struct mhi_controller *mhi_cntrl) { int ret = mhi_async_power_up(mhi_cntrl); diff --git a/target/linux/generic/backport-6.6/853-v6.10-bus-mhi-host-Add-mhi_power_down_keep_dev-API-to-supp.patch b/target/linux/generic/backport-6.6/853-v6.10-bus-mhi-host-Add-mhi_power_down_keep_dev-API-to-supp.patch index 826b39b5185..b3e702bd627 100644 --- a/target/linux/generic/backport-6.6/853-v6.10-bus-mhi-host-Add-mhi_power_down_keep_dev-API-to-supp.patch +++ b/target/linux/generic/backport-6.6/853-v6.10-bus-mhi-host-Add-mhi_power_down_keep_dev-API-to-supp.patch @@ -49,7 +49,7 @@ mutex_lock(&mhi_cntrl->pm_mutex); -@@ -820,7 +829,10 @@ void mhi_pm_st_worker(struct work_struct +@@ -836,7 +845,10 @@ void mhi_pm_st_worker(struct work_struct mhi_pm_sys_error_transition(mhi_cntrl); break; case DEV_ST_TRANSITION_DISABLE: @@ -61,7 +61,7 @@ break; default: break; -@@ -1174,7 +1186,8 @@ error_exit: +@@ -1190,7 +1202,8 @@ error_exit: } EXPORT_SYMBOL_GPL(mhi_async_power_up); @@ -71,7 +71,7 @@ { enum mhi_pm_state cur_state, transition_state; struct device *dev = &mhi_cntrl->mhi_dev->dev; -@@ -1210,15 +1223,32 @@ void mhi_power_down(struct mhi_controlle +@@ -1226,15 +1239,32 @@ void mhi_power_down(struct mhi_controlle write_unlock_irq(&mhi_cntrl->pm_lock); mutex_unlock(&mhi_cntrl->pm_mutex); diff --git a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch index e6dcdfd92b6..9c3696e76a6 100644 --- a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch +++ b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" #include "gpiolib-of.h" -@@ -1129,3 +1131,73 @@ void of_gpiochip_remove(struct gpio_chip +@@ -1138,3 +1140,73 @@ void of_gpiochip_remove(struct gpio_chip { of_node_put(dev_of_node(&chip->gpiodev->dev)); } diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index e426c008d00..64472ad18fc 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau } --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -381,6 +381,9 @@ static struct pernet_operations ip_rt_pr +@@ -385,6 +385,9 @@ static struct pernet_operations ip_rt_pr static int __init ip_rt_proc_init(void) { diff --git a/target/linux/generic/pending-6.6/532-jffs2_eofdetect.patch b/target/linux/generic/pending-6.6/532-jffs2_eofdetect.patch index 744fbd0e217..88bb14a02a6 100644 --- a/target/linux/generic/pending-6.6/532-jffs2_eofdetect.patch +++ b/target/linux/generic/pending-6.6/532-jffs2_eofdetect.patch @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau if (ret < 0) goto out; -@@ -567,6 +573,17 @@ full_scan: +@@ -569,6 +575,17 @@ full_scan: return err; } diff --git a/target/linux/mvebu/patches-6.6/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.6/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch index 2483dedfae7..2d7b6b51762 100644 --- a/target/linux/mvebu/patches-6.6/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ b/target/linux/mvebu/patches-6.6/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch @@ -18,7 +18,7 @@ Signed-off-by: Linus Walleij --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -432,9 +432,7 @@ static int armada_37xx_gpio_direction_ou +@@ -433,9 +433,7 @@ static int armada_37xx_gpio_direction_ou reg = OUTPUT_EN; armada_37xx_update_reg(®, &en_offset); diff --git a/target/linux/mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch deleted file mode 100644 index 4fe9f1b7b86..00000000000 --- a/target/linux/mvebu/patches-6.6/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 57273ff8bb16f3842c2597b5bbcd49e7fa12edf7 Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:35 +0200 -Subject: [PATCH 4/7] pinctrl: armada-37xx: propagate error from - armada_37xx_gpio_get() - -The regmap_read() function can fail, so propagate its error up to -the stack instead of silently ignoring that. - -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-4-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -440,11 +440,14 @@ static int armada_37xx_gpio_get(struct g - struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); - unsigned int reg = INPUT_VAL; - unsigned int val, mask; -+ int ret; - - armada_37xx_update_reg(®, &offset); - mask = BIT(offset); - -- regmap_read(info->regmap, reg, &val); -+ ret = regmap_read(info->regmap, reg, &val); -+ if (ret) -+ return ret; - - return (val & mask) != 0; - } diff --git a/target/linux/mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch deleted file mode 100644 index 2395a0665fc..00000000000 --- a/target/linux/mvebu/patches-6.6/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ /dev/null @@ -1,42 +0,0 @@ -From bfa0ff804ffa8b1246ade8be08de98c9eb19d16f Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:36 +0200 -Subject: [PATCH 5/7] pinctrl: armada-37xx: propagate error from - armada_37xx_pmx_gpio_set_direction() - -The armada_37xx_gpio_direction_{in,out}put() functions can fail, so -propagate their error values back to the stack instead of silently -ignoring those. - -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-5-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -472,16 +472,17 @@ static int armada_37xx_pmx_gpio_set_dire - { - struct armada_37xx_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); - struct gpio_chip *chip = range->gc; -+ int ret; - - dev_dbg(info->dev, "gpio_direction for pin %u as %s-%d to %s\n", - offset, range->name, offset, input ? "input" : "output"); - - if (input) -- armada_37xx_gpio_direction_input(chip, offset); -+ ret = armada_37xx_gpio_direction_input(chip, offset); - else -- armada_37xx_gpio_direction_output(chip, offset, 0); -+ ret = armada_37xx_gpio_direction_output(chip, offset, 0); - -- return 0; -+ return ret; - } - - static int armada_37xx_gpio_request_enable(struct pinctrl_dev *pctldev, diff --git a/target/linux/mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch deleted file mode 100644 index 9aac2e58e1d..00000000000 --- a/target/linux/mvebu/patches-6.6/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 6481c0a83367b0672951ccc876fbae7ee37b594b Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:37 +0200 -Subject: [PATCH 6/7] pinctrl: armada-37xx: propagate error from - armada_37xx_gpio_get_direction() - -The regmap_read() function can fail, so propagate its error up to -the stack instead of silently ignoring that. - -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-6-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -402,10 +402,13 @@ static int armada_37xx_gpio_get_directio - struct armada_37xx_pinctrl *info = gpiochip_get_data(chip); - unsigned int reg = OUTPUT_EN; - unsigned int val, mask; -+ int ret; - - armada_37xx_update_reg(®, &offset); - mask = BIT(offset); -- regmap_read(info->regmap, reg, &val); -+ ret = regmap_read(info->regmap, reg, &val); -+ if (ret) -+ return ret; - - if (val & mask) - return GPIO_LINE_DIRECTION_OUT; diff --git a/target/linux/mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch deleted file mode 100644 index 6c14e50b4a7..00000000000 --- a/target/linux/mvebu/patches-6.6/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4229c28323db141eda69cb99427be75d3edba071 Mon Sep 17 00:00:00 2001 -From: Gabor Juhos -Date: Wed, 14 May 2025 21:18:38 +0200 -Subject: [PATCH 7/7] pinctrl: armada-37xx: propagate error from - armada_37xx_pmx_set_by_name() - -The regmap_update_bits() function can fail, so propagate its error -up to the stack instead of silently ignoring that. - -Signed-off-by: Imre Kaloz -Reviewed-by: Andrew Lunn -Signed-off-by: Gabor Juhos -Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-7-07e9ac1ab737@gmail.com -Signed-off-by: Linus Walleij ---- - drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - ---- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c -@@ -358,9 +358,7 @@ static int armada_37xx_pmx_set_by_name(s - - val = grp->val[func]; - -- regmap_update_bits(info->regmap, reg, mask, val); -- -- return 0; -+ return regmap_update_bits(info->regmap, reg, mask, val); - } - - static int armada_37xx_pmx_set(struct pinctrl_dev *pctldev, diff --git a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch index 01ecb16aeb1..6c6cff13c9c 100644 --- a/target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch +++ b/target/linux/ramips/patches-6.6/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 -@@ -3296,6 +3296,18 @@ static const struct usb_device_id uvc_id +@@ -3307,6 +3307,18 @@ static const struct usb_device_id uvc_id .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },