From: Shiji Yang Date: Fri, 27 Jun 2025 14:30:02 +0000 (+0800) Subject: kernel: bump 6.12 to 6.12.35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ddeb304998671376e52111afb42688506e48356;p=thirdparty%2Fopenwrt.git kernel: bump 6.12 to 6.12.35 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.35 Remove upstreamed patches: bcm27xx/patches-6.12/950-0961-media-imx335-Use-correct-register-width-for-HNUM.patch [1] bcm27xx/patches-6.12/950-1003-drivers-media-i2c-imx335-Fix-frame-size-enumeration.patch [2] gemini/patches-6.12/0001-net-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch [3] generic/backport-6.12/300-v6.16-mips-Add-std-flag-specified.patch [4] mvebu/patches-6.12/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [5] mvebu/patches-6.12/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [6] mvebu/patches-6.12/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [7] mvebu/patches-6.12/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch [8] Manually rebased patches: bcm27xx/patches-6.12/950-0392-fbdev-Allow-client-to-request-a-particular-dev-fbN-n.patch [9] All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=b93864e0865f235a791e69dc9ef4f896e559ef77 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=1f78790d988c9d55cf8d4b4d511d4b3e38ecb81d [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=2bd434bb0eeb680c2b3dd6c68ca319b30cb8d47f [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=6dbda47fe8bd6aa978c150bc9d321a286d2cc3f4 [5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=2cd2022c38fa26257cc6eec100ae122de9c1541c [6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=133f17922b3dbae44fe583fb898b92b03558a657 [7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=aefe45843ea667366e35df4fcfef5ff9051a86c9 [8] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=461d5a73ae45fbe6c300a6e64600f9792684eb52 [9] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.35&id=3f2098f4fba7718eb2501207ca6e99d22427f25a Signed-off-by: Shiji Yang Link: https://github.com/openwrt/openwrt/pull/19249 Signed-off-by: Hauke Mehrtens --- 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 224b8097e2c..ea51478fd06 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 @@ -623,7 +623,7 @@ SVN-Revision: 35130 /* * Jumbo payload option, as described in RFC 2675 2. -@@ -651,8 +651,8 @@ static inline void __ipv6_addr_set_half( +@@ -642,8 +642,8 @@ static inline void __ipv6_addr_set_half( } #endif #endif @@ -634,7 +634,7 @@ SVN-Revision: 35130 } static inline void ipv6_addr_set(struct in6_addr *addr, -@@ -711,6 +711,8 @@ static inline bool ipv6_prefix_equal(con +@@ -702,6 +702,8 @@ static inline bool ipv6_prefix_equal(con const __be32 *a1 = addr1->s6_addr32; const __be32 *a2 = addr2->s6_addr32; unsigned int pdw, pbi; @@ -643,7 +643,7 @@ SVN-Revision: 35130 /* check complete u32 in prefix */ pdw = prefixlen >> 5; -@@ -719,7 +721,9 @@ static inline bool ipv6_prefix_equal(con +@@ -710,7 +712,9 @@ static inline bool ipv6_prefix_equal(con /* check incomplete u32 in prefix */ pbi = prefixlen & 0x1f; @@ -654,7 +654,7 @@ SVN-Revision: 35130 return false; return true; -@@ -836,13 +840,13 @@ static inline void ipv6_addr_set_v4mappe +@@ -827,13 +831,13 @@ static inline void ipv6_addr_set_v4mappe */ static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) { @@ -670,7 +670,7 @@ SVN-Revision: 35130 if (xb) return i * 32 + 31 - __fls(ntohl(xb)); } -@@ -1037,17 +1041,18 @@ static inline u32 ip6_multipath_hash_fie +@@ -1028,17 +1032,18 @@ static inline u32 ip6_multipath_hash_fie static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) { @@ -750,7 +750,7 @@ SVN-Revision: 35130 EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4329,14 +4329,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4338,14 +4338,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); diff --git a/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch index 57f8f2f9709..8535111890d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0057-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), @@ -2011,10 +2011,10 @@ Signed-off-by: Phil Elwell sdhci_dumpregs(host); --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -295,6 +295,7 @@ struct mmc_card { - #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */ +@@ -296,6 +296,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.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch b/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch index 6b4058b7251..d275ee438a6 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0347-net-macb-Also-set-DMA-coherent-mask.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0347-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); -@@ -5165,6 +5284,21 @@ static int macb_probe(struct platform_de +@@ -5169,6 +5288,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) -@@ -5239,6 +5373,19 @@ static void macb_remove(struct platform_ +@@ -5243,6 +5377,19 @@ static void macb_remove(struct platform_ } } @@ -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); -@@ -5492,6 +5639,7 @@ static const struct dev_pm_ops macb_pm_o +@@ -5496,6 +5643,7 @@ static const struct dev_pm_ops macb_pm_o static struct platform_driver macb_driver = { .probe = macb_probe, .remove_new = macb_remove, 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 12b86534ce2..9322cedab0b 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 @@ -22,33 +22,40 @@ Signed-off-by: Dave Stevenson #define for_each_registered_fb(i) \ for (i = 0; i < FB_MAX; i++) \ if (!registered_fb[i]) {} else -@@ -398,10 +399,12 @@ static int do_register_framebuffer(struc +@@ -399,9 +400,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); +@@ -411,7 +415,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); -@@ -436,7 +439,7 @@ static int do_register_framebuffer(struc +@@ -442,7 +445,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 { -@@ -497,6 +500,12 @@ static void do_unregister_framebuffer(st +@@ -503,6 +506,12 @@ static void do_unregister_framebuffer(st put_fb_info(fb_info); } diff --git a/target/linux/bcm27xx/patches-6.12/950-0427-drivers-mmc-add-SD-support-for-Command-Queueing.patch b/target/linux/bcm27xx/patches-6.12/950-0427-drivers-mmc-add-SD-support-for-Command-Queueing.patch index 99aa00e319d..550264ef6f6 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0427-drivers-mmc-add-SD-support-for-Command-Queueing.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0427-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 -@@ -1011,8 +1011,8 @@ static bool mmc_sd_card_using_v18(struct +@@ -1027,8 +1027,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 = {}; -@@ -1170,8 +1170,14 @@ static int sd_parse_ext_reg_perf(struct +@@ -1186,8 +1186,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; -@@ -1558,13 +1564,41 @@ cont: +@@ -1574,13 +1580,41 @@ cont: goto free_card; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0428-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch b/target/linux/bcm27xx/patches-6.12/950-0428-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch index 554606f83f3..0cf6030c76d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0428-drivers-mmc-preallocate-a-block-for-SD-extension-reg.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0428-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 -@@ -1021,9 +1021,8 @@ int sd_write_ext_reg(struct mmc_card *ca +@@ -1037,9 +1037,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; -@@ -1055,8 +1054,6 @@ int sd_write_ext_reg(struct mmc_card *ca +@@ -1071,8 +1070,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 -@@ -1097,9 +1094,7 @@ static int sd_parse_ext_reg_power(struct +@@ -1113,9 +1110,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); -@@ -1129,7 +1124,6 @@ static int sd_parse_ext_reg_power(struct +@@ -1145,7 +1140,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; } -@@ -1139,9 +1133,7 @@ static int sd_parse_ext_reg_perf(struct +@@ -1155,9 +1149,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) { -@@ -1184,7 +1176,6 @@ static int sd_parse_ext_reg_perf(struct +@@ -1200,7 +1192,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; } -@@ -1255,6 +1246,12 @@ static int sd_read_ext_regs(struct mmc_c +@@ -1271,6 +1262,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. -@@ -1321,9 +1318,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1337,9 +1334,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 -@@ -1359,21 +1354,15 @@ static int sd_flush_cache(struct mmc_hos +@@ -1375,21 +1370,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. -@@ -1392,7 +1381,6 @@ static int sd_enable_cache(struct mmc_ca +@@ -1408,7 +1397,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 -@@ -320,6 +320,7 @@ struct mmc_card { +@@ -321,6 +321,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.12/950-0432-drivers-mmc-export-SD-extension-register-read-write-.patch b/target/linux/bcm27xx/patches-6.12/950-0432-drivers-mmc-export-SD-extension-register-read-write-.patch index 0f0a18e47f7..b513205512b 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0432-drivers-mmc-export-SD-extension-register-read-write-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0432-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 -@@ -1011,83 +1011,6 @@ static bool mmc_sd_card_using_v18(struct +@@ -1027,83 +1027,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) { -@@ -1097,7 +1020,7 @@ static int sd_parse_ext_reg_power(struct +@@ -1113,7 +1036,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); -@@ -1135,7 +1058,7 @@ static int sd_parse_ext_reg_perf(struct +@@ -1151,7 +1074,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); -@@ -1230,7 +1153,7 @@ static int sd_parse_ext_reg(struct mmc_c +@@ -1246,7 +1169,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; -@@ -1256,7 +1179,7 @@ static int sd_read_ext_regs(struct mmc_c +@@ -1272,7 +1195,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); -@@ -1328,7 +1251,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1344,7 +1267,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); -@@ -1344,7 +1267,7 @@ static int sd_flush_cache(struct mmc_hos +@@ -1360,7 +1283,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); -@@ -1367,7 +1290,7 @@ static int sd_enable_cache(struct mmc_ca +@@ -1383,7 +1306,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", -@@ -1540,7 +1463,7 @@ retry: +@@ -1556,7 +1479,7 @@ retry: cont: if (!oldcard) { /* Read/parse the extension registers. */ @@ -172,7 +172,7 @@ Signed-off-by: Jonathan Bell if (err) goto free_card; } -@@ -1667,7 +1590,7 @@ static int sd_busy_poweroff_notify_cb(vo +@@ -1683,7 +1606,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", -@@ -1693,7 +1616,7 @@ static int sd_poweroff_notify(struct mmc +@@ -1709,7 +1632,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.12/950-0433-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch b/target/linux/bcm27xx/patches-6.12/950-0433-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch index f9ae83fd9f6..29a1d329a00 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0433-drivers-mmc-be-more-cautious-when-manipulating-Comma.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0433-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 -@@ -1084,8 +1084,12 @@ static int sd_parse_ext_reg_perf(struct +@@ -1100,8 +1100,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.12/950-0434-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch b/target/linux/bcm27xx/patches-6.12/950-0434-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch index a4c5f419d4d..eafdd011401 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0434-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0434-drivers-mmc-add-debugfs-entries-for-SD-extension-reg.patch @@ -26,7 +26,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 -@@ -710,7 +710,8 @@ MMC_DEV_ATTR(oemid, "0x%04x\n", card->ci +@@ -726,7 +726,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); @@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell static ssize_t mmc_dsr_show(struct device *dev, struct device_attribute *attr, char *buf) -@@ -772,6 +773,8 @@ static struct attribute *sd_std_attrs[] +@@ -788,6 +789,8 @@ static struct attribute *sd_std_attrs[] &dev_attr_ocr.attr, &dev_attr_rca.attr, &dev_attr_dsr.attr, @@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell NULL, }; -@@ -1507,8 +1510,8 @@ cont: +@@ -1523,8 +1526,8 @@ cont: host->cqe_enabled = true; if (card->ext_csd.cmdq_en) { diff --git a/target/linux/bcm27xx/patches-6.12/950-0435-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch b/target/linux/bcm27xx/patches-6.12/950-0435-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch index 180dc5b08c8..0755d4e5901 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0435-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0435-drivers-mmc-handle-1024-byte-SD-General-Info-lengths.patch @@ -13,7 +13,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1172,7 +1172,7 @@ static int mmc_sd_read_ext_regs(struct m +@@ -1188,7 +1188,7 @@ static int mmc_sd_read_ext_regs(struct m if (!(card->scr.cmds & SD_SCR_CMD48_SUPPORT)) return 0; @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell if (!gen_info_buf) return -ENOMEM; -@@ -1203,14 +1203,23 @@ static int mmc_sd_read_ext_regs(struct m +@@ -1219,14 +1219,23 @@ static int mmc_sd_read_ext_regs(struct m num_ext = gen_info_buf[4]; /* diff --git a/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch b/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch index 881921cd07d..b67764f162d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch @@ -145,7 +145,7 @@ Signed-off-by: Jonathan Bell bool busy; --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c -@@ -1099,6 +1099,15 @@ static int sd_parse_ext_reg_perf(struct +@@ -1115,6 +1115,15 @@ 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); @@ -161,7 +161,7 @@ Signed-off-by: Jonathan Bell } card->ext_perf.fno = fno; -@@ -1362,6 +1371,7 @@ retry: +@@ -1378,6 +1387,7 @@ retry: card->ocr = ocr; card->type = MMC_TYPE_SD; @@ -171,7 +171,7 @@ Signed-off-by: Jonathan Bell --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h -@@ -343,6 +343,8 @@ struct mmc_card { +@@ -344,6 +344,8 @@ struct mmc_card { unsigned int nr_parts; struct workqueue_struct *complete_wq; /* Private workqueue */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0442-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch b/target/linux/bcm27xx/patches-6.12/950-0442-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch index 5dbd79f5c0b..bcfc4d7dc86 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0442-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0442-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.12/950-0443-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch b/target/linux/bcm27xx/patches-6.12/950-0443-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch index 2c214692038..d345868bf1b 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0443-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0443-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.12/950-0445-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch b/target/linux/bcm27xx/patches-6.12/950-0445-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch index a2688e8ff9e..2939ea0636e 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0445-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0445-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.12/950-0750-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch b/target/linux/bcm27xx/patches-6.12/950-0750-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch index 2c21e7ca4e0..d32cde65484 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0750-mmc-sd-filter-card-CQ-support-based-on-an-allow-list.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0750-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 -@@ -295,4 +295,9 @@ static inline int mmc_card_broken_sd_pow - return c->quirks & MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY; +@@ -301,4 +301,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 -@@ -1501,6 +1501,10 @@ cont: +@@ -1517,6 +1517,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 -@@ -295,6 +295,7 @@ struct mmc_card { - #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */ +@@ -296,6 +296,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.12/950-0751-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch b/target/linux/bcm27xx/patches-6.12/950-0751-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch index 54ad128ea15..3514ff82d8d 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0751-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0751-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 -@@ -93,6 +93,7 @@ struct mmc_fixup { +@@ -94,6 +94,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.12/950-0752-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch b/target/linux/bcm27xx/patches-6.12/950-0752-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch index d6ab6128404..0cf3c9934eb 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0752-mmc-use-downstream-DT-property-to-modify-CQE-and-or-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0752-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 -@@ -1501,8 +1501,8 @@ cont: +@@ -1517,8 +1517,8 @@ cont: goto free_card; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch b/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch index 677018625fe..8ecf113d8e8 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0777-drm-v3d-Remove-v3d-cpu_job.patch @@ -35,7 +35,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20250113154741.67520-2-mcana --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c -@@ -673,8 +673,6 @@ v3d_cpu_job_run(struct drm_sched_job *sc +@@ -677,8 +677,6 @@ v3d_cpu_job_run(struct drm_sched_job *sc struct v3d_cpu_job *job = to_cpu_job(sched_job); struct v3d_dev *v3d = job->base.v3d; diff --git a/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch b/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch index a6254fe927f..069cb5628e4 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0859-drm-v3d-Set-job-pointer-to-NULL-when-the-job-s-fence.patch @@ -33,7 +33,7 @@ Signed-off-by: Maíra Canal --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c -@@ -226,8 +226,12 @@ static struct dma_fence *v3d_bin_job_run +@@ -230,8 +230,12 @@ static struct dma_fence *v3d_bin_job_run struct dma_fence *fence; unsigned long irqflags; @@ -47,7 +47,7 @@ Signed-off-by: Maíra Canal /* Lock required around bin_job update vs * v3d_overflow_mem_work(). -@@ -281,8 +285,10 @@ static struct dma_fence *v3d_render_job_ +@@ -285,8 +289,10 @@ static struct dma_fence *v3d_render_job_ struct drm_device *dev = &v3d->drm; struct dma_fence *fence; @@ -59,7 +59,7 @@ Signed-off-by: Maíra Canal v3d->render_job = job; -@@ -327,8 +333,10 @@ v3d_tfu_job_run(struct drm_sched_job *sc +@@ -331,8 +337,10 @@ v3d_tfu_job_run(struct drm_sched_job *sc struct drm_device *dev = &v3d->drm; struct dma_fence *fence; @@ -71,7 +71,7 @@ Signed-off-by: Maíra Canal v3d->tfu_job = job; -@@ -373,8 +381,10 @@ v3d_csd_job_run(struct drm_sched_job *sc +@@ -377,8 +385,10 @@ v3d_csd_job_run(struct drm_sched_job *sc struct dma_fence *fence; int i, csd_cfg0_reg; diff --git a/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch b/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch index d4ddf5a6081..4ab4ac72ab6 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0860-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch @@ -444,7 +444,7 @@ Signed-off-by: Maíra Canal } --- a/drivers/gpu/drm/v3d/v3d_sched.c +++ b/drivers/gpu/drm/v3d/v3d_sched.c -@@ -357,11 +357,11 @@ v3d_tfu_job_run(struct drm_sched_job *sc +@@ -361,11 +361,11 @@ v3d_tfu_job_run(struct drm_sched_job *sc V3D_WRITE(V3D_TFU_ICA(v3d->ver), job->args.ica); V3D_WRITE(V3D_TFU_IUA(v3d->ver), job->args.iua); V3D_WRITE(V3D_TFU_IOA(v3d->ver), job->args.ioa); @@ -458,7 +458,7 @@ Signed-off-by: Maíra Canal V3D_WRITE(V3D_TFU_COEF1(v3d->ver), job->args.coef[1]); V3D_WRITE(V3D_TFU_COEF2(v3d->ver), job->args.coef[2]); V3D_WRITE(V3D_TFU_COEF3(v3d->ver), job->args.coef[3]); -@@ -412,7 +412,7 @@ v3d_csd_job_run(struct drm_sched_job *sc +@@ -416,7 +416,7 @@ v3d_csd_job_run(struct drm_sched_job *sc * * XXX: Set the CFG7 register */ diff --git a/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch b/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch index 2388aeb69e3..e0c0cc105f2 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0949-PCI-quirks-work-around-VL805-firmware-ASPM-meddling.patch @@ -18,7 +18,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -6232,6 +6232,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I +@@ -6255,6 +6255,22 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56b1, aspm_l1_acceptable_latency); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency); diff --git a/target/linux/bcm27xx/patches-6.12/950-0959-media-imx335-Support-vertical-flip.patch b/target/linux/bcm27xx/patches-6.12/950-0959-media-imx335-Support-vertical-flip.patch index 8d5815ecd5d..e1f0b61f72c 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0959-media-imx335-Support-vertical-flip.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0959-media-imx335-Support-vertical-flip.patch @@ -153,7 +153,7 @@ Reviewed-by: Kieran Bingham case V4L2_CID_TEST_PATTERN: ret = imx335_update_test_pattern(imx335, ctrl->val); -@@ -1175,7 +1235,7 @@ static int imx335_init_controls(struct i +@@ -1176,7 +1236,7 @@ static int imx335_init_controls(struct i return ret; /* v4l2_fwnode_device_properties can add two more controls */ @@ -162,7 +162,7 @@ Reviewed-by: Kieran Bingham if (ret) return ret; -@@ -1210,6 +1270,13 @@ static int imx335_init_controls(struct i +@@ -1211,6 +1271,13 @@ static int imx335_init_controls(struct i v4l2_ctrl_cluster(2, &imx335->exp_ctrl); diff --git a/target/linux/bcm27xx/patches-6.12/950-0961-media-imx335-Use-correct-register-width-for-HNUM.patch b/target/linux/bcm27xx/patches-6.12/950-0961-media-imx335-Use-correct-register-width-for-HNUM.patch deleted file mode 100644 index 6c432e524c7..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-0961-media-imx335-Use-correct-register-width-for-HNUM.patch +++ /dev/null @@ -1,24 +0,0 @@ -From a8e38e0532fd0b25fcaebf771ddd14f4e04283fa Mon Sep 17 00:00:00 2001 -From: Umang Jain -Date: Thu, 8 Aug 2024 22:11:04 +0530 -Subject: [PATCH] media: imx335: Use correct register width for HNUM - -CCI_REG_HNUM should be using CCI_REG16_LE() instead of CCI_REG8() -as HNUM spans from 0x302e[0:7] to 0x302f[0:3]. - -Signed-off-by: Umang Jain ---- - drivers/media/i2c/imx335.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/media/i2c/imx335.c -+++ b/drivers/media/i2c/imx335.c -@@ -31,7 +31,7 @@ - #define IMX335_REG_CPWAIT_TIME CCI_REG8(0x300d) - #define IMX335_REG_WINMODE CCI_REG8(0x3018) - #define IMX335_REG_HTRIMMING_START CCI_REG16_LE(0x302c) --#define IMX335_REG_HNUM CCI_REG8(0x302e) -+#define IMX335_REG_HNUM CCI_REG16_LE(0x302e) - - /* Lines per frame */ - #define IMX335_REG_VMAX CCI_REG24_LE(0x3030) diff --git a/target/linux/bcm27xx/patches-6.12/950-1003-drivers-media-i2c-imx335-Fix-frame-size-enumeration.patch b/target/linux/bcm27xx/patches-6.12/950-1003-drivers-media-i2c-imx335-Fix-frame-size-enumeration.patch deleted file mode 100644 index 89701b06c83..00000000000 --- a/target/linux/bcm27xx/patches-6.12/950-1003-drivers-media-i2c-imx335-Fix-frame-size-enumeration.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3dd2c2c507c271d411fab2e82a2b3b7e0b6d3f16 Mon Sep 17 00:00:00 2001 -From: Kieran Bingham -Date: Mon, 28 Apr 2025 17:07:20 +0100 -Subject: [PATCH] drivers: media: i2c: imx335: Fix frame size enumeration - -In commit cfa49ff0558a ("media: i2c: imx335: Support 2592x1940 10-bit -mode") the IMX335 driver was extended to support multiple output modes. - -This incorrectly extended the frame size enumeration to check against -the supported mbus_codes array instead of the supported mode/frame -array. This has the unwanted side effect of reporting the currently -supported frame size 2592x1944 three times. - -Fix the check accordingly to report a frame size for each supported -size, which is presently only a single entry. - -Fixes: cfa49ff0558a ("media: i2c: imx335: Support 2592x1940 10-bit mode") -Signed-off-by: Kieran Bingham ---- - drivers/media/i2c/imx335.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/media/i2c/imx335.c -+++ b/drivers/media/i2c/imx335.c -@@ -720,7 +720,8 @@ static int imx335_enum_frame_size(struct - struct imx335 *imx335 = to_imx335(sd); - u32 code; - -- if (fsize->index > ARRAY_SIZE(imx335_mbus_codes)) -+ /* Only a single supported_mode available. */ -+ if (fsize->index > 0) - return -EINVAL; - - code = imx335_get_format_code(imx335, fsize->code); diff --git a/target/linux/gemini/patches-6.12/0001-net-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch b/target/linux/gemini/patches-6.12/0001-net-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch deleted file mode 100644 index b7cf748ffe0..00000000000 --- a/target/linux/gemini/patches-6.12/0001-net-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 4d5c3828a8dd0062eeeb56b7d857a76130c3683c Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Tue, 8 Apr 2025 11:26:58 +0200 -Subject: [PATCH 1/2] net: ethernet: cortina: Use TOE/TSO on all TCP - -It is desireable to push the hardware accelerator to also -process non-segmented TCP frames: we pass the skb->len -to the "TOE/TSO" offloader and it will handle them. - -Without this quirk the driver becomes unstable and lock -up and and crash. - -I do not know exactly why, but it is probably due to the -TOE (TCP offload engine) feature that is coupled with the -segmentation feature - it is not possible to turn one -part off and not the other, either both TOE and TSO are -active, or neither of them. - -Not having the TOE part active seems detrimental, as if -that hardware feature is not really supposed to be turned -off. - -The datasheet says: - - "Based on packet parsing and TCP connection/NAT table - lookup results, the NetEngine puts the packets - belonging to the same TCP connection to the same queue - for the software to process. The NetEngine puts - incoming packets to the buffer or series of buffers - for a jumbo packet. With this hardware acceleration, - IP/TCP header parsing, checksum validation and - connection lookup are offloaded from the software - processing." - -After numerous tests with the hardware locking up after -something between minutes and hours depending on load -using iperf3 I have concluded this is necessary to stabilize -the hardware. - -Signed-off-by: Linus Walleij -Link: https://patch.msgid.link/20250408-gemini-ethernet-tso-always-v1-1-e669f932359c@linaro.org -Signed-off-by: Jakub Kicinski ---- - drivers/net/ethernet/cortina/gemini.c | 37 +++++++++++++++++++++------ - 1 file changed, 29 insertions(+), 8 deletions(-) - ---- a/drivers/net/ethernet/cortina/gemini.c -+++ b/drivers/net/ethernet/cortina/gemini.c -@@ -1143,6 +1143,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; -@@ -1150,6 +1151,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 -@@ -1162,8 +1170,26 @@ 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 hardware offloader -+ * for transferring the TCP frame: this hardware has partial -+ * TCP awareness (called TOE - TCP Offload Engine) and will -+ * according to the datasheet put packets belonging to the -+ * same TCP connection in the same queue for the TOE/TSO -+ * engine to process. The 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, "TOE/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 -+ /* Hardware offloaded checksumming isn't working on non-TCP frames - * bigger than 1514 bytes. A hypothesis about this is that the - * checksum buffer is only 1518 bytes, so when the frames get - * bigger they get truncated, or the last few bytes get -@@ -1180,21 +1206,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/generic/backport-6.12/300-v6.16-mips-Add-std-flag-specified.patch b/target/linux/generic/backport-6.12/300-v6.16-mips-Add-std-flag-specified.patch deleted file mode 100644 index a0d2273837d..00000000000 --- a/target/linux/generic/backport-6.12/300-v6.16-mips-Add-std-flag-specified.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0f4ae7c6ecb89bfda026d210dcf8216fb67d2333 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 29 Mar 2025 08:39:03 -0700 -Subject: mips: Add -std= flag specified in KBUILD_CFLAGS to vdso CFLAGS - -GCC 15 changed the default C standard dialect from gnu17 to gnu23, -which should not have impacted the kernel because it explicitly requests -the gnu11 standard in the main Makefile. However, mips/vdso code uses -its own CFLAGS without a '-std=' value, which break with this dialect -change because of the kernel's own definitions of bool, false, and true -conflicting with the C23 reserved keywords. - - include/linux/stddef.h:11:9: error: cannot use keyword 'false' as enumeration constant - 11 | false = 0, - | ^~~~~ - include/linux/stddef.h:11:9: note: 'false' is a keyword with '-std=c23' onwards - include/linux/types.h:35:33: error: 'bool' cannot be defined via 'typedef' - 35 | typedef _Bool bool; - | ^~~~ - include/linux/types.h:35:33: note: 'bool' is a keyword with '-std=c23' onwards - -Add -std as specified in KBUILD_CFLAGS to the decompressor and purgatory -CFLAGS to eliminate these errors and make the C standard version of these -areas match the rest of the kernel. - -Signed-off-by: Khem Raj -Cc: stable@vger.kernel.org -Signed-off-by: Thomas Bogendoerfer ---- - arch/mips/vdso/Makefile | 1 + - 1 file changed, 1 insertion(+) - -(limited to 'arch/mips/vdso') - ---- a/arch/mips/vdso/Makefile -+++ b/arch/mips/vdso/Makefile -@@ -27,6 +27,7 @@ endif - # offsets. - cflags-vdso := $(ccflags-vdso) \ - $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ -+ $(filter -std=%,$(KBUILD_CFLAGS)) \ - -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \ - -mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \ - -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ diff --git a/target/linux/generic/backport-6.12/410-01-v6.14-mtd-rawnand-qcom-cleanup-qcom_nandc-driver.patch b/target/linux/generic/backport-6.12/410-01-v6.14-mtd-rawnand-qcom-cleanup-qcom_nandc-driver.patch index 8c5457a5077..95b66071ade 100644 --- a/target/linux/generic/backport-6.12/410-01-v6.14-mtd-rawnand-qcom-cleanup-qcom_nandc-driver.patch +++ b/target/linux/generic/backport-6.12/410-01-v6.14-mtd-rawnand-qcom-cleanup-qcom_nandc-driver.patch @@ -902,7 +902,7 @@ Signed-off-by: Miquel Raynal + write_reg_dma(nandc, &nandc->regs->cmd1, NAND_DEV_CMD1, 1, NAND_BAM_NEXT_SGL); } - nandc->buf_count = len; + nandc->buf_count = 512; @@ -2926,9 +2877,10 @@ static int qcom_param_page_type_exec(str nandc->buf_count, 0); diff --git a/target/linux/generic/backport-6.12/410-02-v6.14-mtd-rawnand-qcom-Add-qcom-prefix-to-common-api.patch b/target/linux/generic/backport-6.12/410-02-v6.14-mtd-rawnand-qcom-Add-qcom-prefix-to-common-api.patch index 078a56cf169..f634e0442a8 100644 --- a/target/linux/generic/backport-6.12/410-02-v6.14-mtd-rawnand-qcom-Add-qcom-prefix-to-common-api.patch +++ b/target/linux/generic/backport-6.12/410-02-v6.14-mtd-rawnand-qcom-Add-qcom-prefix-to-common-api.patch @@ -844,7 +844,7 @@ Signed-off-by: Miquel Raynal + qcom_write_reg_dma(nandc, &nandc->regs->cmd1, NAND_DEV_CMD1, 1, NAND_BAM_NEXT_SGL); } - nandc->buf_count = len; + nandc->buf_count = 512; @@ -2873,17 +2873,17 @@ static int qcom_param_page_type_exec(str config_nand_single_cw_page_read(chip, false, 0); diff --git a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch index 697f2a64dbe..5db35ac9a5d 100644 --- a/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch +++ b/target/linux/generic/hack-6.12/610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/page_pool.c +++ b/net/core/page_pool.c -@@ -1120,7 +1120,7 @@ static void page_pool_release_retry(stru +@@ -1124,7 +1124,7 @@ static void page_pool_release_retry(stru struct delayed_work *dwq = to_delayed_work(wq); struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw); void *netdev; @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau inflight = page_pool_release(pool); /* In rare cases, a driver bug may cause inflight to go negative. -@@ -1132,6 +1132,17 @@ static void page_pool_release_retry(stru +@@ -1136,6 +1136,17 @@ static void page_pool_release_retry(stru if (inflight <= 0) return; diff --git a/target/linux/generic/hack-6.12/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-6.12/800-GPIO-add-named-gpio-exports.patch index 3bfc612c136..bf75cedafdf 100644 --- a/target/linux/generic/hack-6.12/800-GPIO-add-named-gpio-exports.patch +++ b/target/linux/generic/hack-6.12/800-GPIO-add-named-gpio-exports.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" #include "gpiolib-of.h" -@@ -1189,3 +1191,73 @@ void of_gpiochip_remove(struct gpio_chip +@@ -1198,3 +1200,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.12/902-debloat_proc.patch b/target/linux/generic/hack-6.12/902-debloat_proc.patch index a1356844608..2bc77873fd4 100644 --- a/target/linux/generic/hack-6.12/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.12/902-debloat_proc.patch @@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau } --- a/net/ipv4/route.c +++ b/net/ipv4/route.c -@@ -378,6 +378,9 @@ static struct pernet_operations ip_rt_pr +@@ -382,6 +382,9 @@ static struct pernet_operations ip_rt_pr static int __init ip_rt_proc_init(void) { diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index dbe7bc8574e..91260b8a1c8 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .34 -LINUX_KERNEL_HASH-6.12.34 = a7f3fe381f67eca4172e9b63efb61a14bd7f9e1278e03603d0ff5a93f270c24d +LINUX_VERSION-6.12 = .35 +LINUX_KERNEL_HASH-6.12.35 = 05f4e0b01dde578c3328eb539d305cccec7b84e939f6dd5f21fdaf5f313da748 diff --git a/target/linux/generic/pending-6.12/532-jffs2_eofdetect.patch b/target/linux/generic/pending-6.12/532-jffs2_eofdetect.patch index 744fbd0e217..88bb14a02a6 100644 --- a/target/linux/generic/pending-6.12/532-jffs2_eofdetect.patch +++ b/target/linux/generic/pending-6.12/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.12/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.12/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch index 2483dedfae7..2d7b6b51762 100644 --- a/target/linux/mvebu/patches-6.12/0003-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch +++ b/target/linux/mvebu/patches-6.12/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.12/0004-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.12/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.12/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.12/0005-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.12/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.12/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.12/0006-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.12/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.12/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.12/0007-v6.16-pinctrl-armada-37xx-propagate-error-from-armada_37xx.patch b/target/linux/mvebu/patches-6.12/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.12/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.12/810-uvc-add-iPassion-iP2970-support.patch b/target/linux/ramips/patches-6.12/810-uvc-add-iPassion-iP2970-support.patch index 75fd1368299..0ab9517d889 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 -@@ -3174,6 +3174,18 @@ static const struct usb_device_id uvc_id +@@ -3185,6 +3185,18 @@ static const struct usb_device_id uvc_id .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, diff --git a/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch b/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch index 9aa09b3c958..b40a7e9e588 100644 --- a/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch +++ b/target/linux/starfive/patches-6.12/1011-net-stmmac-use-GFP_DMA32.patch @@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce if (priv->dma_cap.host_dma_width <= 32) gfp |= GFP_DMA32; -@@ -4795,7 +4795,7 @@ static inline void stmmac_rx_refill(stru +@@ -4792,7 +4792,7 @@ static inline void stmmac_rx_refill(stru struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue]; int dirty = stmmac_rx_dirty(priv, queue); unsigned int entry = rx_q->dirty_rx;