mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-31 06:36:41 +00:00
linux (RPi): update to 6.12.38-9c09b75
Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
parent
92c221ad0b
commit
014e83d91f
@ -23,8 +23,8 @@ case "${LINUX}" in
|
|||||||
PKG_PATCH_DIRS="default"
|
PKG_PATCH_DIRS="default"
|
||||||
;;
|
;;
|
||||||
raspberrypi)
|
raspberrypi)
|
||||||
PKG_VERSION="bba53a117a4a5c29da892962332ff1605990e17a" # 6.6.78
|
PKG_VERSION="9c09b75242960117155712f41ce540df2e3cd63c" # 6.12.38
|
||||||
PKG_SHA256="901dbc05b56e519d1f0beaefa83dac4a8d915e5b5f85190fd1adda640c345287"
|
PKG_SHA256="efe2f6b14f4348c4930fdc1b2168fcdc7700034ba66393e860deb0f172a8083c"
|
||||||
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
|
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
|
||||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||||
;;
|
;;
|
||||||
|
@ -1,130 +0,0 @@
|
|||||||
From 7ac0b48fa963cbc7e8b1f3702a4ae8d1947e65a2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
||||||
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 <dave.stevenson@raspberrypi.com>
|
|
||||||
---
|
|
||||||
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 <dave.stevenson@raspberrypi.com>
|
|
||||||
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 <dave.stevenson@raspberrypi.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From 2d02a2c7531d2b7573237e0e7604b8d51c26583b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthias Reichl <hias@horus.com>
|
|
||||||
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 <hias@horus.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 0d692f7a53559259b1532b0503788f557e5ff182 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthias Reichl <hias@horus.com>
|
|
||||||
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 <hias@horus.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
From 826beca0ce76876507372349da860a986078eacd Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Istv=C3=A1n=20V=C3=A1radi?= <ivaradi@varadiistvan.hu>
|
|
||||||
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 <ivaradi@varadiistvan.hu>
|
|
||||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
||||||
[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
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user