[openwrt/openwrt] kernel: bump 6.12 to 6.12.31
LEDE Commits
lede-commits at lists.infradead.org
Sat May 31 08:38:51 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/30cdc48360db37251fddbed71c7a175239f63b55
commit 30cdc48360db37251fddbed71c7a175239f63b55
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Thu May 29 18:25:21 2025 +0800
kernel: bump 6.12 to 6.12.31
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.31
Remove upstreamed patches:
backport-6.12/780-27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch [1]
backport-6.12/780-33-v6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch [2]
bcm27xx/patches-6.12/950-0315-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch [3]
bcm27xx/patches-6.12/950-0857-drm-v3d-Add-clock-handling.patch [4]
bcm27xx/patches-6.12/950-0874-PCI-brcmstb-Expand-inbound-window-size-up-to-64GB.patch [5]
bcm27xx/patches-6.12/950-0877-PCI-brcmstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch [6]
bcm27xx/patches-6.12/950-0960-media-imx335-Set-vblank-immediately.patch [7]
Manually rebased patches:
d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch
[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=ba59747562c49974cbace989d76b94a8331da442
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=2780aa8394415df0a69e3b908d6dd8c79e1d1bcc
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=9a981079097bee6a0583877798de0b240717bdde
[4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=bbd6dc1fb6c56267ad1d58810d92287fcd5b0058
[5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=3ffaa2e999380477774e76680ff4cef247451168
[6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=12153e3948c596737853c3ec4ff7e4e3f4a9f9a6
[7] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.31&id=8d7e13c31c52690655883dff604238b0760a3644
Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18953
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../patches-6.12/900-unaligned_access_hacks.patch | 2 +-
...helpers-remove-legacy_cursor_update-hacks.patch | 4 +-
...950-0057-MMC-added-alternative-MMC-driver.patch | 4 +-
...-adv7180-Default-to-the-first-valid-input.patch | 4 +-
...ia-adv7180-Add-YPrPb-support-for-ADV7282M.patch | 2 +-
...30-drm-v3d-Clock-V3D-down-when-not-in-use.patch | 4 +-
...1-drm-v3d-Switch-clock-setting-to-new-api.patch | 4 +-
...iq_arm-Register-vcsm-cma-as-a-platform-dr.patch | 4 +-
...iq_arm-Register-bcm2835-codec-as-a-platfo.patch | 4 +-
...iq_arm-Set-up-dma-ranges-on-child-devices.patch | 2 +-
...-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch | 4 +-
...v7180-Nasty-hack-to-allow-input-selection.patch | 8 +-
...mx219-Correct-the-minimum-vblanking-value.patch | 25 ------
...0-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 6 +-
.../950-0344-sdhci-Add-SD-Express-hook.patch | 6 +-
...ers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch | 2 +-
...Use-more-event-ring-segment-table-entries.patch | 2 +-
...dv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch | 4 +-
...dv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch | 16 ++--
...xtend-maximum-ADMA-transfer-length-to-4Mi.patch | 2 +-
...-xhci-set-HID-bit-in-streaming-endpoint-c.patch | 2 +-
...ate-a-drm_gem_object_init_with_mnt-functi.patch | 2 +-
.../950-0857-drm-v3d-Add-clock-handling.patch | 99 ----------------------
...stb-Expand-inbound-window-size-up-to-64GB.patch | 38 ---------
...mstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch | 31 -------
...0-0959-media-imx335-Support-vertical-flip.patch | 6 +-
...-0960-media-imx335-Set-vblank-immediately.patch | 52 ------------
...dia-i2c-imx335-Fix-frame-size-enumeration.patch | 2 +-
...sun4i-codec-add-basic-support-for-D1-audi.patch | 47 +++++-----
...support-for-defining-read-only-partitions.patch | 2 +-
...14-net-phy-Constify-struct-mdio_device_id.patch | 2 +-
...e-original-workaround-for-RTL8125-broken-.patch | 2 +-
...e-SG-TSO-on-selected-chip-versions-per-de.patch | 4 +-
...69-implement-additional-ethtool-stats-ops.patch | 2 +-
...13-r8169-don-t-take-RTNL-lock-in-rtl_task.patch | 6 +-
...place-custom-flag-with-disable_work-et-al.patch | 12 +--
...0-09-v6.13-r8169-add-support-for-RTL8125D.patch | 8 +-
...ve-initialization-of-RSS-registers-on-RTL.patch | 2 +-
...move-leftover-locks-after-reverted-change.patch | 2 +-
...vendor-driver-2.5G-5G-EEE-advertisement-c.patch | 2 +-
...e-unused-flag-RTL_FLAG_TASK_RESET_NO_QUEU.patch | 2 +-
...-r8169-remove-support-for-chip-version-11.patch | 8 +-
...8169-adjust-version-numbering-for-RTL8126.patch | 26 +++---
...6.14-r8169-add-support-for-RTL8125D-rev.b.patch | 4 +-
....14-r8169-add-support-for-RTL8125BP-rev.b.patch | 4 +-
...27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch | 26 ------
...HY-c45-ops-for-MDIO_MMD_VENDOR2-registers.patch | 4 +-
...ase-max-jumbo-packet-size-on-RTL8125-RTL8.patch | 2 +-
...tch-away-from-deprecated-pcim_iomap_table.patch | 2 +-
...e-RTL8168H-RTL8168EP-RTL8168FP-ASPM-suppo.patch | 2 +-
...6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch | 60 -------------
...ol-try-to-free-deferred-skbs-while-waitin.patch | 4 +-
.../linux/generic/hack-6.12/902-debloat_proc.patch | 6 +-
target/linux/generic/kernel-6.12 | 4 +-
.../666-Add-support-for-MAP-E-FMRs-mesh-mode.patch | 10 +--
...jecting-with-source-address-failed-policy.patch | 2 +-
...-core-support-mac-base-fixed-layout-cells.patch | 4 +-
...m-core-generalize-mac-base-cells-handling.patch | 4 +-
...s-spi-Add-support-for-dynamic-calibration.patch | 6 +-
59 files changed, 141 insertions(+), 471 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 89be8a02c4..224b8097e2 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
@@ -750,7 +750,7 @@ SVN-Revision: 35130
EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -4321,14 +4321,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4329,14 +4329,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch b/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
index e3bfcbb3e2..fb66aaceba 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0016-drm-atomic-helpers-remove-legacy_cursor_update-hacks.patch
@@ -59,7 +59,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
-@@ -1656,13 +1656,6 @@ drm_atomic_helper_wait_for_vblanks(struc
+@@ -1684,13 +1684,6 @@ drm_atomic_helper_wait_for_vblanks(struc
int i, ret;
unsigned int crtc_mask = 0;
@@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
for_each_oldnew_crtc_in_state(old_state, crtc, old_crtc_state, new_crtc_state, i) {
if (!new_crtc_state->active)
continue;
-@@ -2311,12 +2304,6 @@ int drm_atomic_helper_setup_commit(struc
+@@ -2339,12 +2332,6 @@ int drm_atomic_helper_setup_commit(struc
complete_all(&commit->flip_done);
continue;
}
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 102c9277a2..57f8f2f970 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
@@ -1991,7 +1991,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
#define MAX_TUNING_LOOP 40
-@@ -3194,7 +3194,7 @@ static void sdhci_timeout_timer(struct t
+@@ -3199,7 +3199,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
@@ -2000,7 +2000,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
mmc_hostname(host->mmc));
sdhci_err_stats_inc(host, REQ_TIMEOUT);
sdhci_dumpregs(host);
-@@ -3217,7 +3217,7 @@ static void sdhci_timeout_data_timer(str
+@@ -3222,7 +3222,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
diff --git a/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch b/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
index c294e5286a..52a113906f 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0103-media-adv7180-Default-to-the-first-valid-input.patch
@@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
-@@ -1352,6 +1352,7 @@ static const struct adv7180_chip_info ad
+@@ -1362,6 +1362,7 @@ static const struct adv7180_chip_info ad
static int init_device(struct adv7180_state *state)
{
int ret;
@@ -24,7 +24,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
mutex_lock(&state->mutex);
-@@ -1399,6 +1400,18 @@ static int init_device(struct adv7180_st
+@@ -1409,6 +1410,18 @@ static int init_device(struct adv7180_st
goto out_unlock;
}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch b/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
index 1552f6358c..8669c93edb 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0104-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
-@@ -1341,6 +1341,7 @@ static const struct adv7180_chip_info ad
+@@ -1351,6 +1351,7 @@ static const struct adv7180_chip_info ad
BIT(ADV7182_INPUT_SVIDEO_AIN1_AIN2) |
BIT(ADV7182_INPUT_SVIDEO_AIN3_AIN4) |
BIT(ADV7182_INPUT_SVIDEO_AIN7_AIN8) |
diff --git a/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch
index 6cc36e1c29..71284d9f7e 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0130-drm-v3d-Clock-V3D-down-when-not-in-use.patch
@@ -37,7 +37,7 @@ Signed-off-by: popcornmix <popcornmix at gmail.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
-@@ -321,6 +321,21 @@ static int v3d_platform_drm_probe(struct
+@@ -331,6 +331,21 @@ static int v3d_platform_drm_probe(struct
}
}
@@ -59,7 +59,7 @@ Signed-off-by: popcornmix <popcornmix at gmail.com>
if (v3d->ver < 41) {
ret = map_regs(v3d, &v3d->gca_regs, "gca");
if (ret)
-@@ -349,6 +364,8 @@ static int v3d_platform_drm_probe(struct
+@@ -360,6 +375,8 @@ static int v3d_platform_drm_probe(struct
ret = v3d_sysfs_init(dev);
if (ret)
goto drm_unregister;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0131-drm-v3d-Switch-clock-setting-to-new-api.patch b/target/linux/bcm27xx/patches-6.12/950-0131-drm-v3d-Switch-clock-setting-to-new-api.patch
index a1675a1cd2..6bdc6483e7 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0131-drm-v3d-Switch-clock-setting-to-new-api.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0131-drm-v3d-Switch-clock-setting-to-new-api.patch
@@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
struct drm_device *drm;
struct v3d_dev *v3d;
int ret;
-@@ -327,7 +333,20 @@ static int v3d_platform_drm_probe(struct
+@@ -337,7 +343,20 @@ static int v3d_platform_drm_probe(struct
dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk));
return PTR_ERR(v3d->clk);
}
@@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime at cerno.tech>
/* For downclocking, drop it to the minimum frequency we can get from
* the CPRMAN clock generator dividing off our parent. The divider is
* 4 bits, but ask for just higher than that so that rounding doesn't
-@@ -364,7 +383,7 @@ static int v3d_platform_drm_probe(struct
+@@ -375,7 +394,7 @@ static int v3d_platform_drm_probe(struct
ret = v3d_sysfs_init(dev);
if (ret)
goto drm_unregister;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0154-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/target/linux/bcm27xx/patches-6.12/950-0154-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
index b580ee5377..e9f351d518 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0154-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0154-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
@@ -21,7 +21,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
static const struct vchiq_platform_info bcm2835_info = {
.cache_line_size = 32,
-@@ -1760,6 +1761,7 @@ static int vchiq_probe(struct platform_d
+@@ -1759,6 +1760,7 @@ static int vchiq_probe(struct platform_d
vchiq_debugfs_init(&mgmt->state);
@@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
-@@ -1778,6 +1780,7 @@ static void vchiq_remove(struct platform
+@@ -1777,6 +1779,7 @@ static void vchiq_remove(struct platform
vchiq_device_unregister(bcm2835_audio);
vchiq_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0155-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/target/linux/bcm27xx/patches-6.12/950-0155-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
index 874bf15d34..acc70e2977 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0155-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0155-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
static struct vchiq_device *vcsm_cma;
static const struct vchiq_platform_info bcm2835_info = {
-@@ -1762,6 +1763,7 @@ static int vchiq_probe(struct platform_d
+@@ -1761,6 +1762,7 @@ static int vchiq_probe(struct platform_d
vchiq_debugfs_init(&mgmt->state);
vcsm_cma = vchiq_device_register(&pdev->dev, "vcsm-cma");
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
-@@ -1780,6 +1782,7 @@ static void vchiq_remove(struct platform
+@@ -1779,6 +1781,7 @@ static void vchiq_remove(struct platform
vchiq_device_unregister(bcm2835_audio);
vchiq_device_unregister(bcm2835_camera);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0161-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/target/linux/bcm27xx/patches-6.12/950-0161-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
index 0c7fd01ec8..b2b470eaeb 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0161-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0161-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch
@@ -234,7 +234,7 @@ Signed-off-by: Phil Elwell <phil at raspberrypi.com>
dev_dbg(&pdev->dev, "arm: vchiq_init - done (slots %pK, phys %pad)\n",
vchiq_slot_zero, &slot_phys);
-@@ -1711,6 +1777,7 @@ void vchiq_platform_conn_state_changed(s
+@@ -1710,6 +1776,7 @@ void vchiq_platform_conn_state_changed(s
static const struct of_device_id vchiq_of_match[] = {
{ .compatible = "brcm,bcm2835-vchiq", .data = &bcm2835_info },
{ .compatible = "brcm,bcm2836-vchiq", .data = &bcm2836_info },
diff --git a/target/linux/bcm27xx/patches-6.12/950-0163-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch b/target/linux/bcm27xx/patches-6.12/950-0163-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
index 1ba21abf1d..c9394bc85b 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0163-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0163-staging-vchiq-Load-bcm2835_isp-driver-from-vchiq.patch
@@ -21,7 +21,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
static struct vchiq_device *vcsm_cma;
static const struct vchiq_platform_info bcm2835_info = {
-@@ -1858,6 +1859,7 @@ static int vchiq_probe(struct platform_d
+@@ -1857,6 +1858,7 @@ static int vchiq_probe(struct platform_d
bcm2835_codec = vchiq_device_register(&pdev->dev, "bcm2835-codec");
bcm2835_audio = vchiq_device_register(&pdev->dev, "bcm2835-audio");
bcm2835_camera = vchiq_device_register(&pdev->dev, "bcm2835-camera");
@@ -29,7 +29,7 @@ Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
return 0;
-@@ -1872,6 +1874,7 @@ static void vchiq_remove(struct platform
+@@ -1871,6 +1873,7 @@ static void vchiq_remove(struct platform
struct vchiq_drv_mgmt *mgmt = dev_get_drvdata(&pdev->dev);
struct vchiq_arm_state *arm_state;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch b/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
index 30170d377f..c36033642b 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0295-media-adv7180-Nasty-hack-to-allow-input-selection.patch
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
struct adv7180_state;
#define ADV7180_FLAG_RESET_POWERED BIT(0)
-@@ -407,10 +411,24 @@ out:
+@@ -408,10 +412,24 @@ out:
return ret;
}
@@ -56,7 +56,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
if (ret)
return ret;
-@@ -436,7 +454,11 @@ static int adv7180_program_std(struct ad
+@@ -437,7 +455,11 @@ static int adv7180_program_std(struct ad
static int adv7180_s_std(struct v4l2_subdev *sd, v4l2_std_id std)
{
struct adv7180_state *state = to_state(sd);
@@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
if (ret)
return ret;
-@@ -458,6 +480,8 @@ static int adv7180_g_std(struct v4l2_sub
+@@ -459,6 +481,8 @@ static int adv7180_g_std(struct v4l2_sub
{
struct adv7180_state *state = to_state(sd);
@@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.org>
*norm = state->curr_norm;
return 0;
-@@ -895,6 +919,8 @@ static int adv7180_s_stream(struct v4l2_
+@@ -900,6 +924,8 @@ static int adv7180_s_stream(struct v4l2_
return 0;
}
diff --git a/target/linux/bcm27xx/patches-6.12/950-0315-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch b/target/linux/bcm27xx/patches-6.12/950-0315-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch
deleted file mode 100644
index f82c2434e3..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0315-media-i2c-imx219-Correct-the-minimum-vblanking-value.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d2a776c4d38ccf0435083a90f51ed8886dd7aac9 Mon Sep 17 00:00:00 2001
-From: David Plowman <david.plowman at raspberrypi.com>
-Date: Tue, 25 Jan 2022 15:48:53 +0000
-Subject: [PATCH] media: i2c: imx219: Correct the minimum vblanking value
-
-The datasheet for this sensor documents the minimum vblanking as being
-32 lines. It does fix some problems with occasional black lines at the
-bottom of images (tested on Raspberry Pi).
-
-Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
----
- drivers/media/i2c/imx219.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/media/i2c/imx219.c
-+++ b/drivers/media/i2c/imx219.c
-@@ -74,7 +74,7 @@
- #define IMX219_REG_VTS CCI_REG16(0x0160)
- #define IMX219_VTS_MAX 0xffff
-
--#define IMX219_VBLANK_MIN 4
-+#define IMX219_VBLANK_MIN 32
-
- /* HBLANK control - read only */
- #define IMX219_PPL_DEFAULT 3448
diff --git a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
index 6cd7943969..47b58116b5 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0335-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -3647,6 +3647,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3657,6 +3657,48 @@ static int xhci_align_td(struct xhci_hcd
return 1;
}
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
/* This is very similar to what ehci-q.c qtd_fill() does */
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
struct urb *urb, int slot_id, unsigned int ep_index)
-@@ -3801,6 +3843,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3811,6 +3853,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
}
check_trb_math(urb, enqd_len);
@@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
start_cycle, start_trb);
return 0;
-@@ -3949,6 +3993,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3959,6 +4003,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
/* Event on completion */
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
index 543a2239cf..7b843a0c09 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch
@@ -27,7 +27,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
.postinit = dwcmshc_rk35xx_postinit,
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
-@@ -3032,6 +3032,15 @@ static void sdhci_card_event(struct mmc_
+@@ -3037,6 +3037,15 @@ static void sdhci_card_event(struct mmc_
spin_unlock_irqrestore(&host->lock, flags);
}
@@ -43,7 +43,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
static const struct mmc_host_ops sdhci_ops = {
.request = sdhci_request,
.post_req = sdhci_post_req,
-@@ -3047,6 +3056,7 @@ static const struct mmc_host_ops sdhci_o
+@@ -3052,6 +3061,7 @@ static const struct mmc_host_ops sdhci_o
.execute_tuning = sdhci_execute_tuning,
.card_event = sdhci_card_event,
.card_busy = sdhci_card_busy,
@@ -51,7 +51,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
};
/*****************************************************************************\
-@@ -4565,6 +4575,15 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4570,6 +4580,15 @@ int sdhci_setup_host(struct sdhci_host *
!(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50))
mmc->caps |= MMC_CAP_UHS_DDR50;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0396-drivers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch b/target/linux/bcm27xx/patches-6.12/950-0396-drivers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch
index 93a9205f4a..e79dbb75d6 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0396-drivers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0396-drivers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch
@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND);
return true;
-@@ -3291,6 +3297,11 @@ static void sdhci_cmd_irq(struct sdhci_h
+@@ -3296,6 +3302,11 @@ static void sdhci_cmd_irq(struct sdhci_h
if (intmask & SDHCI_INT_TIMEOUT) {
host->cmd->error = -ETIMEDOUT;
sdhci_err_stats_inc(host, CMD_TIMEOUT);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0401-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/bcm27xx/patches-6.12/950-0401-xhci-Use-more-event-ring-segment-table-entries.patch
index 29357c0757..6baba3b443 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0401-xhci-Use-more-event-ring-segment-table-entries.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0401-xhci-Use-more-event-ring-segment-table-entries.patch
@@ -21,7 +21,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1392,7 +1392,7 @@ struct urb_priv {
+@@ -1395,7 +1395,7 @@ struct urb_priv {
};
/* Number of Event Ring segments to allocate, when amount is not specified. (spec allows 32k) */
diff --git a/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch b/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
index 9b86b31a5d..5790d79ade 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0409-media-i2c-adv7180-Use-MEDIA_BUS_FMT_UYVY8_1X16-for-C.patch
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
--- a/drivers/media/i2c/adv7180.c
+++ b/drivers/media/i2c/adv7180.c
-@@ -732,10 +732,15 @@ static int adv7180_enum_mbus_code(struct
+@@ -737,10 +737,15 @@ static int adv7180_enum_mbus_code(struct
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{
@@ -34,7 +34,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
return 0;
}
-@@ -745,7 +750,10 @@ static int adv7180_mbus_fmt(struct v4l2_
+@@ -750,7 +755,10 @@ static int adv7180_mbus_fmt(struct v4l2_
{
struct adv7180_state *state = to_state(sd);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch b/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
index c0df6346e8..4bc7a684eb 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0410-media-i2c-adv7180-Add-support-for-V4L2_CID_LINK_FREQ.patch
@@ -32,7 +32,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
static int dbg_input;
module_param(dbg_input, int, 0644);
MODULE_PARM_DESC(dbg_input, "Input number (0-31)");
-@@ -228,6 +238,7 @@ struct adv7180_state {
+@@ -229,6 +239,7 @@ struct adv7180_state {
const struct adv7180_chip_info *chip_info;
enum v4l2_field field;
bool force_bt656_4;
@@ -40,7 +40,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
};
#define to_adv7180_sd(_ctrl) (&container_of(_ctrl->handler, \
struct adv7180_state, \
-@@ -629,6 +640,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
+@@ -630,6 +641,9 @@ static int adv7180_s_ctrl(struct v4l2_ct
if (ret)
return ret;
@@ -50,7 +50,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
val = ctrl->val;
switch (ctrl->id) {
case V4L2_CID_BRIGHTNESS:
-@@ -670,6 +684,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
+@@ -671,6 +685,7 @@ static int adv7180_s_ctrl(struct v4l2_ct
ret = -EINVAL;
}
@@ -58,7 +58,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
mutex_unlock(&state->mutex);
return ret;
}
-@@ -690,7 +705,7 @@ static const struct v4l2_ctrl_config adv
+@@ -691,7 +706,7 @@ static const struct v4l2_ctrl_config adv
static int adv7180_init_controls(struct adv7180_state *state)
{
@@ -67,9 +67,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
v4l2_ctrl_new_std(&state->ctrl_hdl, &adv7180_ctrl_ops,
V4L2_CID_BRIGHTNESS, ADV7180_BRI_MIN,
-@@ -712,6 +727,17 @@ static int adv7180_init_controls(struct
- 0, ARRAY_SIZE(test_pattern_menu) - 1,
- test_pattern_menu);
+@@ -717,6 +732,17 @@ static int adv7180_init_controls(struct
+ test_pattern_menu);
+ }
+ if (state->chip_info->flags & ADV7180_FLAG_MIPI_CSI2) {
+ state->link_freq =
@@ -85,7 +85,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson at raspberrypi.com>
state->sd.ctrl_handler = &state->ctrl_hdl;
if (state->ctrl_hdl.error) {
int err = state->ctrl_hdl.error;
-@@ -844,6 +870,10 @@ static int adv7180_set_pad_format(struct
+@@ -849,6 +875,10 @@ static int adv7180_set_pad_format(struct
adv7180_set_power(state, false);
adv7180_set_field_mode(state);
adv7180_set_power(state, true);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch b/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
index dc580e53ee..6a1c5a1be1 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0437-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
@@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
BUG_ON(data->blksz > host->mmc->max_blk_size);
BUG_ON(data->blocks > 65535);
-@@ -4709,11 +4709,16 @@ int sdhci_setup_host(struct sdhci_host *
+@@ -4714,11 +4714,16 @@ int sdhci_setup_host(struct sdhci_host *
spin_lock_init(&host->lock);
/*
diff --git a/target/linux/bcm27xx/patches-6.12/950-0534-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch b/target/linux/bcm27xx/patches-6.12/950-0534-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch
index 70c09d06d2..9a052443c0 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0534-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0534-drivers-usb-xhci-set-HID-bit-in-streaming-endpoint-c.patch
@@ -45,7 +45,7 @@ Signed-off-by: Jonathan Bell <jonathan at raspberrypi.com>
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -465,6 +465,8 @@ struct xhci_ep_ctx {
+@@ -468,6 +468,8 @@ struct xhci_ep_ctx {
#define CTX_TO_EP_MAXPSTREAMS(p) (((p) & EP_MAXPSTREAMS_MASK) >> 10)
/* Endpoint is set up with a Linear Stream Array (vs. Secondary Stream Array) */
#define EP_HAS_LSA (1 << 15)
diff --git a/target/linux/bcm27xx/patches-6.12/950-0765-drm-gem-Create-a-drm_gem_object_init_with_mnt-functi.patch b/target/linux/bcm27xx/patches-6.12/950-0765-drm-gem-Create-a-drm_gem_object_init_with_mnt-functi.patch
index d2355fbe78..5cbc75da2f 100644
--- a/target/linux/bcm27xx/patches-6.12/950-0765-drm-gem-Create-a-drm_gem_object_init_with_mnt-functi.patch
+++ b/target/linux/bcm27xx/patches-6.12/950-0765-drm-gem-Create-a-drm_gem_object_init_with_mnt-functi.patch
@@ -88,7 +88,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-5-mca
/**
--- a/include/drm/drm_gem.h
+++ b/include/drm/drm_gem.h
-@@ -473,6 +473,9 @@ void drm_gem_object_release(struct drm_g
+@@ -474,6 +474,9 @@ void drm_gem_object_release(struct drm_g
void drm_gem_object_free(struct kref *kref);
int drm_gem_object_init(struct drm_device *dev,
struct drm_gem_object *obj, size_t size);
diff --git a/target/linux/bcm27xx/patches-6.12/950-0857-drm-v3d-Add-clock-handling.patch b/target/linux/bcm27xx/patches-6.12/950-0857-drm-v3d-Add-clock-handling.patch
deleted file mode 100644
index 73f9c362e6..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0857-drm-v3d-Add-clock-handling.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From d3976b4e3830d608c155713dd2f7c36839897ec5 Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <wahrenst at gmx.net>
-Date: Sat, 1 Feb 2025 13:50:46 +0100
-Subject: [PATCH] drm/v3d: Add clock handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Since the initial commit 57692c94dcbe ("drm/v3d: Introduce a new DRM driver
-for Broadcom V3D V3.x+") the struct v3d_dev reserved a pointer for
-an optional V3D clock. But there wasn't any code, which fetched it.
-So add the missing clock handling before accessing any V3D registers.
-
-Signed-off-by: Stefan Wahren <wahrenst at gmx.net>
-Reviewed-by: Maíra Canal <mcanal at igalia.com>
-Signed-off-by: Maíra Canal <mcanal at igalia.com>
-Link: https://patchwork.freedesktop.org/patch/msgid/20250201125046.33030-1-wahrenst@gmx.net
----
- drivers/gpu/drm/v3d/v3d_drv.c | 25 ++++++++++++++++++++-----
- 1 file changed, 20 insertions(+), 5 deletions(-)
-
---- a/drivers/gpu/drm/v3d/v3d_drv.c
-+++ b/drivers/gpu/drm/v3d/v3d_drv.c
-@@ -304,11 +304,21 @@ static int v3d_platform_drm_probe(struct
- if (ret)
- return ret;
-
-+ v3d->clk = devm_clk_get_optional(dev, NULL);
-+ if (IS_ERR(v3d->clk))
-+ return dev_err_probe(dev, PTR_ERR(v3d->clk), "Failed to get V3D clock\n");
-+
-+ ret = clk_prepare_enable(v3d->clk);
-+ if (ret) {
-+ dev_err(&pdev->dev, "Couldn't enable the V3D clock\n");
-+ return ret;
-+ }
-+
- mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
- mask = DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
- ret = dma_set_mask_and_coherent(dev, mask);
- if (ret)
-- return ret;
-+ goto clk_disable;
-
- v3d->va_width = 30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_VA_WIDTH);
-
-@@ -328,14 +338,14 @@ static int v3d_platform_drm_probe(struct
- ret = PTR_ERR(v3d->reset);
-
- if (ret == -EPROBE_DEFER)
-- return ret;
-+ goto clk_disable;
-
- v3d->reset = NULL;
- ret = map_regs(v3d, &v3d->bridge_regs, "bridge");
- if (ret) {
- dev_err(dev,
- "Failed to get reset control or bridge regs\n");
-- return ret;
-+ goto clk_disable;
- }
- }
-
-@@ -370,14 +380,15 @@ static int v3d_platform_drm_probe(struct
- if (v3d->ver < 41) {
- ret = map_regs(v3d, &v3d->gca_regs, "gca");
- if (ret)
-- return ret;
-+ goto clk_disable;
- }
-
- v3d->mmu_scratch = dma_alloc_wc(dev, 4096, &v3d->mmu_scratch_paddr,
- GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO);
- if (!v3d->mmu_scratch) {
- dev_err(dev, "Failed to allocate MMU scratch page\n");
-- return -ENOMEM;
-+ ret = -ENOMEM;
-+ goto clk_disable;
- }
-
- ret = v3d_gem_init(drm);
-@@ -408,6 +419,8 @@ gem_destroy:
- v3d_gem_destroy(drm);
- dma_free:
- dma_free_wc(dev, 4096, v3d->mmu_scratch, v3d->mmu_scratch_paddr);
-+clk_disable:
-+ clk_disable_unprepare(v3d->clk);
- return ret;
- }
-
-@@ -425,6 +438,8 @@ static void v3d_platform_drm_remove(stru
-
- dma_free_wc(v3d->drm.dev, 4096, v3d->mmu_scratch,
- v3d->mmu_scratch_paddr);
-+
-+ clk_disable_unprepare(v3d->clk);
- }
-
- static struct platform_driver v3d_platform_driver = {
diff --git a/target/linux/bcm27xx/patches-6.12/950-0874-PCI-brcmstb-Expand-inbound-window-size-up-to-64GB.patch b/target/linux/bcm27xx/patches-6.12/950-0874-PCI-brcmstb-Expand-inbound-window-size-up-to-64GB.patch
deleted file mode 100644
index d9c3a62e8e..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0874-PCI-brcmstb-Expand-inbound-window-size-up-to-64GB.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From f46dc47bb16ebca678b357c38d16d586357ffbeb Mon Sep 17 00:00:00 2001
-From: Stanimir Varbanov <svarbanov at suse.de>
-Date: Mon, 24 Feb 2025 10:35:58 +0200
-Subject: [PATCH] PCI: brcmstb: Expand inbound window size up to 64GB
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The BCM2712 memory map can support up to 64GB of system memory, thus
-expand the inbound window size in calculation helper function.
-
-The change is safe for the currently supported SoCs that have smaller
-inbound window sizes.
-
-Signed-off-by: Stanimir Varbanov <svarbanov at suse.de>
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Reviewed-by: Jim Quinlan <james.quinlan at broadcom.com>
-Tested-by: Ivan T. Ivanov <iivanov at suse.de>
-Link: https://lore.kernel.org/r/20250120130119.671119-6-svarbanov@suse.de
-[kwilczynski: commit log]
-Signed-off-by: Krzysztof Wilczyński <kwilczynski at kernel.org>
----
- drivers/pci/controller/pcie-brcmstb.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/drivers/pci/controller/pcie-brcmstb.c
-+++ b/drivers/pci/controller/pcie-brcmstb.c
-@@ -304,8 +304,8 @@ static int brcm_pcie_encode_ibar_size(u6
- if (log2_in >= 12 && log2_in <= 15)
- /* Covers 4KB to 32KB (inclusive) */
- return (log2_in - 12) + 0x1c;
-- else if (log2_in >= 16 && log2_in <= 35)
-- /* Covers 64KB to 32GB, (inclusive) */
-+ else if (log2_in >= 16 && log2_in <= 36)
-+ /* Covers 64KB to 64GB, (inclusive) */
- return log2_in - 15;
- /* Something is awry so disable */
- return 0;
diff --git a/target/linux/bcm27xx/patches-6.12/950-0877-PCI-brcmstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch b/target/linux/bcm27xx/patches-6.12/950-0877-PCI-brcmstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch
deleted file mode 100644
index f480952b14..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0877-PCI-brcmstb-Adding-a-softdep-to-MIP-MSI-X-driver.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d0b8d7cc6cb1120acca237958d3d88bfcd75976a Mon Sep 17 00:00:00 2001
-From: Stanimir Varbanov <svarbanov at suse.de>
-Date: Mon, 24 Feb 2025 10:35:56 +0200
-Subject: [PATCH] PCI: brcmstb: Adding a softdep to MIP MSI-X driver
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In case brcmstb PCIe driver and MIP MSI-X interrupt controller
-drivers are built as modules there could be a race in probing.
-
-To avoid this add a softdep to MIP driver to guarantee that MIP
-driver will be load first.
-
-Signed-off-by: Stanimir Varbanov <svarbanov at suse.de>
-Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
-Tested-by: Ivan T. Ivanov <iivanov at suse.de>
-Link: https://lore.kernel.org/r/20250120130119.671119-9-svarbanov@suse.de
-[kwilczynski: commit log]
-Signed-off-by: Krzysztof Wilczyński <kwilczynski at kernel.org>
----
- drivers/pci/controller/pcie-brcmstb.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/pci/controller/pcie-brcmstb.c
-+++ b/drivers/pci/controller/pcie-brcmstb.c
-@@ -2004,3 +2004,4 @@ module_platform_driver(brcm_pcie_driver)
- MODULE_LICENSE("GPL");
- MODULE_DESCRIPTION("Broadcom STB PCIe RC driver");
- MODULE_AUTHOR("Broadcom");
-+MODULE_SOFTDEP("pre: irq_bcm2712_mip");
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 a5f9b2866e..8d5815ecd5 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
@@ -142,7 +142,7 @@ Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
static int imx335_update_test_pattern(struct imx335 *imx335, u32 pattern_index)
{
int ret = 0;
-@@ -585,6 +641,10 @@ static int imx335_set_ctrl(struct v4l2_c
+@@ -594,6 +650,10 @@ static int imx335_set_ctrl(struct v4l2_c
ret = imx335_update_exp_gain(imx335, exposure, analog_gain);
break;
@@ -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);
-@@ -1166,7 +1226,7 @@ static int imx335_init_controls(struct i
+@@ -1175,7 +1235,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;
-@@ -1201,6 +1261,13 @@ static int imx335_init_controls(struct i
+@@ -1210,6 +1270,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-0960-media-imx335-Set-vblank-immediately.patch b/target/linux/bcm27xx/patches-6.12/950-0960-media-imx335-Set-vblank-immediately.patch
deleted file mode 100644
index f70ee2148a..0000000000
--- a/target/linux/bcm27xx/patches-6.12/950-0960-media-imx335-Set-vblank-immediately.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From a9a2c30bb67cbf1e03d312e02eb659ef9673b123 Mon Sep 17 00:00:00 2001
-From: Paul Elder <paul.elder at ideasonboard.com>
-Date: Fri, 14 Feb 2025 18:03:53 +0900
-Subject: [PATCH] media: imx335: Set vblank immediately
-
-When the vblank v4l2 control is set, it does not get written to the
-hardware immediately. It only gets updated when exposure is set. Change
-the behavior such that the vblank is written immediately when the
-control is set.
-
-Commit c0aa40f45fef ("media: imx335: Set vblank immediately")' upstream
-
-Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
----
- drivers/media/i2c/imx335.c | 19 +++++++++++++------
- 1 file changed, 13 insertions(+), 6 deletions(-)
-
---- a/drivers/media/i2c/imx335.c
-+++ b/drivers/media/i2c/imx335.c
-@@ -615,12 +615,12 @@ static int imx335_set_ctrl(struct v4l2_c
- imx335->vblank,
- imx335->vblank + imx335->cur_mode->height);
-
-- return __v4l2_ctrl_modify_range(imx335->exp_ctrl,
-- IMX335_EXPOSURE_MIN,
-- imx335->vblank +
-- imx335->cur_mode->height -
-- IMX335_EXPOSURE_OFFSET,
-- 1, IMX335_EXPOSURE_DEFAULT);
-+ __v4l2_ctrl_modify_range(imx335->exp_ctrl,
-+ IMX335_EXPOSURE_MIN,
-+ imx335->vblank +
-+ imx335->cur_mode->height -
-+ IMX335_EXPOSURE_OFFSET,
-+ 1, IMX335_EXPOSURE_DEFAULT);
- }
-
- /*
-@@ -631,6 +631,13 @@ static int imx335_set_ctrl(struct v4l2_c
- return 0;
-
- switch (ctrl->id) {
-+ case V4L2_CID_VBLANK:
-+ exposure = imx335->exp_ctrl->val;
-+ analog_gain = imx335->again_ctrl->val;
-+
-+ ret = imx335_update_exp_gain(imx335, exposure, analog_gain);
-+
-+ break;
- case V4L2_CID_EXPOSURE:
- exposure = ctrl->val;
- analog_gain = imx335->again_ctrl->val;
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
index e55c49476f..89701b06c8 100644
--- 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
@@ -22,7 +22,7 @@ Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
--- a/drivers/media/i2c/imx335.c
+++ b/drivers/media/i2c/imx335.c
-@@ -718,7 +718,8 @@ static int imx335_enum_frame_size(struct
+@@ -720,7 +720,8 @@ static int imx335_enum_frame_size(struct
struct imx335 *imx335 = to_imx335(sd);
u32 code;
diff --git a/target/linux/d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch b/target/linux/d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch
index 6d1562233a..25cb88436a 100644
--- a/target/linux/d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch
+++ b/target/linux/d1/patches-6.12/0009-ASoC-sunxi-sun4i-codec-add-basic-support-for-D1-audi.patch
@@ -16,7 +16,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
--- a/sound/soc/sunxi/sun4i-codec.c
+++ b/sound/soc/sunxi/sun4i-codec.c
-@@ -228,15 +228,65 @@
+@@ -229,16 +229,66 @@
/* TODO H3 DAP (Digital Audio Processing) bits */
@@ -76,6 +76,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
+ struct clk *clk_module_dac;
struct reset_control *rst;
struct gpio_desc *gpio_pa;
+ struct gpio_desc *gpio_hp;
+ const struct sun4i_codec_quirks *quirks;
- /* ADC_FIFOC register is at different offset on different SoCs */
@@ -84,7 +85,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
struct regmap_field *reg_adc_fifoc;
struct snd_dmaengine_dai_dma_data capture_dma_data;
-@@ -246,33 +296,33 @@ struct sun4i_codec {
+@@ -248,33 +298,33 @@ struct sun4i_codec {
static void sun4i_codec_start_playback(struct sun4i_codec *scodec)
{
/* Flush TX FIFO */
@@ -126,7 +127,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
}
static int sun4i_codec_trigger(struct snd_pcm_substream *substream, int cmd,
-@@ -321,8 +371,8 @@ static int sun4i_codec_prepare_capture(s
+@@ -323,8 +373,8 @@ static int sun4i_codec_prepare_capture(s
/* Set RX FIFO trigger level */
regmap_field_update_bits(scodec->reg_adc_fifoc,
@@ -137,7 +138,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
/*
* FIXME: Undocumented in the datasheet, but
-@@ -356,13 +406,13 @@ static int sun4i_codec_prepare_playback(
+@@ -358,13 +408,13 @@ static int sun4i_codec_prepare_playback(
u32 val;
/* Flush the TX FIFO */
@@ -156,7 +157,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
if (substream->runtime->rate > 32000)
/* Use 64 bits FIR filter */
-@@ -371,13 +421,12 @@ static int sun4i_codec_prepare_playback(
+@@ -373,13 +423,12 @@ static int sun4i_codec_prepare_playback(
/* Use 32 bits FIR filter */
val = BIT(SUN4I_CODEC_DAC_FIFOC_FIR_VERSION);
@@ -174,7 +175,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
return 0;
};
-@@ -472,30 +521,32 @@ static int sun4i_codec_hw_params_capture
+@@ -474,30 +523,32 @@ static int sun4i_codec_hw_params_capture
7 << SUN4I_CODEC_ADC_FIFOC_ADC_FS,
hwrate << SUN4I_CODEC_ADC_FIFOC_ADC_FS);
@@ -218,7 +219,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
scodec->capture_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
}
-@@ -510,9 +561,9 @@ static int sun4i_codec_hw_params_playbac
+@@ -512,9 +563,9 @@ static int sun4i_codec_hw_params_playbac
u32 val;
/* Set DAC sample rate */
@@ -231,7 +232,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
/* Set the number of channels we want to use */
if (params_channels(params) == 1)
-@@ -520,27 +571,26 @@ static int sun4i_codec_hw_params_playbac
+@@ -522,27 +573,26 @@ static int sun4i_codec_hw_params_playbac
else
val = 0;
@@ -269,7 +270,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
scodec->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
}
-@@ -561,7 +611,11 @@ static int sun4i_codec_hw_params(struct
+@@ -563,7 +613,11 @@ static int sun4i_codec_hw_params(struct
if (!clk_freq)
return -EINVAL;
@@ -282,7 +283,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
if (ret)
return ret;
-@@ -587,10 +641,14 @@ static int sun4i_codec_startup(struct sn
+@@ -589,10 +643,14 @@ static int sun4i_codec_startup(struct sn
* Stop issuing DRQ when we have room for less than 16 samples
* in our TX FIFO
*/
@@ -300,7 +301,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
}
static void sun4i_codec_shutdown(struct snd_pcm_substream *substream,
-@@ -599,7 +657,11 @@ static void sun4i_codec_shutdown(struct
+@@ -601,7 +659,11 @@ static void sun4i_codec_shutdown(struct
struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream);
struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
@@ -313,7 +314,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
}
static const struct snd_soc_dai_ops sun4i_codec_dai_ops = {
-@@ -1216,6 +1278,55 @@ static const struct snd_soc_component_dr
+@@ -1218,6 +1280,55 @@ static const struct snd_soc_component_dr
.endianness = 1,
};
@@ -369,7 +370,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
static const struct snd_soc_component_driver sun4i_codec_component = {
.name = "sun4i-codec",
.legacy_dai_naming = 1,
-@@ -1518,6 +1629,66 @@ static struct snd_soc_card *sun8i_v3s_co
+@@ -1564,6 +1675,66 @@ static struct snd_soc_card *sun8i_v3s_co
return card;
};
@@ -436,7 +437,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
static const struct regmap_config sun4i_codec_regmap_config = {
.reg_bits = 32,
.reg_stride = 4,
-@@ -1560,21 +1731,22 @@ static const struct regmap_config sun8i_
+@@ -1606,21 +1777,22 @@ static const struct regmap_config sun8i_
.max_register = SUN8I_H3_CODEC_ADC_DBG,
};
@@ -467,7 +468,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
.reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA,
.reg_adc_rxdata = SUN4I_CODEC_ADC_RXDATA,
};
-@@ -1583,7 +1755,11 @@ static const struct sun4i_codec_quirks s
+@@ -1629,7 +1801,11 @@ static const struct sun4i_codec_quirks s
.regmap_config = &sun6i_codec_regmap_config,
.codec = &sun6i_codec_codec,
.create_card = sun6i_codec_create_card,
@@ -479,7 +480,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
.reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA,
.reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA,
.has_reset = true,
-@@ -1593,7 +1769,11 @@ static const struct sun4i_codec_quirks s
+@@ -1639,7 +1815,11 @@ static const struct sun4i_codec_quirks s
.regmap_config = &sun7i_codec_regmap_config,
.codec = &sun7i_codec_codec,
.create_card = sun4i_codec_create_card,
@@ -491,7 +492,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
.reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA,
.reg_adc_rxdata = SUN4I_CODEC_ADC_RXDATA,
};
-@@ -1602,7 +1782,11 @@ static const struct sun4i_codec_quirks s
+@@ -1648,7 +1828,11 @@ static const struct sun4i_codec_quirks s
.regmap_config = &sun8i_a23_codec_regmap_config,
.codec = &sun8i_a23_codec_codec,
.create_card = sun8i_a23_codec_create_card,
@@ -503,7 +504,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
.reg_dac_txdata = SUN4I_CODEC_DAC_TXDATA,
.reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA,
.has_reset = true,
-@@ -1617,7 +1801,11 @@ static const struct sun4i_codec_quirks s
+@@ -1663,7 +1847,11 @@ static const struct sun4i_codec_quirks s
*/
.codec = &sun8i_a23_codec_codec,
.create_card = sun8i_h3_codec_create_card,
@@ -515,7 +516,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
.reg_dac_txdata = SUN8I_H3_CODEC_DAC_TXDATA,
.reg_adc_rxdata = SUN6I_CODEC_ADC_RXDATA,
.has_reset = true,
-@@ -1631,12 +1819,31 @@ static const struct sun4i_codec_quirks s
+@@ -1677,12 +1865,31 @@ static const struct sun4i_codec_quirks s
*/
.codec = &sun8i_a23_codec_codec,
.create_card = sun8i_v3s_codec_create_card,
@@ -547,7 +548,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
static const struct of_device_id sun4i_codec_of_match[] = {
{
.compatible = "allwinner,sun4i-a10-codec",
-@@ -1662,6 +1869,10 @@ static const struct of_device_id sun4i_c
+@@ -1708,6 +1915,10 @@ static const struct of_device_id sun4i_c
.compatible = "allwinner,sun8i-v3s-codec",
.data = &sun8i_v3s_codec_quirks,
},
@@ -558,7 +559,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
{}
};
MODULE_DEVICE_TABLE(of, sun4i_codec_of_match);
-@@ -1690,6 +1901,7 @@ static int sun4i_codec_probe(struct plat
+@@ -1736,6 +1947,7 @@ static int sun4i_codec_probe(struct plat
dev_err(&pdev->dev, "Failed to determine the quirks to use\n");
return -ENODEV;
}
@@ -566,7 +567,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
scodec->regmap = devm_regmap_init_mmio(&pdev->dev, base,
quirks->regmap_config);
-@@ -1705,10 +1917,24 @@ static int sun4i_codec_probe(struct plat
+@@ -1751,10 +1963,24 @@ static int sun4i_codec_probe(struct plat
return PTR_ERR(scodec->clk_apb);
}
@@ -595,7 +596,7 @@ Signed-off-by: Maksim Kiselev <bigunclemax at gmail.com>
}
if (quirks->has_reset) {
-@@ -1737,6 +1963,16 @@ static int sun4i_codec_probe(struct plat
+@@ -1790,6 +2016,16 @@ static int sun4i_codec_probe(struct plat
dev_err(&pdev->dev, "Failed to create regmap fields: %d\n",
ret);
return ret;
diff --git a/target/linux/generic/backport-6.12/410-v6.13-01-block-add-support-for-defining-read-only-partitions.patch b/target/linux/generic/backport-6.12/410-v6.13-01-block-add-support-for-defining-read-only-partitions.patch
index d40a483fd3..7dd0031264 100644
--- a/target/linux/generic/backport-6.12/410-v6.13-01-block-add-support-for-defining-read-only-partitions.patch
+++ b/target/linux/generic/backport-6.12/410-v6.13-01-block-add-support-for-defining-read-only-partitions.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jens Axboe <axboe at kernel.dk>
--- a/block/blk.h
+++ b/block/blk.h
-@@ -555,6 +555,7 @@ void blk_free_ext_minor(unsigned int min
+@@ -556,6 +556,7 @@ void blk_free_ext_minor(unsigned int min
#define ADDPART_FLAG_NONE 0
#define ADDPART_FLAG_RAID 1
#define ADDPART_FLAG_WHOLEDISK 2
diff --git a/target/linux/generic/backport-6.12/728-v6.14-net-phy-Constify-struct-mdio_device_id.patch b/target/linux/generic/backport-6.12/728-v6.14-net-phy-Constify-struct-mdio_device_id.patch
index a64bc51d9c..669b58d22a 100644
--- a/target/linux/generic/backport-6.12/728-v6.14-net-phy-Constify-struct-mdio_device_id.patch
+++ b/target/linux/generic/backport-6.12/728-v6.14-net-phy-Constify-struct-mdio_device_id.patch
@@ -546,7 +546,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
};
--- a/drivers/net/phy/nxp-c45-tja11xx.c
+++ b/drivers/net/phy/nxp-c45-tja11xx.c
-@@ -2052,7 +2052,7 @@ static struct phy_driver nxp_c45_driver[
+@@ -2102,7 +2102,7 @@ static struct phy_driver nxp_c45_driver[
module_phy_driver(nxp_c45_driver);
diff --git a/target/linux/generic/backport-6.12/780-01-v6.13-r8169-remove-original-workaround-for-RTL8125-broken-.patch b/target/linux/generic/backport-6.12/780-01-v6.13-r8169-remove-original-workaround-for-RTL8125-broken-.patch
index 46d41fb262..080dae31e6 100644
--- a/target/linux/generic/backport-6.12/780-01-v6.13-r8169-remove-original-workaround-for-RTL8125-broken-.patch
+++ b/target/linux/generic/backport-6.12/780-01-v6.13-r8169-remove-original-workaround-for-RTL8125-broken-.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -4777,11 +4777,7 @@ static void r8169_phylink_handler(struct
+@@ -4804,11 +4804,7 @@ static void r8169_phylink_handler(struct
if (netif_carrier_ok(ndev)) {
rtl_link_chg_patch(tp);
pm_request_resume(d);
diff --git a/target/linux/generic/backport-6.12/780-02-v6.13-r8169-enable-SG-TSO-on-selected-chip-versions-per-de.patch b/target/linux/generic/backport-6.12/780-02-v6.13-r8169-enable-SG-TSO-on-selected-chip-versions-per-de.patch
index 5a27cc4b52..f7d2d23c2a 100644
--- a/target/linux/generic/backport-6.12/780-02-v6.13-r8169-enable-SG-TSO-on-selected-chip-versions-per-de.patch
+++ b/target/linux/generic/backport-6.12/780-02-v6.13-r8169-enable-SG-TSO-on-selected-chip-versions-per-de.patch
@@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5489,11 +5489,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5517,11 +5517,6 @@ static int rtl_init_one(struct pci_dev *
dev->features |= dev->hw_features;
@@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
if (rtl_chip_supports_csum_v2(tp)) {
dev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6;
netif_set_tso_max_size(dev, RTL_GSO_MAX_SIZE_V2);
-@@ -5504,6 +5499,17 @@ static int rtl_init_one(struct pci_dev *
+@@ -5532,6 +5527,17 @@ static int rtl_init_one(struct pci_dev *
netif_set_tso_max_segs(dev, RTL_GSO_MAX_SEGS_V1);
}
diff --git a/target/linux/generic/backport-6.12/780-03-v6.13-r8169-implement-additional-ethtool-stats-ops.patch b/target/linux/generic/backport-6.12/780-03-v6.13-r8169-implement-additional-ethtool-stats-ops.patch
index bb0b77e6a3..cef8e1e471 100644
--- a/target/linux/generic/backport-6.12/780-03-v6.13-r8169-implement-additional-ethtool-stats-ops.patch
+++ b/target/linux/generic/backport-6.12/780-03-v6.13-r8169-implement-additional-ethtool-stats-ops.patch
@@ -118,7 +118,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
};
static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii)
-@@ -3893,6 +3972,9 @@ static void rtl_hw_start_8125(struct rtl
+@@ -3920,6 +3999,9 @@ static void rtl_hw_start_8125(struct rtl
break;
}
diff --git a/target/linux/generic/backport-6.12/780-04-v6.13-r8169-don-t-take-RTNL-lock-in-rtl_task.patch b/target/linux/generic/backport-6.12/780-04-v6.13-r8169-don-t-take-RTNL-lock-in-rtl_task.patch
index 77e7b4321e..ef360d062a 100644
--- a/target/linux/generic/backport-6.12/780-04-v6.13-r8169-don-t-take-RTNL-lock-in-rtl_task.patch
+++ b/target/linux/generic/backport-6.12/780-04-v6.13-r8169-don-t-take-RTNL-lock-in-rtl_task.patch
@@ -18,7 +18,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -4800,10 +4800,8 @@ static void rtl_task(struct work_struct
+@@ -4827,10 +4827,8 @@ static void rtl_task(struct work_struct
container_of(work, struct rtl8169_private, wk.work);
int ret;
@@ -30,7 +30,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
if (test_and_clear_bit(RTL_FLAG_TASK_TX_TIMEOUT, tp->wk.flags)) {
/* if chip isn't accessible, reset bus to revive it */
-@@ -4812,7 +4810,7 @@ static void rtl_task(struct work_struct
+@@ -4839,7 +4837,7 @@ static void rtl_task(struct work_struct
if (ret < 0) {
netdev_err(tp->dev, "Can't reset secondary PCI bus, detach NIC\n");
netif_device_detach(tp->dev);
@@ -39,7 +39,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
}
}
-@@ -4831,8 +4829,6 @@ reset:
+@@ -4858,8 +4856,6 @@ reset:
} else if (test_and_clear_bit(RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE, tp->wk.flags)) {
rtl_reset_work(tp);
}
diff --git a/target/linux/generic/backport-6.12/780-05-v6.13-replace-custom-flag-with-disable_work-et-al.patch b/target/linux/generic/backport-6.12/780-05-v6.13-replace-custom-flag-with-disable_work-et-al.patch
index f6409c321c..304515fe81 100644
--- a/target/linux/generic/backport-6.12/780-05-v6.13-replace-custom-flag-with-disable_work-et-al.patch
+++ b/target/linux/generic/backport-6.12/780-05-v6.13-replace-custom-flag-with-disable_work-et-al.patch
@@ -39,7 +39,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
}
static void rtl8169_init_phy(struct rtl8169_private *tp)
-@@ -4800,9 +4797,6 @@ static void rtl_task(struct work_struct
+@@ -4827,9 +4824,6 @@ static void rtl_task(struct work_struct
container_of(work, struct rtl8169_private, wk.work);
int ret;
@@ -49,7 +49,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
if (test_and_clear_bit(RTL_FLAG_TASK_TX_TIMEOUT, tp->wk.flags)) {
/* if chip isn't accessible, reset bus to revive it */
if (RTL_R32(tp, TxConfig) == ~0) {
-@@ -4886,6 +4880,7 @@ static int r8169_phy_connect(struct rtl8
+@@ -4913,6 +4907,7 @@ static int r8169_phy_connect(struct rtl8
static void rtl8169_down(struct rtl8169_private *tp)
{
@@ -57,7 +57,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
/* Clear all task flags */
bitmap_zero(tp->wk.flags, RTL_FLAG_MAX);
-@@ -4914,7 +4909,7 @@ static void rtl8169_up(struct rtl8169_pr
+@@ -4941,7 +4936,7 @@ static void rtl8169_up(struct rtl8169_pr
phy_resume(tp->phydev);
rtl8169_init_phy(tp);
napi_enable(&tp->napi);
@@ -66,7 +66,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
rtl_reset_work(tp);
phy_start(tp->phydev);
-@@ -4931,8 +4926,6 @@ static int rtl8169_close(struct net_devi
+@@ -4958,8 +4953,6 @@ static int rtl8169_close(struct net_devi
rtl8169_down(tp);
rtl8169_rx_clear(tp);
@@ -75,7 +75,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
free_irq(tp->irq, tp);
phy_disconnect(tp->phydev);
-@@ -5165,7 +5158,7 @@ static void rtl_remove_one(struct pci_de
+@@ -5192,7 +5185,7 @@ static void rtl_remove_one(struct pci_de
if (pci_dev_run_wake(pdev))
pm_runtime_get_noresume(&pdev->dev);
@@ -84,7 +84,7 @@ Signed-off-by: Andrew Lunn <andrew at lunn.ch>
if (IS_ENABLED(CONFIG_R8169_LEDS))
r8169_remove_leds(tp->leds);
-@@ -5542,6 +5535,7 @@ static int rtl_init_one(struct pci_dev *
+@@ -5570,6 +5563,7 @@ static int rtl_init_one(struct pci_dev *
tp->irq = pci_irq_vector(pdev, 0);
INIT_WORK(&tp->wk.work, rtl_task);
diff --git a/target/linux/generic/backport-6.12/780-09-v6.13-r8169-add-support-for-RTL8125D.patch b/target/linux/generic/backport-6.12/780-09-v6.13-r8169-add-support-for-RTL8125D.patch
index 8bb9916cee..627c2befdd 100644
--- a/target/linux/generic/backport-6.12/780-09-v6.13-r8169-add-support-for-RTL8125D.patch
+++ b/target/linux/generic/backport-6.12/780-09-v6.13-r8169-add-support-for-RTL8125D.patch
@@ -86,7 +86,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
RTL_W32(tp, RxConfig, RX_FETCH_DFLT_8125 | RX_DMA_BURST |
RX_PAUSE_SLOT_ON);
break;
-@@ -3871,6 +3872,12 @@ static void rtl_hw_start_8125b(struct rt
+@@ -3897,6 +3898,12 @@ static void rtl_hw_start_8125b(struct rt
rtl_hw_start_8125_common(tp);
}
@@ -98,8 +98,8 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+
static void rtl_hw_start_8126a(struct rtl8169_private *tp)
{
- rtl_set_def_aspm_entry_latency(tp);
-@@ -3919,6 +3926,7 @@ static void rtl_hw_config(struct rtl8169
+ rtl_disable_zrxdc_timeout(tp);
+@@ -3946,6 +3953,7 @@ static void rtl_hw_config(struct rtl8169
[RTL_GIGA_MAC_VER_53] = rtl_hw_start_8117,
[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
[RTL_GIGA_MAC_VER_65] = rtl_hw_start_8126a,
[RTL_GIGA_MAC_VER_66] = rtl_hw_start_8126a,
};
-@@ -3936,6 +3944,7 @@ static void rtl_hw_start_8125(struct rtl
+@@ -3963,6 +3971,7 @@ static void rtl_hw_start_8125(struct rtl
/* disable interrupt coalescing */
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_61:
diff --git a/target/linux/generic/backport-6.12/780-14-v6.13-r8169-improve-initialization-of-RSS-registers-on-RTL.patch b/target/linux/generic/backport-6.12/780-14-v6.13-r8169-improve-initialization-of-RSS-registers-on-RTL.patch
index fc6ea34b59..f8777b897a 100644
--- a/target/linux/generic/backport-6.12/780-14-v6.13-r8169-improve-initialization-of-RSS-registers-on-RTL.patch
+++ b/target/linux/generic/backport-6.12/780-14-v6.13-r8169-improve-initialization-of-RSS-registers-on-RTL.patch
@@ -25,7 +25,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
EEE_TXIDLE_TIMER_8125 = 0x6048,
};
-@@ -3765,8 +3767,8 @@ static void rtl_hw_start_8125_common(str
+@@ -3791,8 +3793,8 @@ static void rtl_hw_start_8125_common(str
rtl_pcie_state_l2l3_disable(tp);
RTL_W16(tp, 0x382, 0x221b);
diff --git a/target/linux/generic/backport-6.12/780-15-v6.13-r8169-remove-leftover-locks-after-reverted-change.patch b/target/linux/generic/backport-6.12/780-15-v6.13-r8169-remove-leftover-locks-after-reverted-change.patch
index d8a3eb0029..7af3abacfb 100644
--- a/target/linux/generic/backport-6.12/780-15-v6.13-r8169-remove-leftover-locks-after-reverted-change.patch
+++ b/target/linux/generic/backport-6.12/780-15-v6.13-r8169-remove-leftover-locks-after-reverted-change.patch
@@ -102,7 +102,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_06:
-@@ -5451,8 +5428,6 @@ static int rtl_init_one(struct pci_dev *
+@@ -5479,8 +5456,6 @@ static int rtl_init_one(struct pci_dev *
tp->supports_gmii = ent->driver_data == RTL_CFG_NO_GBIT ? 0 : 1;
tp->ocp_base = OCP_STD_PHY_BASE;
diff --git a/target/linux/generic/backport-6.12/780-20-v6.13-r8169-copy-vendor-driver-2.5G-5G-EEE-advertisement-c.patch b/target/linux/generic/backport-6.12/780-20-v6.13-r8169-copy-vendor-driver-2.5G-5G-EEE-advertisement-c.patch
index 96518cc6c4..a88283903a 100644
--- a/target/linux/generic/backport-6.12/780-20-v6.13-r8169-copy-vendor-driver-2.5G-5G-EEE-advertisement-c.patch
+++ b/target/linux/generic/backport-6.12/780-20-v6.13-r8169-copy-vendor-driver-2.5G-5G-EEE-advertisement-c.patch
@@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5227,6 +5227,11 @@ static int r8169_mdio_register(struct rt
+@@ -5255,6 +5255,11 @@ static int r8169_mdio_register(struct rt
phy_support_eee(tp->phydev);
phy_support_asym_pause(tp->phydev);
diff --git a/target/linux/generic/backport-6.12/780-21-v6.14-r8169-remove-unused-flag-RTL_FLAG_TASK_RESET_NO_QUEU.patch b/target/linux/generic/backport-6.12/780-21-v6.14-r8169-remove-unused-flag-RTL_FLAG_TASK_RESET_NO_QUEU.patch
index 5b1e633a63..ad938baec0 100644
--- a/target/linux/generic/backport-6.12/780-21-v6.14-r8169-remove-unused-flag-RTL_FLAG_TASK_RESET_NO_QUEU.patch
+++ b/target/linux/generic/backport-6.12/780-21-v6.14-r8169-remove-unused-flag-RTL_FLAG_TASK_RESET_NO_QUEU.patch
@@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
RTL_FLAG_TASK_TX_TIMEOUT,
RTL_FLAG_MAX
};
-@@ -4722,8 +4721,6 @@ static void rtl_task(struct work_struct
+@@ -4749,8 +4748,6 @@ static void rtl_task(struct work_struct
reset:
rtl_reset_work(tp);
netif_wake_queue(tp->dev);
diff --git a/target/linux/generic/backport-6.12/780-22-v6.14-r8169-remove-support-for-chip-version-11.patch b/target/linux/generic/backport-6.12/780-22-v6.14-r8169-remove-support-for-chip-version-11.patch
index e67e41d676..6753d70ab8 100644
--- a/target/linux/generic/backport-6.12/780-22-v6.14-r8169-remove-support-for-chip-version-11.patch
+++ b/target/linux/generic/backport-6.12/780-22-v6.14-r8169-remove-support-for-chip-version-11.patch
@@ -47,7 +47,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
* { 0x7c8, 0x300, RTL_GIGA_MAC_VER_11 },
*/
-@@ -3802,7 +3801,6 @@ static void rtl_hw_config(struct rtl8169
+@@ -3829,7 +3828,6 @@ static void rtl_hw_config(struct rtl8169
[RTL_GIGA_MAC_VER_08] = rtl_hw_start_8102e_3,
[RTL_GIGA_MAC_VER_09] = rtl_hw_start_8102e_2,
[RTL_GIGA_MAC_VER_10] = NULL,
@@ -55,7 +55,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
[RTL_GIGA_MAC_VER_14] = rtl_hw_start_8401,
[RTL_GIGA_MAC_VER_17] = rtl_hw_start_8168b,
[RTL_GIGA_MAC_VER_18] = rtl_hw_start_8168cp_1,
-@@ -4678,12 +4676,6 @@ static irqreturn_t rtl8169_interrupt(int
+@@ -4705,12 +4703,6 @@ static irqreturn_t rtl8169_interrupt(int
if (status & LinkChg)
phy_mac_interrupt(tp->phydev);
@@ -68,7 +68,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
rtl_irq_disable(tp);
napi_schedule(&tp->napi);
out:
-@@ -5099,9 +5091,6 @@ static void rtl_set_irq_mask(struct rtl8
+@@ -5126,9 +5118,6 @@ static void rtl_set_irq_mask(struct rtl8
if (tp->mac_version <= RTL_GIGA_MAC_VER_06)
tp->irq_mask |= SYSErr | RxFIFOOver;
@@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
}
static int rtl_alloc_irq(struct rtl8169_private *tp)
-@@ -5295,7 +5284,6 @@ static int rtl_jumbo_max(struct rtl8169_
+@@ -5323,7 +5312,6 @@ static int rtl_jumbo_max(struct rtl8169_
case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_06:
return JUMBO_7K;
/* RTL8168b */
diff --git a/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch b/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
index f769744444..c3a82985f1 100644
--- a/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
+++ b/target/linux/generic/backport-6.12/780-23-v6.14-r8169-adjust-version-numbering-for-RTL8126.patch
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
RTL_W8(tp, ChipCmd, RTL_R8(tp, ChipCmd) | StopReq);
rtl_loop_wait_high(tp, &rtl_rxtx_empty_cond, 100, 42);
rtl_loop_wait_high(tp, &rtl_rxtx_empty_cond_2, 100, 42);
-@@ -2900,7 +2900,7 @@ static void rtl_enable_exit_l1(struct rt
+@@ -2926,7 +2926,7 @@ static void rtl_enable_exit_l1(struct rt
case RTL_GIGA_MAC_VER_37 ... RTL_GIGA_MAC_VER_38:
rtl_eri_set_bits(tp, 0xd4, 0x0c00);
break;
@@ -116,7 +116,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
r8168_mac_ocp_modify(tp, 0xc0ac, 0, 0x1f80);
break;
default:
-@@ -2914,7 +2914,7 @@ static void rtl_disable_exit_l1(struct r
+@@ -2940,7 +2940,7 @@ static void rtl_disable_exit_l1(struct r
case RTL_GIGA_MAC_VER_34 ... RTL_GIGA_MAC_VER_38:
rtl_eri_clear_bits(tp, 0xd4, 0x1f00);
break;
@@ -125,7 +125,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
r8168_mac_ocp_modify(tp, 0xc0ac, 0x1f80, 0);
break;
default:
-@@ -2940,8 +2940,8 @@ static void rtl_hw_aspm_clkreq_enable(st
+@@ -2966,8 +2966,8 @@ static void rtl_hw_aspm_clkreq_enable(st
rtl_mod_config5(tp, 0, ASPM_en);
switch (tp->mac_version) {
@@ -136,7 +136,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
val8 = RTL_R8(tp, INT_CFG0_8125) | INT_CFG0_CLKREQEN;
RTL_W8(tp, INT_CFG0_8125, val8);
break;
-@@ -2952,7 +2952,7 @@ static void rtl_hw_aspm_clkreq_enable(st
+@@ -2978,7 +2978,7 @@ static void rtl_hw_aspm_clkreq_enable(st
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_46 ... RTL_GIGA_MAC_VER_48:
@@ -145,7 +145,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
/* reset ephy tx/rx disable timer */
r8168_mac_ocp_modify(tp, 0xe094, 0xff00, 0);
/* chip can trigger L1.2 */
-@@ -2964,7 +2964,7 @@ static void rtl_hw_aspm_clkreq_enable(st
+@@ -2990,7 +2990,7 @@ static void rtl_hw_aspm_clkreq_enable(st
} else {
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_46 ... RTL_GIGA_MAC_VER_48:
@@ -154,7 +154,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
r8168_mac_ocp_modify(tp, 0xe092, 0x00ff, 0);
break;
default:
-@@ -2972,8 +2972,8 @@ static void rtl_hw_aspm_clkreq_enable(st
+@@ -2998,8 +2998,8 @@ static void rtl_hw_aspm_clkreq_enable(st
}
switch (tp->mac_version) {
@@ -165,7 +165,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
val8 = RTL_R8(tp, INT_CFG0_8125) & ~INT_CFG0_CLKREQEN;
RTL_W8(tp, INT_CFG0_8125, val8);
break;
-@@ -3693,12 +3693,12 @@ static void rtl_hw_start_8125_common(str
+@@ -3719,12 +3719,12 @@ static void rtl_hw_start_8125_common(str
/* disable new tx descriptor format */
r8168_mac_ocp_modify(tp, 0xeb58, 0x0001, 0x0000);
@@ -182,7 +182,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0400);
else if (tp->mac_version == RTL_GIGA_MAC_VER_63)
r8168_mac_ocp_modify(tp, 0xe614, 0x0700, 0x0200);
-@@ -3716,8 +3716,8 @@ static void rtl_hw_start_8125_common(str
+@@ -3742,8 +3742,8 @@ static void rtl_hw_start_8125_common(str
r8168_mac_ocp_modify(tp, 0xe056, 0x00f0, 0x0030);
r8168_mac_ocp_modify(tp, 0xe040, 0x1000, 0x0000);
r8168_mac_ocp_modify(tp, 0xea1c, 0x0003, 0x0001);
@@ -193,7 +193,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
r8168_mac_ocp_modify(tp, 0xea1c, 0x0300, 0x0000);
else
r8168_mac_ocp_modify(tp, 0xea1c, 0x0004, 0x0000);
-@@ -3836,8 +3836,8 @@ static void rtl_hw_config(struct rtl8169
+@@ -3863,8 +3863,8 @@ static void rtl_hw_config(struct rtl8169
[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
[RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
@@ -204,7 +204,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
};
if (hw_configs[tp->mac_version])
-@@ -3858,8 +3858,8 @@ static void rtl_hw_start_8125(struct rtl
+@@ -3885,8 +3885,8 @@ static void rtl_hw_start_8125(struct rtl
RTL_W32(tp, i, 0);
break;
case RTL_GIGA_MAC_VER_63:
@@ -215,7 +215,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
for (i = 0xa00; i < 0xa80; i += 4)
RTL_W32(tp, i, 0);
RTL_W16(tp, INT_CFG1_8125, 0x0000);
-@@ -4091,7 +4091,7 @@ static void rtl8169_cleanup(struct rtl81
+@@ -4118,7 +4118,7 @@ static void rtl8169_cleanup(struct rtl81
RTL_W8(tp, ChipCmd, RTL_R8(tp, ChipCmd) | StopReq);
rtl_loop_wait_high(tp, &rtl_txcfg_empty_cond, 100, 666);
break;
@@ -224,7 +224,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
rtl_enable_rxdvgate(tp);
fsleep(2000);
break;
-@@ -4248,7 +4248,7 @@ static unsigned int rtl_quirk_packet_pad
+@@ -4275,7 +4275,7 @@ static unsigned int rtl_quirk_packet_pad
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_34:
@@ -233,7 +233,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
padto = max_t(unsigned int, padto, ETH_ZLEN);
break;
default:
-@@ -5265,7 +5265,7 @@ static void rtl_hw_initialize(struct rtl
+@@ -5293,7 +5293,7 @@ static void rtl_hw_initialize(struct rtl
case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_48:
rtl_hw_init_8168g(tp);
break;
diff --git a/target/linux/generic/backport-6.12/780-24-v6.14-r8169-add-support-for-RTL8125D-rev.b.patch b/target/linux/generic/backport-6.12/780-24-v6.14-r8169-add-support-for-RTL8125D-rev.b.patch
index eb565b751d..e53d93f213 100644
--- a/target/linux/generic/backport-6.12/780-24-v6.14-r8169-add-support-for-RTL8125D-rev.b.patch
+++ b/target/linux/generic/backport-6.12/780-24-v6.14-r8169-add-support-for-RTL8125D-rev.b.patch
@@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
{ 0x7cf, 0x688, RTL_GIGA_MAC_VER_64 },
/* 8125B family. */
-@@ -3836,6 +3840,7 @@ static void rtl_hw_config(struct rtl8169
+@@ -3863,6 +3867,7 @@ static void rtl_hw_config(struct rtl8169
[RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
[RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
@@ -70,7 +70,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
[RTL_GIGA_MAC_VER_70] = rtl_hw_start_8126a,
[RTL_GIGA_MAC_VER_71] = rtl_hw_start_8126a,
};
-@@ -3854,6 +3859,7 @@ static void rtl_hw_start_8125(struct rtl
+@@ -3881,6 +3886,7 @@ static void rtl_hw_start_8125(struct rtl
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_61:
case RTL_GIGA_MAC_VER_64:
diff --git a/target/linux/generic/backport-6.12/780-25-v6.14-r8169-add-support-for-RTL8125BP-rev.b.patch b/target/linux/generic/backport-6.12/780-25-v6.14-r8169-add-support-for-RTL8125BP-rev.b.patch
index 35b68bb9c9..e358951f9d 100644
--- a/target/linux/generic/backport-6.12/780-25-v6.14-r8169-add-support-for-RTL8125BP-rev.b.patch
+++ b/target/linux/generic/backport-6.12/780-25-v6.14-r8169-add-support-for-RTL8125BP-rev.b.patch
@@ -127,7 +127,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
/* 8125D family. */
{ 0x7cf, 0x689, RTL_GIGA_MAC_VER_65 },
{ 0x7cf, 0x688, RTL_GIGA_MAC_VER_64 },
-@@ -3841,6 +3869,7 @@ static void rtl_hw_config(struct rtl8169
+@@ -3868,6 +3896,7 @@ static void rtl_hw_config(struct rtl8169
[RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
[RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
[RTL_GIGA_MAC_VER_65] = rtl_hw_start_8125d,
@@ -135,7 +135,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
[RTL_GIGA_MAC_VER_70] = rtl_hw_start_8126a,
[RTL_GIGA_MAC_VER_71] = rtl_hw_start_8126a,
};
-@@ -3860,6 +3889,7 @@ static void rtl_hw_start_8125(struct rtl
+@@ -3887,6 +3916,7 @@ static void rtl_hw_start_8125(struct rtl
case RTL_GIGA_MAC_VER_61:
case RTL_GIGA_MAC_VER_64:
case RTL_GIGA_MAC_VER_65:
diff --git a/target/linux/generic/backport-6.12/780-27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch b/target/linux/generic/backport-6.12/780-27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch
deleted file mode 100644
index b6ddc76ca8..0000000000
--- a/target/linux/generic/backport-6.12/780-27-v6.15-r8169-don-t-scan-PHY-addresses-0.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From faac69a4ae5abb49e62c79c66b51bb905c9aa5ec Mon Sep 17 00:00:00 2001
-From: Heiner Kallweit <hkallweit1 at gmail.com>
-Date: Tue, 4 Feb 2025 07:58:17 +0100
-Subject: [PATCH] r8169: don't scan PHY addresses > 0
-
-The PHY address is a dummy, because r8169 PHY access registers
-don't support a PHY address. Therefore scan address 0 only.
-
-Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
-Reviewed-by: Andrew Lunn <andrew at lunn.ch>
-Link: https://patch.msgid.link/830637dd-4016-4a68-92b3-618fcac6589d@gmail.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/ethernet/realtek/r8169_main.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/net/ethernet/realtek/r8169_main.c
-+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5222,6 +5222,7 @@ static int r8169_mdio_register(struct rt
- new_bus->priv = tp;
- new_bus->parent = &pdev->dev;
- new_bus->irq[0] = PHY_MAC_INTERRUPT;
-+ new_bus->phy_mask = GENMASK(31, 1);
- snprintf(new_bus->id, MII_BUS_ID_SIZE, "r8169-%x-%x",
- pci_domain_nr(pdev->bus), pci_dev_id(pdev));
-
diff --git a/target/linux/generic/backport-6.12/780-29-v6.15-r8169-add-PHY-c45-ops-for-MDIO_MMD_VENDOR2-registers.patch b/target/linux/generic/backport-6.12/780-29-v6.15-r8169-add-PHY-c45-ops-for-MDIO_MMD_VENDOR2-registers.patch
index 165d7da1be..1fe7f8c2be 100644
--- a/target/linux/generic/backport-6.12/780-29-v6.15-r8169-add-PHY-c45-ops-for-MDIO_MMD_VENDOR2-registers.patch
+++ b/target/linux/generic/backport-6.12/780-29-v6.15-r8169-add-PHY-c45-ops-for-MDIO_MMD_VENDOR2-registers.patch
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5200,6 +5200,33 @@ static int r8169_mdio_write_reg(struct m
+@@ -5227,6 +5227,33 @@ static int r8169_mdio_write_reg(struct m
return 0;
}
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
static int r8169_mdio_register(struct rtl8169_private *tp)
{
struct pci_dev *pdev = tp->pci_dev;
-@@ -5230,6 +5257,11 @@ static int r8169_mdio_register(struct rt
+@@ -5257,6 +5284,11 @@ static int r8169_mdio_register(struct rt
new_bus->read = r8169_mdio_read_reg;
new_bus->write = r8169_mdio_write_reg;
diff --git a/target/linux/generic/backport-6.12/780-30-v6.15-r8169-increase-max-jumbo-packet-size-on-RTL8125-RTL8.patch b/target/linux/generic/backport-6.12/780-30-v6.15-r8169-increase-max-jumbo-packet-size-on-RTL8125-RTL8.patch
index 559f742ebe..571022051b 100644
--- a/target/linux/generic/backport-6.12/780-30-v6.15-r8169-increase-max-jumbo-packet-size-on-RTL8125-RTL8.patch
+++ b/target/linux/generic/backport-6.12/780-30-v6.15-r8169-increase-max-jumbo-packet-size-on-RTL8125-RTL8.patch
@@ -28,7 +28,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
static const struct {
const char *name;
-@@ -5359,6 +5360,9 @@ static int rtl_jumbo_max(struct rtl8169_
+@@ -5386,6 +5387,9 @@ static int rtl_jumbo_max(struct rtl8169_
/* RTL8168c */
case RTL_GIGA_MAC_VER_18 ... RTL_GIGA_MAC_VER_24:
return JUMBO_6K;
diff --git a/target/linux/generic/backport-6.12/780-31-v6.15-r8169-switch-away-from-deprecated-pcim_iomap_table.patch b/target/linux/generic/backport-6.12/780-31-v6.15-r8169-switch-away-from-deprecated-pcim_iomap_table.patch
index 93b79d7823..039e6596ac 100644
--- a/target/linux/generic/backport-6.12/780-31-v6.15-r8169-switch-away-from-deprecated-pcim_iomap_table.patch
+++ b/target/linux/generic/backport-6.12/780-31-v6.15-r8169-switch-away-from-deprecated-pcim_iomap_table.patch
@@ -17,7 +17,7 @@ Signed-off-by: Paolo Abeni <pabeni at redhat.com>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5446,11 +5446,10 @@ static int rtl_init_one(struct pci_dev *
+@@ -5473,11 +5473,10 @@ static int rtl_init_one(struct pci_dev *
if (region < 0)
return dev_err_probe(&pdev->dev, -ENODEV, "no MMIO resource found\n");
diff --git a/target/linux/generic/backport-6.12/780-32-v6.15-r8169-enable-RTL8168H-RTL8168EP-RTL8168FP-ASPM-suppo.patch b/target/linux/generic/backport-6.12/780-32-v6.15-r8169-enable-RTL8168H-RTL8168EP-RTL8168FP-ASPM-suppo.patch
index 5c6ce70d29..7cc6556dd7 100644
--- a/target/linux/generic/backport-6.12/780-32-v6.15-r8169-enable-RTL8168H-RTL8168EP-RTL8168FP-ASPM-suppo.patch
+++ b/target/linux/generic/backport-6.12/780-32-v6.15-r8169-enable-RTL8168H-RTL8168EP-RTL8168FP-ASPM-suppo.patch
@@ -16,7 +16,7 @@ Signed-off-by: Jakub Kicinski <kuba at kernel.org>
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -5397,7 +5397,7 @@ done:
+@@ -5424,7 +5424,7 @@ done:
/* register is set if system vendor successfully tested ASPM 1.2 */
static bool rtl_aspm_is_safe(struct rtl8169_private *tp)
{
diff --git a/target/linux/generic/backport-6.12/780-33-v6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch b/target/linux/generic/backport-6.12/780-33-v6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch
deleted file mode 100644
index 1f4240e879..0000000000
--- a/target/linux/generic/backport-6.12/780-33-v6.15-r8169-disable-RTL8126-ZRX-DC-timeout.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b48688ea3c9ac8d5d910c6e91fb7f80d846581f0 Mon Sep 17 00:00:00 2001
-From: ChunHao Lin <hau at realtek.com>
-Date: Tue, 18 Mar 2025 16:37:21 +0800
-Subject: [PATCH] r8169: disable RTL8126 ZRX-DC timeout
-
-Disable it due to it dose not meet ZRX-DC specification. If it is enabled,
-device will exit L1 substate every 100ms. Disable it for saving more power
-in L1 substate.
-
-Signed-off-by: ChunHao Lin <hau at realtek.com>
-Reviewed-by: Heiner Kallweit <hkallweit1 at gmail.com>
-Link: https://patch.msgid.link/20250318083721.4127-3-hau@realtek.com
-Signed-off-by: Jakub Kicinski <kuba at kernel.org>
----
- drivers/net/ethernet/realtek/r8169_main.c | 27 +++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
---- a/drivers/net/ethernet/realtek/r8169_main.c
-+++ b/drivers/net/ethernet/realtek/r8169_main.c
-@@ -2852,6 +2852,32 @@ static u32 rtl_csi_read(struct rtl8169_p
- RTL_R32(tp, CSIDR) : ~0;
- }
-
-+static void rtl_disable_zrxdc_timeout(struct rtl8169_private *tp)
-+{
-+ struct pci_dev *pdev = tp->pci_dev;
-+ u32 csi;
-+ int rc;
-+ u8 val;
-+
-+#define RTL_GEN3_RELATED_OFF 0x0890
-+#define RTL_GEN3_ZRXDC_NONCOMPL 0x1
-+ if (pdev->cfg_size > RTL_GEN3_RELATED_OFF) {
-+ rc = pci_read_config_byte(pdev, RTL_GEN3_RELATED_OFF, &val);
-+ if (rc == PCIBIOS_SUCCESSFUL) {
-+ val &= ~RTL_GEN3_ZRXDC_NONCOMPL;
-+ rc = pci_write_config_byte(pdev, RTL_GEN3_RELATED_OFF,
-+ val);
-+ if (rc == PCIBIOS_SUCCESSFUL)
-+ return;
-+ }
-+ }
-+
-+ netdev_notice_once(tp->dev,
-+ "No native access to PCI extended config space, falling back to CSI\n");
-+ csi = rtl_csi_read(tp, RTL_GEN3_RELATED_OFF);
-+ rtl_csi_write(tp, RTL_GEN3_RELATED_OFF, csi & ~RTL_GEN3_ZRXDC_NONCOMPL);
-+}
-+
- static void rtl_set_aspm_entry_latency(struct rtl8169_private *tp, u8 val)
- {
- struct pci_dev *pdev = tp->pci_dev;
-@@ -3824,6 +3850,7 @@ static void rtl_hw_start_8125d(struct rt
-
- static void rtl_hw_start_8126a(struct rtl8169_private *tp)
- {
-+ rtl_disable_zrxdc_timeout(tp);
- rtl_set_def_aspm_entry_latency(tp);
- rtl_hw_start_8125_common(tp);
- }
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 9537bb76e3..3d27c92141 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
-@@ -1063,7 +1063,7 @@ static void page_pool_release_retry(stru
+@@ -1064,7 +1064,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.
-@@ -1075,6 +1075,17 @@ static void page_pool_release_retry(stru
+@@ -1076,6 +1076,17 @@ static void page_pool_release_retry(stru
if (inflight <= 0)
return;
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 b62738748f..a135684460 100644
--- a/target/linux/generic/hack-6.12/902-debloat_proc.patch
+++ b/target/linux/generic/hack-6.12/902-debloat_proc.patch
@@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
if (!pe)
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
-@@ -5051,6 +5051,8 @@ static int __init proc_vmalloc_init(void
+@@ -5054,6 +5054,8 @@ static int __init proc_vmalloc_init(void
{
void *priv_data = NULL;
@@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -3037,11 +3037,13 @@ static const struct seq_operations fib_r
+@@ -3015,11 +3015,13 @@ static const struct seq_operations fib_r
int __net_init fib_proc_init(struct net *net)
{
@@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
fib_triestat_seq_show, NULL))
goto out2;
-@@ -3052,17 +3054,21 @@ int __net_init fib_proc_init(struct net
+@@ -3030,17 +3032,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12
index 3f710bc5ee..343c2148fc 100644
--- a/target/linux/generic/kernel-6.12
+++ b/target/linux/generic/kernel-6.12
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.12 = .30
-LINUX_KERNEL_HASH-6.12.30 = df046a48971e40ce0b2e003e7e55b6b1e7da2912120eb216d5d6c8450c9cf82e
+LINUX_VERSION-6.12 = .31
+LINUX_KERNEL_HASH-6.12.31 = b04c5b3e5df6e0aa5e9cd1efe527fac99f9dd39a43b97f13b22f8ca93e524ba7
diff --git a/target/linux/generic/pending-6.12/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-6.12/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index f0e8a63a99..8c7fab9462 100644
--- a/target/linux/generic/pending-6.12/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/pending-6.12/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -424,7 +424,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
}
static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
-@@ -2083,6 +2302,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2084,6 +2303,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev)
{
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
return
/* IFLA_IPTUN_LINK */
nla_total_size(4) +
-@@ -2112,6 +2337,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2113,6 +2338,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(0) +
/* IFLA_IPTUN_FWMARK */
nla_total_size(4) +
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
0;
}
-@@ -2119,6 +2362,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2120,6 +2363,9 @@ static int ip6_tnl_fill_info(struct sk_b
{
struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2128,9 +2374,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2129,9 +2375,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2170,6 +2434,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2171,6 +2435,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
diff --git a/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index a9aa7a3beb..d10f39cf22 100644
--- a/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
+++ b/target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo at openwrt.org>
static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2784,6 +2784,7 @@ static const char *const rtn_type_names[
+@@ -2762,6 +2762,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
diff --git a/target/linux/generic/pending-6.12/804-nvmem-core-support-mac-base-fixed-layout-cells.patch b/target/linux/generic/pending-6.12/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
index 446099a2a9..8f2706e6b4 100644
--- a/target/linux/generic/pending-6.12/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
+++ b/target/linux/generic/pending-6.12/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
@@ -33,7 +33,7 @@ string.
#include <linux/init.h>
#include <linux/kref.h>
#include <linux/module.h>
-@@ -797,6 +800,62 @@ static int nvmem_validate_keepouts(struc
+@@ -811,6 +814,62 @@ static int nvmem_validate_keepouts(struc
return 0;
}
@@ -96,7 +96,7 @@ string.
static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
{
struct device *dev = &nvmem->dev;
-@@ -836,6 +895,25 @@ static int nvmem_add_cells_from_dt(struc
+@@ -852,6 +911,25 @@ static int nvmem_add_cells_from_dt(struc
if (nvmem->fixup_dt_cell_info)
nvmem->fixup_dt_cell_info(nvmem, &info);
diff --git a/target/linux/generic/pending-6.12/809-01-nvmem-core-generalize-mac-base-cells-handling.patch b/target/linux/generic/pending-6.12/809-01-nvmem-core-generalize-mac-base-cells-handling.patch
index 139a925ccf..94d43e0ce0 100644
--- a/target/linux/generic/pending-6.12/809-01-nvmem-core-generalize-mac-base-cells-handling.patch
+++ b/target/linux/generic/pending-6.12/809-01-nvmem-core-generalize-mac-base-cells-handling.patch
@@ -38,7 +38,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
#include <linux/init.h>
#include <linux/kref.h>
#include <linux/module.h>
-@@ -800,62 +797,6 @@ static int nvmem_validate_keepouts(struc
+@@ -814,62 +811,6 @@ static int nvmem_validate_keepouts(struc
return 0;
}
@@ -101,7 +101,7 @@ Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
{
struct device *dev = &nvmem->dev;
-@@ -895,24 +836,8 @@ static int nvmem_add_cells_from_dt(struc
+@@ -911,24 +852,8 @@ static int nvmem_add_cells_from_dt(struc
if (nvmem->fixup_dt_cell_info)
nvmem->fixup_dt_cell_info(nvmem, &info);
diff --git a/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch b/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch
index 4c5fdbbf0a..9d16a43a28 100644
--- a/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch
+++ b/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch
@@ -171,7 +171,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang at mediatek.com>
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
-@@ -351,6 +351,40 @@ struct spi_driver {
+@@ -348,6 +348,40 @@ struct spi_driver {
struct device_driver driver;
};
@@ -212,7 +212,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang at mediatek.com>
#define to_spi_driver(__drv) \
( __drv ? container_of_const(__drv, struct spi_driver, driver) : NULL )
-@@ -757,6 +791,11 @@ struct spi_controller {
+@@ -754,6 +788,11 @@ struct spi_controller {
void *dummy_rx;
void *dummy_tx;
@@ -224,7 +224,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang at mediatek.com>
int (*fw_translate_cs)(struct spi_controller *ctlr, unsigned cs);
/*
-@@ -1660,6 +1699,9 @@ spi_register_board_info(struct spi_board
+@@ -1657,6 +1696,9 @@ spi_register_board_info(struct spi_board
{ return 0; }
#endif
More information about the lede-commits
mailing list