mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-03-03 05:26:52 +00:00
Merge pull request #5853 from heitbaum/kernel11
linux: update to 5.15.y
This commit is contained in:
commit
134230d439
@ -28,8 +28,8 @@ case "${LINUX}" in
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="5.15"
|
||||
PKG_SHA256="57b2cf6991910e3b67a1b3490022e8a0674b6965c74c12da1e99d138d1991ee8"
|
||||
PKG_VERSION="5.15.5"
|
||||
PKG_SHA256="e9565a301525ac81c142ceb832f9053dd5685e107dbcf753d0de4c58bc98851f"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
|
@ -0,0 +1,135 @@
|
||||
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: 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 8176769a89fa4..0f3d6b5667b07 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;
|
||||
--
|
||||
cgit 1.2.3-1.el7
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.15.0 Kernel Configuration
|
||||
# Linux/arm64 5.15.4 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1355,6 +1355,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
@ -3245,7 +3247,9 @@ CONFIG_RC_XBOX_DVD=y
|
||||
# CONFIG_IR_TOY is not set
|
||||
CONFIG_CEC_CORE=y
|
||||
CONFIG_CEC_NOTIFIER=y
|
||||
CONFIG_CEC_PIN=y
|
||||
# CONFIG_MEDIA_CEC_RC is not set
|
||||
# CONFIG_CEC_PIN_ERROR_INJ is not set
|
||||
CONFIG_MEDIA_CEC_SUPPORT=y
|
||||
# CONFIG_CEC_CH7322 is not set
|
||||
# CONFIG_CEC_GPIO is not set
|
||||
@ -6098,6 +6102,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
# CONFIG_PSTORE_CONSOLE is not set
|
||||
# CONFIG_PSTORE_PMSG is not set
|
||||
# CONFIG_PSTORE_RAM is not set
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.15.0 Kernel Configuration
|
||||
# Linux/arm 5.15.3 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="armv7a-libreelec-linux-gnueabihf-gcc-10.3.0 (GCC) 10.3.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1074,6 +1074,10 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
# CONFIG_CFG80211_DEBUGFS is not set
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
@ -5986,7 +5990,6 @@ CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_EXPORTFS=y
|
||||
# CONFIG_EXPORTFS_BLOCK_OPS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_MANDATORY_FILE_LOCKING=y
|
||||
# CONFIG_FS_ENCRYPTION is not set
|
||||
# CONFIG_FS_VERITY is not set
|
||||
CONFIG_FSNOTIFY=y
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.15.0 Kernel Configuration
|
||||
# Linux/arm64 5.15.3 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1355,6 +1355,10 @@ CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
|
||||
# CONFIG_CFG80211_DEBUGFS is not set
|
||||
# CONFIG_CFG80211_CRDA_SUPPORT is not set
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.15.0 Kernel Configuration
|
||||
# Linux/arm 5.15.4 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="armv7ve-libreelec-linux-gnueabihf-gcc-10.3.0 (GCC) 10.3.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1049,6 +1049,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
@ -5726,6 +5728,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_PMSG=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.15.0 Kernel Configuration
|
||||
# Linux/arm64 5.15.4 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1281,6 +1281,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
@ -5728,6 +5730,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_PMSG=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.15.0 Kernel Configuration
|
||||
# Linux/arm64 5.15.4 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1282,6 +1282,8 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
@ -6437,6 +6439,7 @@ CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
|
||||
CONFIG_PSTORE_CONSOLE=y
|
||||
CONFIG_PSTORE_PMSG=y
|
||||
CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_PSTORE_BLK is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_EROFS_FS is not set
|
||||
|
@ -1244,42 +1244,6 @@ index 618849186c39..11825909c5db 100644
|
||||
compatible = "rockchip,rk3568-pinctrl";
|
||||
rockchip,grf = <&grf>;
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Brugger <mbrugger@suse.com>
|
||||
Date: Thu, 15 Jul 2021 18:41:01 +0200
|
||||
Subject: [PATCH] arm64: dts: rockchip: Disable CDN DP on Pinebook Pro
|
||||
|
||||
The CDN DP needs a PHY and a extcon to work correctly. But no extcon is
|
||||
provided by the device-tree, which leads to an error:
|
||||
cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy
|
||||
cdn-dp: probe of fec00000.dp failed with error -22
|
||||
|
||||
Disable the CDN DP to make graphic work on the Pinebook Pro.
|
||||
|
||||
Reported-by: Guillaume Gardet <guillaume.gardet@arm.com>
|
||||
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
|
||||
Link: https://lore.kernel.org/r/20210715164101.11486-1-matthias.bgg@kernel.org
|
||||
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
index 2b5f001ff4a6..9e5d07f5712e 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
@@ -385,10 +385,6 @@ mains_charger: dc-charger {
|
||||
};
|
||||
};
|
||||
|
||||
-&cdn_dp {
|
||||
- status = "okay";
|
||||
-};
|
||||
-
|
||||
&cpu_b0 {
|
||||
cpu-supply = <&vdd_cpu_b>;
|
||||
};
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Bee <knaerzche@gmail.com>
|
||||
Date: Fri, 18 Jun 2021 20:12:52 +0200
|
||||
|
@ -289,37 +289,6 @@ index 95fedcf56e4a..38e75b275bb6 100644
|
||||
|
||||
host->ios.clock = 0;
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Bee <knaerzche@gmail.com>
|
||||
Date: Wed, 23 Jun 2021 13:59:26 +0200
|
||||
Subject: [PATCH] arm64: dts: rockchip: Fix GPU register width for RK3328
|
||||
|
||||
As can be seen in RK3328's TRM the register range for the GPU is
|
||||
0xff300000 to 0xff330000.
|
||||
It would (and does in vendor kernel) overlap with the registers of
|
||||
the HEVC encoder (node/driver do not exist yet in upstream kernel).
|
||||
See already existing h265e_mmu node.
|
||||
|
||||
Fixes: 752fbc0c8da7 ("arm64: dts: rockchip: add rk3328 mali gpu node")
|
||||
Signed-off-by: Alex Bee <knaerzche@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
index becc1c61b182..5b2020590f53 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||
@@ -599,7 +599,7 @@ saradc: adc@ff280000 {
|
||||
|
||||
gpu: gpu@ff300000 {
|
||||
compatible = "rockchip,rk3328-mali", "arm,mali-450";
|
||||
- reg = <0x0 0xff300000 0x0 0x40000>;
|
||||
+ reg = <0x0 0xff300000 0x0 0x30000>;
|
||||
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Bee <knaerzche@gmail.com>
|
||||
Date: Wed, 23 Jun 2021 16:59:18 +0200
|
||||
|
@ -161,40 +161,6 @@ index 9852c3519f56..f3ff3e709169 100644
|
||||
WRITE_PPS(sps->log2_max_frame_num_minus4, LOG2_MAX_FRAME_NUM_MINUS4);
|
||||
WRITE_PPS(sps->max_num_ref_frames, MAX_NUM_REF_FRAMES);
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Jul 2020 21:54:35 +0000
|
||||
Subject: [PATCH] media: rkvdec: h264: Do not override output buffer sizeimage
|
||||
|
||||
The output buffer sizeimage is currently forced to 2 bytes per pixel, this
|
||||
can lead to high memory usage for 4K content when multiple output buffers
|
||||
is created by userspace.
|
||||
|
||||
Do not override output buffer sizeimage and let userspace have control of
|
||||
output buffer sizeimage by only setting sizeimage if none is provided.
|
||||
|
||||
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
||||
---
|
||||
drivers/staging/media/rkvdec/rkvdec-h264.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
|
||||
index f3ff3e709169..503ae683d0fd 100644
|
||||
--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
|
||||
+++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
|
||||
@@ -1015,8 +1015,9 @@ static int rkvdec_h264_adjust_fmt(struct rkvdec_ctx *ctx,
|
||||
struct v4l2_pix_format_mplane *fmt = &f->fmt.pix_mp;
|
||||
|
||||
fmt->num_planes = 1;
|
||||
- fmt->plane_fmt[0].sizeimage = fmt->width * fmt->height *
|
||||
- RKVDEC_H264_MAX_DEPTH_IN_BYTES;
|
||||
+ if (!fmt->plane_fmt[0].sizeimage)
|
||||
+ fmt->plane_fmt[0].sizeimage = fmt->width * fmt->height *
|
||||
+ RKVDEC_H264_MAX_DEPTH_IN_BYTES;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Jul 2020 21:54:35 +0000
|
||||
|
@ -3650,31 +3650,6 @@ index fbaf0303f7c2..2c0c6dcbd066 100644
|
||||
}
|
||||
};
|
||||
|
||||
@@ -373,7 +421,7 @@ static int rkvdec_s_output_fmt(struct file *file, void *priv,
|
||||
struct v4l2_m2m_ctx *m2m_ctx = ctx->fh.m2m_ctx;
|
||||
const struct rkvdec_coded_fmt_desc *desc;
|
||||
struct v4l2_format *cap_fmt;
|
||||
- struct vb2_queue *peer_vq;
|
||||
+ struct vb2_queue *peer_vq, *vq;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
@@ -385,6 +433,15 @@ static int rkvdec_s_output_fmt(struct file *file, void *priv,
|
||||
if (vb2_is_busy(peer_vq))
|
||||
return -EBUSY;
|
||||
|
||||
+ /*
|
||||
+ * Some codecs like VP9 can contain dynamic resolution changes which
|
||||
+ * are currently not supported by the V4L2 API or driver, so return
|
||||
+ * an error if userspace tries to reconfigure the output format.
|
||||
+ */
|
||||
+ vq = v4l2_m2m_get_vq(m2m_ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE);
|
||||
+ if (vb2_is_busy(vq))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
ret = rkvdec_s_fmt(file, priv, f, rkvdec_try_output_fmt);
|
||||
if (ret)
|
||||
return ret;
|
||||
diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
|
||||
index fa24bcb6ff42..18dd721172d8 100644
|
||||
--- a/drivers/staging/media/rkvdec/rkvdec.h
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.15.0 Kernel Configuration
|
||||
# Linux/arm 5.15.3 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="armv7ve-libreelec-linux-gnueabihf-gcc-10.3.0 (GCC) 10.3.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
@ -1014,6 +1014,10 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
# CONFIG_CFG80211_DEBUGFS is not set
|
||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_LIB80211=m
|
||||
CONFIG_LIB80211_CRYPT_WEP=m
|
||||
CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
# CONFIG_LIB80211_DEBUG is not set
|
||||
CONFIG_MAC80211=m
|
||||
CONFIG_MAC80211_HAS_RC=y
|
||||
CONFIG_MAC80211_RC_MINSTREL=y
|
||||
|
@ -73,9 +73,9 @@ index f4b4a7c135eb..8accf13fe439 100644
|
||||
- return sgt;
|
||||
-}
|
||||
-
|
||||
static struct dma_buf *vb2_dc_get_dmabuf(void *buf_priv, unsigned long flags)
|
||||
{
|
||||
struct vb2_dc_buf *buf = buf_priv;
|
||||
static struct dma_buf *vb2_dc_get_dmabuf(struct vb2_buffer *vb,
|
||||
void *buf_priv,
|
||||
unsigned long flags)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user