diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 6dfee9bc16..347b963d51 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -23,8 +23,8 @@ case "${LINUX}" in PKG_PATCH_DIRS="default" ;; raspberrypi) - PKG_VERSION="bba53a117a4a5c29da892962332ff1605990e17a" # 6.6.78 - PKG_SHA256="901dbc05b56e519d1f0beaefa83dac4a8d915e5b5f85190fd1adda640c345287" + PKG_VERSION="9c09b75242960117155712f41ce540df2e3cd63c" # 6.12.38 + PKG_SHA256="efe2f6b14f4348c4930fdc1b2168fcdc7700034ba66393e860deb0f172a8083c" PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz" PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" ;; diff --git a/packages/linux/patches/raspberrypi/linux-001-backport-pr6741-rpi5-sand-fixes.patch b/packages/linux/patches/raspberrypi/linux-001-backport-pr6741-rpi5-sand-fixes.patch deleted file mode 100644 index 2b266292b0..0000000000 --- a/packages/linux/patches/raspberrypi/linux-001-backport-pr6741-rpi5-sand-fixes.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 7ac0b48fa963cbc7e8b1f3702a4ae8d1947e65a2 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Tue, 25 Mar 2025 16:02:24 +0000 -Subject: [PATCH 1/2] drm/vc4: plane: Correct SAND30 word sizing for cropping - on BCM2712 - -BCM2712/vc6 uses 256bit words when reading in P030/SAND128, -increased from 128bit on BCM2711/vc5. - -Update the code for cropping the read area to handle the correct -word length. - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/vc4/vc4_plane.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index fdd6ba310324..f1333d89cd92 100644 ---- a/drivers/gpu/drm/vc4/vc4_plane.c -+++ b/drivers/gpu/drm/vc4/vc4_plane.c -@@ -1934,18 +1934,18 @@ static int vc6_plane_mode_set(struct drm_plane *plane, - - if (fb->format->format == DRM_FORMAT_P030) { - /* -- * Spec says: bits [31:4] of the given address -- * should point to the 128-bit word containing -- * the desired starting pixel, and bits[3:0] -- * should be between 0 and 11, indicating which -- * of the 12-pixels in that 128-bit word is the -+ * Spec says: bits [31:5] of the given address -+ * should point to the 256-bit word containing -+ * the desired starting pixel, and bits[4:0] -+ * should be between 0 and 23, indicating which -+ * of the 24-pixels in that 256-bit word is the - * first pixel to be used - */ - u32 remaining_pixels = src_x % 96; -- u32 aligned = remaining_pixels / 12; -- u32 last_bits = remaining_pixels % 12; -+ u32 aligned = remaining_pixels / 24; -+ u32 last_bits = remaining_pixels % 24; - -- x_off = aligned * 16 + last_bits; -+ x_off = aligned * 32 + last_bits; - tile_w = 128; - pix_per_tile = 96; - } else { --- -2.39.5 - - -From 3064adb25c5af41920f62d80dabf47a252b233a0 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Mon, 31 Mar 2025 17:03:40 +0100 -Subject: [PATCH 2/2] drm/vc4: plane: Ensure fetch_count is sufficient for hw - in SAND mode - -The number of words to fetch for SAND formats on vc6 needs to account -for all pixels requested by width. - -If cropping fractional pixels, then the width was being increased, but -fetch_count had already been computed. That led to insufficient words -being fetched, and the HVS locked up solid. - -Apply the fixup for fractional pixel source cropping before computing -fetch_count. - -Signed-off-by: Dave Stevenson ---- - drivers/gpu/drm/vc4/vc4_plane.c | 36 ++++++++++++++++----------------- - 1 file changed, 18 insertions(+), 18 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c -index f1333d89cd92..7a203a702c22 100644 ---- a/drivers/gpu/drm/vc4/vc4_plane.c -+++ b/drivers/gpu/drm/vc4/vc4_plane.c -@@ -1874,6 +1874,24 @@ static int vc6_plane_mode_set(struct drm_plane *plane, - - src_x = vc4_state->src_x >> 16; - -+ /* fetch an extra pixel if we don't actually line up with the left edge. */ -+ if ((vc4_state->src_x & 0xffff) && vc4_state->src_x < (state->fb->width << 16)) -+ width++; -+ -+ /* same for the right side */ -+ if (((vc4_state->src_x + vc4_state->src_w[0]) & 0xffff) && -+ vc4_state->src_x + vc4_state->src_w[0] < (state->fb->width << 16)) -+ width++; -+ -+ /* now for the top */ -+ if ((vc4_state->src_y & 0xffff) && vc4_state->src_y < (state->fb->height << 16)) -+ height++; -+ -+ /* and the bottom */ -+ if (((vc4_state->src_y + vc4_state->src_h[0]) & 0xffff) && -+ vc4_state->src_y + vc4_state->src_h[0] < (state->fb->height << 16)) -+ height++; -+ - switch (base_format_mod) { - case DRM_FORMAT_MOD_LINEAR: - tiling = SCALER6_CTL0_ADDR_MODE_LINEAR; -@@ -1988,24 +2006,6 @@ static int vc6_plane_mode_set(struct drm_plane *plane, - return -EINVAL; - } - -- /* fetch an extra pixel if we don't actually line up with the left edge. */ -- if ((vc4_state->src_x & 0xffff) && vc4_state->src_x < (state->fb->width << 16)) -- width++; -- -- /* same for the right side */ -- if (((vc4_state->src_x + vc4_state->src_w[0]) & 0xffff) && -- vc4_state->src_x + vc4_state->src_w[0] < (state->fb->width << 16)) -- width++; -- -- /* now for the top */ -- if ((vc4_state->src_y & 0xffff) && vc4_state->src_y < (state->fb->height << 16)) -- height++; -- -- /* and the bottom */ -- if (((vc4_state->src_y + vc4_state->src_h[0]) & 0xffff) && -- vc4_state->src_y + vc4_state->src_h[0] < (state->fb->height << 16)) -- height++; -- - /* for YUV444 hardware wants double the width, otherwise it doesn't - * fetch full width of chroma - */ --- -2.39.5 - diff --git a/packages/linux/patches/raspberrypi/linux-002-dts-bcm2711-drop-numa_policy-from-bootargs.patch b/packages/linux/patches/raspberrypi/linux-002-dts-bcm2711-drop-numa_policy-from-bootargs.patch deleted file mode 100644 index 9dbb7ef3a8..0000000000 --- a/packages/linux/patches/raspberrypi/linux-002-dts-bcm2711-drop-numa_policy-from-bootargs.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2d02a2c7531d2b7573237e0e7604b8d51c26583b Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -Date: Wed, 13 Nov 2024 00:16:47 +0100 -Subject: [PATCH 2/3] dts: bcm2711: drop numa_policy from bootargs - -We don't compile the kernel with NUMA so drop the numa parameter -from bootargs. - -Signed-off-by: Matthias Reichl ---- - arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts | 2 +- - arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts -index 71d228414b76..c48a0880539d 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts -@@ -148,7 +148,7 @@ soc { - - / { - chosen { -- bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave"; -+ bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0 cgroup_disable=memory"; - }; - - aliases { -diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi -index eb3abcdbae6b..32453b394ded 100644 ---- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi -+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi -@@ -3,7 +3,7 @@ - - / { - chosen { -- bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory numa_policy=interleave"; -+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 cgroup_disable=memory"; - }; - - __overrides__ { --- -2.39.5 - diff --git a/packages/linux/patches/raspberrypi/linux-003-dts-bcm2712-drop-numa_policy-from-bootargs.patch b/packages/linux/patches/raspberrypi/linux-003-dts-bcm2712-drop-numa_policy-from-bootargs.patch deleted file mode 100644 index 9a27dce45b..0000000000 --- a/packages/linux/patches/raspberrypi/linux-003-dts-bcm2712-drop-numa_policy-from-bootargs.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0d692f7a53559259b1532b0503788f557e5ff182 Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -Date: Wed, 13 Nov 2024 00:16:47 +0100 -Subject: [PATCH 3/3] dts: bcm2712: drop numa_policy from bootargs - -We don't compile the kernel with NUMA so drop the numa parameter -from bootargs. - -Signed-off-by: Matthias Reichl ---- - arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi -index 65abbb450daf..6bb6e81313b5 100644 ---- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi -+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi -@@ -99,7 +99,7 @@ vdd_5v0_reg: fixedregulator_5v0 { - - / { - chosen: chosen { -- bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory numa_policy=interleave"; -+ bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe cgroup_disable=memory"; - stdout-path = "serial10:115200n8"; - }; - --- -2.39.5 - diff --git a/packages/linux/patches/raspberrypi/linux-999.90-media-anysee-accept-read-buffers-of-length-1-in-anys.patch b/packages/linux/patches/raspberrypi/linux-999.90-media-anysee-accept-read-buffers-of-length-1-in-anys.patch deleted file mode 100644 index 3115837283..0000000000 --- a/packages/linux/patches/raspberrypi/linux-999.90-media-anysee-accept-read-buffers-of-length-1-in-anys.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 826beca0ce76876507372349da860a986078eacd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Istv=C3=A1n=20V=C3=A1radi?= -Date: Tue, 13 Feb 2024 21:20:32 +0100 -Subject: [PATCH] media: anysee: accept read buffers of length 1 in - anysee_master_xfer -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -anysee_master_xfer currently accepts read messages of length 2 only. -However, several frontends, e.g. tda10023 send buffers of length 1, -containing an 8-bit register number (see tda10023_readreg). -These buffers are rejected currently, making many Anysee variants -to not work. In these cases the "Unsupported Anysee version" -message is logged. - -This patch alters the function to accept buffers of a length of 1 too. - -Signed-off-by: István Váradi -Signed-off-by: Hans Verkuil -[hverkuil: add spaces around '<', fix typo in 'sevaral'] ---- - drivers/media/usb/dvb-usb-v2/anysee.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/media/usb/dvb-usb-v2/anysee.c b/drivers/media/usb/dvb-usb-v2/anysee.c -index a1235d0cce92..8699846eb416 100644 ---- a/drivers/media/usb/dvb-usb-v2/anysee.c -+++ b/drivers/media/usb/dvb-usb-v2/anysee.c -@@ -202,14 +202,14 @@ static int anysee_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msg, - - while (i < num) { - if (num > i + 1 && (msg[i+1].flags & I2C_M_RD)) { -- if (msg[i].len != 2 || msg[i + 1].len > 60) { -+ if (msg[i].len < 1 || msg[i].len > 2 || msg[i + 1].len > 60) { - ret = -EOPNOTSUPP; - break; - } - buf[0] = CMD_I2C_READ; - buf[1] = (msg[i].addr << 1) | 0x01; - buf[2] = msg[i].buf[0]; -- buf[3] = msg[i].buf[1]; -+ buf[3] = (msg[i].len < 2) ? 0 : msg[i].buf[1]; - buf[4] = msg[i].len-1; - buf[5] = msg[i+1].len; - ret = anysee_ctrl_msg(d, buf, 6, msg[i+1].buf, --- -2.34.1 -