[openwrt/openwrt] kernel: bump 6.12 to 6.12.35
LEDE Commits
lede-commits at lists.infradead.org
Sat Jun 28 13:48:25 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/9ddeb304998671376e52111afb42688506e48356
commit 9ddeb304998671376e52111afb42688506e48356
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Fri Jun 27 22:30:02 2025 +0800
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 <yangshiji66 at outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19249
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../patches-6.12/900-unaligned_access_hacks.patch | 12 +-
...950-0057-MMC-added-alternative-MMC-driver.patch | 6 +-
...-0347-net-macb-Also-set-DMA-coherent-mask.patch | 6 +-
...-client-to-request-a-particular-dev-fbN-n.patch | 21 ++--
...s-mmc-add-SD-support-for-Command-Queueing.patch | 6 +-
...-preallocate-a-block-for-SD-extension-reg.patch | 22 ++--
...-export-SD-extension-register-read-write-.patch | 22 ++--
...-be-more-cautious-when-manipulating-Comma.patch | 2 +-
...-add-debugfs-entries-for-SD-extension-reg.patch | 6 +-
...-handle-1024-byte-SD-General-Info-lengths.patch | 4 +-
...t-posted-write-counts-for-SD-cards-in-CQ-.patch | 6 +-
...-disable-write-caching-on-Samsung-2023-mo.patch | 8 +-
...disable-cache-on-more-known-bad-Sandisk-c.patch | 2 +-
...add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch | 2 +-
...er-card-CQ-support-based-on-an-allow-list.patch | 10 +-
..._QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch | 4 +-
...nstream-DT-property-to-modify-CQE-and-or-.patch | 2 +-
.../950-0777-drm-v3d-Remove-v3d-cpu_job.patch | 2 +-
...-job-pointer-to-NULL-when-the-job-s-fence.patch | 8 +-
...ociate-a-V3D-tech-revision-to-all-support.patch | 4 +-
...-work-around-VL805-firmware-ASPM-meddling.patch | 2 +-
...0-0959-media-imx335-Support-vertical-flip.patch | 4 +-
...mx335-Use-correct-register-width-for-HNUM.patch | 24 ----
...dia-i2c-imx335-Fix-frame-size-enumeration.patch | 34 ------
...t-ethernet-cortina-Use-TOE-TSO-on-all-TCP.patch | 122 ---------------------
.../300-v6.16-mips-Add-std-flag-specified.patch | 44 --------
...td-rawnand-qcom-cleanup-qcom_nandc-driver.patch | 2 +-
...awnand-qcom-Add-qcom-prefix-to-common-api.patch | 2 +-
...ol-try-to-free-deferred-skbs-while-waitin.patch | 4 +-
.../800-GPIO-add-named-gpio-exports.patch | 2 +-
.../linux/generic/hack-6.12/902-debloat_proc.patch | 2 +-
target/linux/generic/kernel-6.12 | 4 +-
.../generic/pending-6.12/532-jffs2_eofdetect.patch | 2 +-
...ada-37xx-propagate-error-from-armada_37xx.patch | 2 +-
...ada-37xx-propagate-error-from-armada_37xx.patch | 36 ------
...ada-37xx-propagate-error-from-armada_37xx.patch | 42 -------
...ada-37xx-propagate-error-from-armada_37xx.patch | 35 ------
...ada-37xx-propagate-error-from-armada_37xx.patch | 31 ------
.../810-uvc-add-iPassion-iP2970-support.patch | 2 +-
.../1011-net-stmmac-use-GFP_DMA32.patch | 2 +-
40 files changed, 96 insertions(+), 457 deletions(-)
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 224b8097e2..ea51478fd0 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 57f8f2f970..8535111890 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 <phil at raspberrypi.com>
}
--- 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 <phil at raspberrypi.com>
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 6b4058b725..d275ee438a 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
/* 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 <jonathan at raspberrypi.com>
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 12b86534ce..9322cedab0 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 <dave.stevenson at raspberrypi.com>
#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 99aa00e319..550264ef6f 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
{
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 <jonathan at raspberrypi.com>
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 554606f83f..0cf6030c76 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
/*
* 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 <jonathan at raspberrypi.com>
/* 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
/*
* 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 <jonathan at raspberrypi.com>
/*
* 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 <jonathan at raspberrypi.com>
/*
* 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 <jonathan at raspberrypi.com>
--- 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 0f0a18e47f..b513205512 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 <jonathan at raspberrypi.com>
--- 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
{
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 f9ae83fd9f..29a1d329a0 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 <jonathan at raspberrypi.com>
--- 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 a4c5f419d4..eafdd01140 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
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 180dc5b08c..0755d4e590 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 <jonathan at raspberrypi.com>
--- 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 <jonathan at raspberrypi.com>
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 881921cd07..b67764f162 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 <jonathan at raspberrypi.com>
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 <jonathan at raspberrypi.com>
}
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 <jonathan at raspberrypi.com>
--- 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 5dbd79f5c0..bcfc4d7dc8 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 <jonathan at raspberrypi.com>
#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 2c21469203..d345868bf1 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 <jonathan at raspberrypi.com>
--- 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 a2688e8ff9..2939ea0636 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 <jonathan at raspberrypi.com>
--- 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 2c21e7ca4e..d32cde6548 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 <jonathan at raspberrypi.com>
--- 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 <jonathan at raspberrypi.com>
#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 <jonathan at raspberrypi.com>
/*
--- 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 54ad128ea1..3514ff82d8 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 <jonathan at raspberrypi.com>
--- 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 <jonathan at raspberrypi.com>
#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 d6ab612840..0cf3c9934e 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 <jonathan at raspberrypi.com>
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 677018625f..8ecf113d8e 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 a6254fe927..069cb5628e 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 <mcanal at igalia.com>
--- 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 <mcanal at igalia.com>
/* 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 <mcanal at igalia.com>
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 <mcanal at igalia.com>
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 d4ddf5a608..4ab4ac72ab 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 <mcanal at igalia.com>
}
--- 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 <mcanal at igalia.com>
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 2388aeb69e..e0c0cc105f 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 <jonathan at raspberrypi.com>
--- 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 8d5815ecd5..e1f0b61f72 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 <kieran.bingham at ideasonboard.com>
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 <kieran.bingham at ideasonboard.com>
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 6c432e524c..0000000000
--- 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 <umang.jain at ideasonboard.com>
-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 <umang.jain at ideasonboard.com>
----
- 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 89701b06c8..0000000000
--- 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 <kieran.bingham at ideasonboard.com>
-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 <kieran.bingham at ideasonboard.com>
----
- 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 b7cf748ffe..0000000000
--- 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 <linus.walleij at linaro.org>
-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 <linus.walleij at linaro.org>
-Link: https://patch.msgid.link/20250408-gemini-ethernet-tso-always-v1-1-e669f932359c@linaro.org
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- 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 a0d2273837..0000000000
--- 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 <raj.khem at gmail.com>
-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 <raj.khem at gmail.com>
-Cc: stable at vger.kernel.org
-Signed-off-by: Thomas Bogendoerfer <tsbogend at alpha.franken.de>
----
- 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 8c5457a507..95b66071ad 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 <miquel.raynal at bootlin.com>
+ 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 078a56cf16..f634e0442a 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 <miquel.raynal at bootlin.com>
+ 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 697f2a64db..5db35ac9a5 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 <nbd at nbd.name>
--- 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 <nbd at nbd.name>
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 3bfc612c13..bf75cedafd 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 <blogic at openwrt.org>
#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 a135684460..2bc77873fd 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 <nbd at nbd.name>
}
--- 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 dbe7bc8574..91260b8a1c 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 744fbd0e21..88bb14a02a 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 <nbd at nbd.name>
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 2483dedfae..2d7b6b5176 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 <linus.walleij at linaro.org>
--- 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 4fe9f1b7b8..0000000000
--- 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 <j4g8y7 at gmail.com>
-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 <kaloz at openwrt.org>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Gabor Juhos <j4g8y7 at gmail.com>
-Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-4-07e9ac1ab737@gmail.com
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- 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 2395a0665f..0000000000
--- 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 <j4g8y7 at gmail.com>
-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 <kaloz at openwrt.org>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Gabor Juhos <j4g8y7 at gmail.com>
-Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-5-07e9ac1ab737@gmail.com
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- 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 9aac2e58e1..0000000000
--- 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 <j4g8y7 at gmail.com>
-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 <kaloz at openwrt.org>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Gabor Juhos <j4g8y7 at gmail.com>
-Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-6-07e9ac1ab737@gmail.com
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- 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 6c14e50b4a..0000000000
--- 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 <j4g8y7 at gmail.com>
-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 <kaloz at openwrt.org>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Gabor Juhos <j4g8y7 at gmail.com>
-Link: https://lore.kernel.org/20250514-pinctrl-a37xx-fixes-v2-7-07e9ac1ab737@gmail.com
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- 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 75fd136829..0ab9517d88 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 <blogic at openwrt.org>
--- 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 9aa09b3c95..b40a7e9e58 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 <mcroce at microsoft.com>
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;
More information about the lede-commits
mailing list