mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 06:06:43 +00:00
Merge pull request #5930 from HiassofT/le11-kernel-5.15.5
linux (RPi): update to 5.15.5-b12c997
This commit is contained in:
commit
26827cae14
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="fa9a00624e7d5d3dcdb297dff132dc32cc2d9a25"
|
||||
PKG_SHA256="4154c55b6cb8552138a4d9a74b35a4ae006f6d313c675f682ffdf1b0f555241a"
|
||||
PKG_VERSION="12bc6e3677348adaffd155e7a04761e2661d4bff"
|
||||
PKG_SHA256="72dd2ebb50f5d0c69d010ac5ce9d820a6803692c687ce166fdba81be5e4274ce"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -22,8 +22,8 @@ case "${LINUX}" in
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
raspberrypi)
|
||||
PKG_VERSION="027a7a824320f69f6b30503c7fcf6aea2ffd56fd" # 5.15.2
|
||||
PKG_SHA256="45eef0a1c0cb326500e41f9f6ca29c680b1420103844f27d2c3509b9c9287d20"
|
||||
PKG_VERSION="b12c997cf2c8cad9bb1de234684ce6fea78c5725" # 5.15.5
|
||||
PKG_SHA256="cc7fff474db3efbe4ed1f444deb5f48902d22fc954cc771702400491d16dee9a"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
|
@ -1,135 +0,0 @@
|
||||
From 678d92b6126b9f55419b6a51ef0a88bce2ef2f20 Mon Sep 17 00:00:00 2001
|
||||
From: Arnd Bergmann <arnd@arndb.de>
|
||||
Date: Tue, 26 Oct 2021 06:49:54 +0100
|
||||
Subject: [PATCH] media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86
|
||||
|
||||
My previous bugfix addressed an API inconsistency found by syzbot,
|
||||
and it correctly fixed the issue on x86-64 machines, which now behave
|
||||
correctly for both native and compat tasks.
|
||||
|
||||
Unfortunately, John found that the patch broke compat mode on all other
|
||||
architectures, as they can no longer rely on the VIDIOC_DQEVENT_TIME32
|
||||
code from the native handler as a fallback in the compat code.
|
||||
|
||||
The best way I can see for addressing this is to generalize the
|
||||
VIDIOC_DQEVENT32_TIME32 code from x86 and use that for all architectures,
|
||||
leaving only the VIDIOC_DQEVENT32 variant as x86 specific. The original
|
||||
code was trying to be clever and use the same conversion helper for native
|
||||
32-bit code and compat mode, but that turned out to be too obscure so
|
||||
even I missed that bit I had introduced myself when I made the fix.
|
||||
|
||||
Fixes: c344f07aa1b4 ("media: v4l2-core: ignore native time32 ioctls on 64-bit")
|
||||
Reported-by: John Stultz <john.stultz@linaro.org>
|
||||
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||||
Tested-by: John Stultz <john.stultz@linaro.org>
|
||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
||||
---
|
||||
drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 41 ++++++++-----------
|
||||
1 file changed, 17 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
||||
index 8176769a89fa..0f3d6b5667b0 100644
|
||||
--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
||||
+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
|
||||
@@ -751,10 +751,6 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *p64,
|
||||
/*
|
||||
* x86 is the only compat architecture with different struct alignment
|
||||
* between 32-bit and 64-bit tasks.
|
||||
- *
|
||||
- * On all other architectures, v4l2_event32 and v4l2_event32_time32 are
|
||||
- * the same as v4l2_event and v4l2_event_time32, so we can use the native
|
||||
- * handlers, converting v4l2_event to v4l2_event_time32 if necessary.
|
||||
*/
|
||||
struct v4l2_event32 {
|
||||
__u32 type;
|
||||
@@ -772,21 +768,6 @@ struct v4l2_event32 {
|
||||
__u32 reserved[8];
|
||||
};
|
||||
|
||||
-#ifdef CONFIG_COMPAT_32BIT_TIME
|
||||
-struct v4l2_event32_time32 {
|
||||
- __u32 type;
|
||||
- union {
|
||||
- compat_s64 value64;
|
||||
- __u8 data[64];
|
||||
- } u;
|
||||
- __u32 pending;
|
||||
- __u32 sequence;
|
||||
- struct old_timespec32 timestamp;
|
||||
- __u32 id;
|
||||
- __u32 reserved[8];
|
||||
-};
|
||||
-#endif
|
||||
-
|
||||
static int put_v4l2_event32(struct v4l2_event *p64,
|
||||
struct v4l2_event32 __user *p32)
|
||||
{
|
||||
@@ -802,7 +783,22 @@ static int put_v4l2_event32(struct v4l2_event *p64,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
||||
+struct v4l2_event32_time32 {
|
||||
+ __u32 type;
|
||||
+ union {
|
||||
+ compat_s64 value64;
|
||||
+ __u8 data[64];
|
||||
+ } u;
|
||||
+ __u32 pending;
|
||||
+ __u32 sequence;
|
||||
+ struct old_timespec32 timestamp;
|
||||
+ __u32 id;
|
||||
+ __u32 reserved[8];
|
||||
+};
|
||||
+
|
||||
static int put_v4l2_event32_time32(struct v4l2_event *p64,
|
||||
struct v4l2_event32_time32 __user *p32)
|
||||
{
|
||||
@@ -818,7 +814,6 @@ static int put_v4l2_event32_time32(struct v4l2_event *p64,
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
-#endif
|
||||
|
||||
struct v4l2_edid32 {
|
||||
__u32 pad;
|
||||
@@ -880,9 +875,7 @@ static int put_v4l2_edid32(struct v4l2_edid *p64,
|
||||
#define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
|
||||
#define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
|
||||
#define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
|
||||
-#ifdef CONFIG_X86_64
|
||||
#define VIDIOC_DQEVENT32_TIME32 _IOR ('V', 89, struct v4l2_event32_time32)
|
||||
-#endif
|
||||
#define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
|
||||
#endif
|
||||
|
||||
@@ -936,10 +929,10 @@ unsigned int v4l2_compat_translate_cmd(unsigned int cmd)
|
||||
#ifdef CONFIG_X86_64
|
||||
case VIDIOC_DQEVENT32:
|
||||
return VIDIOC_DQEVENT;
|
||||
+#endif
|
||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
||||
case VIDIOC_DQEVENT32_TIME32:
|
||||
return VIDIOC_DQEVENT;
|
||||
-#endif
|
||||
#endif
|
||||
}
|
||||
return cmd;
|
||||
@@ -1032,10 +1025,10 @@ int v4l2_compat_put_user(void __user *arg, void *parg, unsigned int cmd)
|
||||
#ifdef CONFIG_X86_64
|
||||
case VIDIOC_DQEVENT32:
|
||||
return put_v4l2_event32(parg, arg);
|
||||
+#endif
|
||||
#ifdef CONFIG_COMPAT_32BIT_TIME
|
||||
case VIDIOC_DQEVENT32_TIME32:
|
||||
return put_v4l2_event32_time32(parg, arg);
|
||||
-#endif
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
--
|
||||
2.30.2
|
||||
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="fa9a00624e7d5d3dcdb297dff132dc32cc2d9a25"
|
||||
PKG_SHA256="67cf704e44ebbb0037cec922c8d46ba0e9d55789ce66085893c62e7979b13fbb"
|
||||
PKG_VERSION="12bc6e3677348adaffd155e7a04761e2661d4bff"
|
||||
PKG_SHA256="fdd99713fbd53333df5e7c34ae10aeb117f272d3c03694bf4c99f3195bdfd990"
|
||||
PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="rpi-eeprom"
|
||||
PKG_VERSION="47976e4409c6999a8e211976c75c60a97c90275c"
|
||||
PKG_SHA256="fe67e174d897c6e29549129522c2fbce2404142e098c3c809c2a3b26b5708055"
|
||||
PKG_VERSION="12907d02ffe70c017de6e21e7adcce2303f9159f"
|
||||
PKG_SHA256="5950ae2a6b91ee5de1278daae707ad919c7751e836cf4c628554c72a2a734504"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="BSD-3/custom"
|
||||
PKG_SITE="https://github.com/raspberrypi/rpi-eeprom"
|
||||
@ -45,6 +45,7 @@ makeinstall_target() {
|
||||
cp -PRv ${PKG_DIR}/source/rpi-eeprom-update ${INSTALL}/usr/bin
|
||||
cp -PRv ${PKG_BUILD}/rpi-eeprom-update ${INSTALL}/usr/bin/.rpi-eeprom-update.real
|
||||
cp -PRv ${PKG_BUILD}/rpi-eeprom-config ${INSTALL}/usr/bin
|
||||
cp -PRv ${PKG_BUILD}/rpi-eeprom-digest ${INSTALL}/usr/bin
|
||||
|
||||
mkdir -p ${INSTALL}/etc/default
|
||||
cp -PRv ${PKG_DIR}/config/* ${INSTALL}/etc/default
|
||||
|
Loading…
x
Reference in New Issue
Block a user