mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 21:56:42 +00:00
Merge pull request #4030 from MilhouseVH/linux5.4.1+
linux (Generic/Allwinner): update to linux-5.4.7
This commit is contained in:
commit
76aed86327
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="6e4a7232ca12ed4cb42326a25e2ceb13c22c06d6"
|
||||
PKG_SHA256="b8408ed734c5749e6b03fd80eea079f880ff38f30114792a9113d76650184700"
|
||||
PKG_VERSION="0c01dbefba45a08c47f8538d5a071a0fba6b7e83"
|
||||
PKG_SHA256="3543067784571c818b95e1d3ff7c528713d67171511258c7baff313c89be7338"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.broadcom.com"
|
||||
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_VERSION="20191022"
|
||||
PKG_SHA256="2a4fdeeef9b585ada5225abf10cf32a84f6acb7d819740eb0ce1a88694ceb249"
|
||||
PKG_VERSION="c4586ffaac0ca0d7045e06140b6426f2e79e96e6"
|
||||
PKG_SHA256="fbdd163cdccfd6558bb6ea3b5173e3a512bb7aa371ca0934ab46903aeaa1dbef"
|
||||
PKG_LICENSE="other"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
|
||||
PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz"
|
||||
|
@ -23,14 +23,14 @@ case "$LINUX" in
|
||||
PKG_PATCH_DIRS="amlogic"
|
||||
;;
|
||||
raspberrypi)
|
||||
PKG_VERSION="d09e02c0ed86330168714b027c1669a80728d699" # 5.4.0
|
||||
PKG_SHA256="fae85fb4e995e190900b6719fb013568295e9154628847120983beb1fd8491b0"
|
||||
PKG_VERSION="75bb71002333cf134baeddffd0b6108049cd67f7" # 5.4.7
|
||||
PKG_SHA256="97f399bb27c3c1c0082c26c9911ba61d6735033123a728fec666015a406d1612"
|
||||
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="5.4"
|
||||
PKG_SHA256="bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491"
|
||||
PKG_VERSION="5.4.7"
|
||||
PKG_SHA256="abc9b21d9146d95853dac35f4c4489a0199aff53ee6eee4b0563d1b37079fcc9"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
|
@ -3,8 +3,8 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="6e4a7232ca12ed4cb42326a25e2ceb13c22c06d6"
|
||||
PKG_SHA256="b1fc7f5b123d9b4a91fde84cba56ae12b2e185951ebbfceb246f035e56f7ff34"
|
||||
PKG_VERSION="0c01dbefba45a08c47f8538d5a071a0fba6b7e83"
|
||||
PKG_SHA256="a42ccef8aa495eb591b4d0873efad29ab6ac27add7bc5caae720fa460c8b6544"
|
||||
PKG_ARCH="arm"
|
||||
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="82b6b1c32426d3bb787ecbcf78369d342acc75b4"
|
||||
PKG_SHA256="d052bb9d014611d3ada126308495ea8c98e82d25f855908abf6cbcdb7e875b27"
|
||||
PKG_VERSION="7d9512c741162b19fecfcfa15b46dd4e73a3cd19"
|
||||
PKG_SHA256="291db0258ce00cb45ec9a2c01746324d62cbf553930d0fca84fd2295f821b8f5"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="BSD-3/custom"
|
||||
PKG_SITE="https://github.com/raspberrypi/rpi-eeprom"
|
||||
|
@ -436,48 +436,6 @@ index eb379cd402ac..2557cc6c8d50 100644
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From fadfee3f9d8f114435a8a3e9f83a227600d89de7 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kurtz <djkurtz@chromium.org>
|
||||
Date: Tue, 8 Oct 2019 18:21:45 +0800
|
||||
Subject: [PATCH] drm/bridge: dw-hdmi: Restore audio when setting a mode
|
||||
|
||||
When setting a new display mode, dw_hdmi_setup() calls
|
||||
dw_hdmi_enable_video_path(), which disables all hdmi clocks, including
|
||||
the audio clock.
|
||||
|
||||
We should only (re-)enable the audio clock if audio was already enabled
|
||||
when setting the new mode.
|
||||
|
||||
Without this patch, on RK3288, there will be HDMI audio on some monitors
|
||||
if i2s was played to headphone when the monitor was plugged.
|
||||
ACER H277HU and ASUS PB278 are two of the monitors showing this issue.
|
||||
|
||||
Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
|
||||
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
|
||||
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Link: https://patchwork.freedesktop.org/patch/msgid/20191008102145.55134-1-cychiang@chromium.org
|
||||
---
|
||||
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
index fdc29869d75a..dbe38a54870b 100644
|
||||
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
@@ -2090,7 +2090,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
|
||||
|
||||
/* HDMI Initialization Step E - Configure audio */
|
||||
hdmi_clk_regenerator_update_pixel_clock(hdmi);
|
||||
- hdmi_enable_audio_clk(hdmi, true);
|
||||
+ hdmi_enable_audio_clk(hdmi, hdmi->audio_enable);
|
||||
}
|
||||
|
||||
/* not for DVI mode */
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From 8ae3a0862993c09a8ef0f9abb379553370c517e3 Mon Sep 17 00:00:00 2001
|
||||
From: Ricardo Ribalda Delgado <ribalda@kernel.org>
|
||||
Date: Mon, 7 Oct 2019 12:06:32 -0300
|
||||
@ -2301,54 +2259,6 @@ index 3d9e48ed8817..1d85e24791e4 100644
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From ae0688f659adb17ae6ae5710c886b20b5406e5c4 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
Date: Fri, 30 Aug 2019 06:26:22 -0300
|
||||
Subject: [PATCH] media: cedrus: fill in bus_info for media device
|
||||
|
||||
Fixes this compliance warning:
|
||||
|
||||
$ v4l2-compliance -m0
|
||||
v4l2-compliance SHA: b514d615166bdc0901a4c71261b87db31e89f464, 32 bits
|
||||
|
||||
Compliance test for cedrus device /dev/media0:
|
||||
|
||||
Media Driver Info:
|
||||
Driver name : cedrus
|
||||
Model : cedrus
|
||||
Serial :
|
||||
Bus info :
|
||||
Media version : 5.3.0
|
||||
Hardware revision: 0x00000000 (0)
|
||||
Driver version : 5.3.0
|
||||
|
||||
Required ioctls:
|
||||
warn: v4l2-test-media.cpp(51): empty bus_info
|
||||
test MEDIA_IOC_DEVICE_INFO: OK
|
||||
|
||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
Reviewed-by: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
---
|
||||
drivers/staging/media/sunxi/cedrus/cedrus.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
index 2d3ea8b74dfd..3439f6ad6338 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
|
||||
@@ -357,6 +357,8 @@ static int cedrus_probe(struct platform_device *pdev)
|
||||
|
||||
dev->mdev.dev = &pdev->dev;
|
||||
strscpy(dev->mdev.model, CEDRUS_NAME, sizeof(dev->mdev.model));
|
||||
+ strscpy(dev->mdev.bus_info, "platform:" CEDRUS_NAME,
|
||||
+ sizeof(dev->mdev.bus_info));
|
||||
|
||||
media_device_init(&dev->mdev);
|
||||
dev->mdev.ops = &cedrus_m2m_media_ops;
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From dec555256f2cb61ee94975727ec2d4a8d592ac92 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
Date: Fri, 30 Aug 2019 06:26:23 -0300
|
||||
@ -2750,121 +2660,6 @@ index 3ec3a2db790c..f745f66c4440 100644
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From 06eff2150d4db991ca236f3d05a9dc0101475aea Mon Sep 17 00:00:00 2001
|
||||
From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
Date: Tue, 22 Oct 2019 12:26:50 -0300
|
||||
Subject: [PATCH] media: cedrus: Fix undefined shift with a SHIFT_AND_MASK_BITS
|
||||
macro
|
||||
|
||||
We need to shift and mask values at different occasions to fill up
|
||||
cedrus registers. This was done using macros that don't explicitly
|
||||
treat arguments as unsigned, leading to possibly undefined behavior.
|
||||
|
||||
Introduce the SHIFT_AND_MASK_BITS macro and use it where possible.
|
||||
In cases where it doesn't apply as-is, explicitly cast to unsigned
|
||||
instead.
|
||||
|
||||
This macro should be moved to include/linux/bits.h eventually.
|
||||
|
||||
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
---
|
||||
.../staging/media/sunxi/cedrus/cedrus_regs.h | 31 ++++++++++---------
|
||||
1 file changed, 17 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
index ddd29788d685..f9dd8cbf3458 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
@@ -10,6 +10,9 @@
|
||||
#ifndef _CEDRUS_REGS_H_
|
||||
#define _CEDRUS_REGS_H_
|
||||
|
||||
+#define SHIFT_AND_MASK_BITS(v, h, l) \
|
||||
+ (((unsigned long)(v) << (l)) & GENMASK(h, l))
|
||||
+
|
||||
/*
|
||||
* Common acronyms and contractions used in register descriptions:
|
||||
* * VLD : Variable-Length Decoder
|
||||
@@ -37,8 +40,8 @@
|
||||
#define VE_PRIMARY_CHROMA_BUF_LEN 0xc4
|
||||
#define VE_PRIMARY_FB_LINE_STRIDE 0xc8
|
||||
|
||||
-#define VE_PRIMARY_FB_LINE_STRIDE_CHROMA(s) (((s) << 16) & GENMASK(31, 16))
|
||||
-#define VE_PRIMARY_FB_LINE_STRIDE_LUMA(s) (((s) << 0) & GENMASK(15, 0))
|
||||
+#define VE_PRIMARY_FB_LINE_STRIDE_CHROMA(s) SHIFT_AND_MASK_BITS(s, 31, 16)
|
||||
+#define VE_PRIMARY_FB_LINE_STRIDE_LUMA(s) SHIFT_AND_MASK_BITS(s, 15, 0)
|
||||
|
||||
#define VE_CHROMA_BUF_LEN 0xe8
|
||||
|
||||
@@ -46,7 +49,7 @@
|
||||
#define VE_SECONDARY_OUT_FMT_EXT (0x01 << 30)
|
||||
#define VE_SECONDARY_OUT_FMT_YU12 (0x02 << 30)
|
||||
#define VE_SECONDARY_OUT_FMT_YV12 (0x03 << 30)
|
||||
-#define VE_CHROMA_BUF_LEN_SDRT(l) ((l) & GENMASK(27, 0))
|
||||
+#define VE_CHROMA_BUF_LEN_SDRT(l) SHIFT_AND_MASK_BITS(l, 27, 0)
|
||||
|
||||
#define VE_PRIMARY_OUT_FMT 0xec
|
||||
|
||||
@@ -69,15 +72,15 @@
|
||||
|
||||
#define VE_DEC_MPEG_MP12HDR (VE_ENGINE_DEC_MPEG + 0x00)
|
||||
|
||||
-#define VE_DEC_MPEG_MP12HDR_SLICE_TYPE(t) (((t) << 28) & GENMASK(30, 28))
|
||||
+#define VE_DEC_MPEG_MP12HDR_SLICE_TYPE(t) SHIFT_AND_MASK_BITS(t, 30, 28)
|
||||
#define VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(x, y) (24 - 4 * (y) - 8 * (x))
|
||||
#define VE_DEC_MPEG_MP12HDR_F_CODE(__x, __y, __v) \
|
||||
- (((__v) & GENMASK(3, 0)) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(__x, __y))
|
||||
+ (((unsigned long)(__v) & GENMASK(3, 0)) << VE_DEC_MPEG_MP12HDR_F_CODE_SHIFT(__x, __y))
|
||||
|
||||
#define VE_DEC_MPEG_MP12HDR_INTRA_DC_PRECISION(p) \
|
||||
- (((p) << 10) & GENMASK(11, 10))
|
||||
+ SHIFT_AND_MASK_BITS(p, 11, 10)
|
||||
#define VE_DEC_MPEG_MP12HDR_INTRA_PICTURE_STRUCTURE(s) \
|
||||
- (((s) << 8) & GENMASK(9, 8))
|
||||
+ SHIFT_AND_MASK_BITS(s, 9, 8)
|
||||
#define VE_DEC_MPEG_MP12HDR_TOP_FIELD_FIRST(v) \
|
||||
((v) ? BIT(7) : 0)
|
||||
#define VE_DEC_MPEG_MP12HDR_FRAME_PRED_FRAME_DCT(v) \
|
||||
@@ -98,19 +101,19 @@
|
||||
#define VE_DEC_MPEG_PICCODEDSIZE (VE_ENGINE_DEC_MPEG + 0x08)
|
||||
|
||||
#define VE_DEC_MPEG_PICCODEDSIZE_WIDTH(w) \
|
||||
- ((DIV_ROUND_UP((w), 16) << 8) & GENMASK(15, 8))
|
||||
+ SHIFT_AND_MASK_BITS(DIV_ROUND_UP((w), 16), 15, 8)
|
||||
#define VE_DEC_MPEG_PICCODEDSIZE_HEIGHT(h) \
|
||||
- ((DIV_ROUND_UP((h), 16) << 0) & GENMASK(7, 0))
|
||||
+ SHIFT_AND_MASK_BITS(DIV_ROUND_UP((h), 16), 7, 0)
|
||||
|
||||
#define VE_DEC_MPEG_PICBOUNDSIZE (VE_ENGINE_DEC_MPEG + 0x0c)
|
||||
|
||||
-#define VE_DEC_MPEG_PICBOUNDSIZE_WIDTH(w) (((w) << 16) & GENMASK(27, 16))
|
||||
-#define VE_DEC_MPEG_PICBOUNDSIZE_HEIGHT(h) (((h) << 0) & GENMASK(11, 0))
|
||||
+#define VE_DEC_MPEG_PICBOUNDSIZE_WIDTH(w) SHIFT_AND_MASK_BITS(w, 27, 16)
|
||||
+#define VE_DEC_MPEG_PICBOUNDSIZE_HEIGHT(h) SHIFT_AND_MASK_BITS(h, 11, 0)
|
||||
|
||||
#define VE_DEC_MPEG_MBADDR (VE_ENGINE_DEC_MPEG + 0x10)
|
||||
|
||||
-#define VE_DEC_MPEG_MBADDR_X(w) (((w) << 8) & GENMASK(15, 8))
|
||||
-#define VE_DEC_MPEG_MBADDR_Y(h) (((h) << 0) & GENMASK(7, 0))
|
||||
+#define VE_DEC_MPEG_MBADDR_X(w) SHIFT_AND_MASK_BITS(w, 15, 8)
|
||||
+#define VE_DEC_MPEG_MBADDR_Y(h) SHIFT_AND_MASK_BITS(h, 7, 0)
|
||||
|
||||
#define VE_DEC_MPEG_CTRL (VE_ENGINE_DEC_MPEG + 0x14)
|
||||
|
||||
@@ -225,7 +228,7 @@
|
||||
#define VE_DEC_MPEG_IQMINPUT_FLAG_INTRA (0x01 << 14)
|
||||
#define VE_DEC_MPEG_IQMINPUT_FLAG_NON_INTRA (0x00 << 14)
|
||||
#define VE_DEC_MPEG_IQMINPUT_WEIGHT(i, v) \
|
||||
- (((v) & GENMASK(7, 0)) | (((i) << 8) & GENMASK(13, 8)))
|
||||
+ (SHIFT_AND_MASK_BITS(i, 13, 8) | SHIFT_AND_MASK_BITS(v, 7, 0))
|
||||
|
||||
#define VE_DEC_MPEG_ERROR (VE_ENGINE_DEC_MPEG + 0xc4)
|
||||
#define VE_DEC_MPEG_CRTMBADDR (VE_ENGINE_DEC_MPEG + 0xc8)
|
||||
--
|
||||
2.23.0
|
||||
|
||||
From c3b32900fbf5178473c6b39260e891e19067edc2 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
Date: Tue, 22 Oct 2019 12:26:51 -0300
|
||||
@ -4504,86 +4299,6 @@ index 6fc28d21a6c7..4275a307d282 100644
|
||||
--
|
||||
2.24.0
|
||||
|
||||
From 1d1d982e52956f07221d1229bcc6fbc564121da3 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
Date: Sat, 26 Oct 2019 09:27:52 +0200
|
||||
Subject: [PATCH] media: cedrus: Use helpers to access capture queue
|
||||
|
||||
Accessing capture queue structue directly is not safe. Use helpers for
|
||||
that.
|
||||
|
||||
Acked-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
|
||||
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||
---
|
||||
drivers/staging/media/sunxi/cedrus/cedrus.h | 8 ++++++--
|
||||
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 8 ++++++--
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h
|
||||
index 986e059e3202..c45fb9a7ad07 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
|
||||
@@ -197,12 +197,16 @@ static inline dma_addr_t cedrus_buf_addr(struct vb2_buffer *buf,
|
||||
static inline dma_addr_t cedrus_dst_buf_addr(struct cedrus_ctx *ctx,
|
||||
int index, unsigned int plane)
|
||||
{
|
||||
- struct vb2_buffer *buf;
|
||||
+ struct vb2_buffer *buf = NULL;
|
||||
+ struct vb2_queue *vq;
|
||||
|
||||
if (index < 0)
|
||||
return 0;
|
||||
|
||||
- buf = ctx->fh.m2m_ctx->cap_q_ctx.q.bufs[index];
|
||||
+ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
|
||||
+ if (vq)
|
||||
+ buf = vb2_get_buffer(vq, index);
|
||||
+
|
||||
return buf ? cedrus_buf_addr(buf, &ctx->dst_fmt, plane) : 0;
|
||||
}
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
|
||||
index db336449c4f2..7487f6ab7576 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
|
||||
@@ -97,7 +97,7 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
|
||||
const struct v4l2_ctrl_h264_decode_params *decode = run->h264.decode_params;
|
||||
const struct v4l2_ctrl_h264_slice_params *slice = run->h264.slice_params;
|
||||
const struct v4l2_ctrl_h264_sps *sps = run->h264.sps;
|
||||
- struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q;
|
||||
+ struct vb2_queue *cap_q;
|
||||
struct cedrus_buffer *output_buf;
|
||||
struct cedrus_dev *dev = ctx->dev;
|
||||
unsigned long used_dpbs = 0;
|
||||
@@ -105,6 +105,8 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
|
||||
unsigned int output = 0;
|
||||
unsigned int i;
|
||||
|
||||
+ cap_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
|
||||
+
|
||||
memset(pic_list, 0, sizeof(pic_list));
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(decode->dpb); i++) {
|
||||
@@ -168,12 +170,14 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
|
||||
enum cedrus_h264_sram_off sram)
|
||||
{
|
||||
const struct v4l2_ctrl_h264_decode_params *decode = run->h264.decode_params;
|
||||
- struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q;
|
||||
+ struct vb2_queue *cap_q;
|
||||
struct cedrus_dev *dev = ctx->dev;
|
||||
u8 sram_array[CEDRUS_MAX_REF_IDX];
|
||||
unsigned int i;
|
||||
size_t size;
|
||||
|
||||
+ cap_q = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE);
|
||||
+
|
||||
memset(sram_array, 0, sizeof(sram_array));
|
||||
|
||||
for (i = 0; i < num_ref; i++) {
|
||||
--
|
||||
2.24.0
|
||||
|
||||
From e2c02ba9bd0068b00628d7874d8a8d1eb5168177 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Tue, 29 Oct 2019 00:00:52 +0000
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.4.0 Kernel Configuration
|
||||
# Linux/arm 5.4.7 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -3453,6 +3453,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
|
||||
CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.4.0 Kernel Configuration
|
||||
# Linux/arm 5.4.7 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -3580,6 +3580,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
|
||||
CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
|
||||
|
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.4.0 Kernel Configuration
|
||||
# Linux/arm 5.4.7 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
@ -4180,6 +4180,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
|
||||
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
|
||||
CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
|
||||
|
@ -866,7 +866,7 @@ diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/
|
||||
index 16a21460f481..d77fb8af61b8 100644
|
||||
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
@@ -581,6 +581,26 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk)
|
||||
@@ -591,6 +591,26 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk)
|
||||
return n;
|
||||
}
|
||||
|
||||
@ -2519,15 +2519,15 @@ diff --git a/drivers/media/platform/meson/ao-cec-g12a.c b/drivers/media/platform
|
||||
index 3b39e875292e..70f875b4a01e 100644
|
||||
--- a/drivers/media/platform/meson/ao-cec-g12a.c
|
||||
+++ b/drivers/media/platform/meson/ao-cec-g12a.c
|
||||
@@ -736,7 +736,7 @@ static int meson_ao_cec_g12a_probe(struct platform_device *pdev)
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@@ -733,7 +733,7 @@ static int meson_ao_cec_g12a_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
out_probe_notify:
|
||||
- cec_notifier_cec_adap_unregister(ao_cec->notify);
|
||||
+ cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap);
|
||||
|
||||
out_probe_adapter:
|
||||
cec_delete_adapter(ao_cec->adap);
|
||||
out_probe_core_clk:
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@@ -752,7 +752,7 @@ static int meson_ao_cec_g12a_remove(struct platform_device *pdev)
|
||||
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@ -2541,15 +2541,15 @@ diff --git a/drivers/media/platform/meson/ao-cec.c b/drivers/media/platform/meso
|
||||
index 64ed549bf012..92859a6d006f 100644
|
||||
--- a/drivers/media/platform/meson/ao-cec.c
|
||||
+++ b/drivers/media/platform/meson/ao-cec.c
|
||||
@@ -688,7 +688,7 @@ static int meson_ao_cec_probe(struct platform_device *pdev)
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@@ -685,7 +685,7 @@ static int meson_ao_cec_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
out_probe_notify:
|
||||
- cec_notifier_cec_adap_unregister(ao_cec->notify);
|
||||
+ cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap);
|
||||
|
||||
out_probe_adapter:
|
||||
cec_delete_adapter(ao_cec->adap);
|
||||
out_probe_clk:
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@@ -704,7 +704,7 @@ static int meson_ao_cec_remove(struct platform_device *pdev)
|
||||
|
||||
clk_disable_unprepare(ao_cec->core);
|
||||
@ -2594,7 +2594,7 @@ index 9cd60fe1867c..54b0d51e9c55 100644
|
||||
err_delete_adapter:
|
||||
cec_delete_adapter(secocec->cec_adap);
|
||||
err:
|
||||
@@ -692,7 +692,7 @@ static int secocec_remove(struct platform_device *pdev)
|
||||
@@ -693,7 +693,7 @@ static int secocec_remove(struct platform_device *pdev)
|
||||
|
||||
dev_dbg(&pdev->dev, "IR disabled");
|
||||
}
|
||||
@ -2674,61 +2674,6 @@ index f161f8a493ac..985afea1ee36 100644
|
||||
}
|
||||
|
||||
|
||||
From 52f95b4aeeb11cedfba0705a005106b0cfd4785f Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Kaehlcke <mka@chromium.org>
|
||||
Date: Wed, 2 Oct 2019 12:44:06 -0700
|
||||
Subject: [PATCH] drm/bridge: dw-hdmi: Refuse DDC/CI transfers on the internal
|
||||
I2C controller
|
||||
|
||||
The DDC/CI protocol involves sending a multi-byte request to the
|
||||
display via I2C, which is typically followed by a multi-byte
|
||||
response. The internal I2C controller only allows single byte
|
||||
reads/writes or reads of 8 sequential bytes, hence DDC/CI is not
|
||||
supported when the internal I2C controller is used. The I2C
|
||||
transfers complete without errors, however the data in the response
|
||||
is garbage. Abort transfers to/from slave address 0x37 (DDC) with
|
||||
-EOPNOTSUPP, to make it evident that the communication is failing.
|
||||
|
||||
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
|
||||
Reviewed-by: Douglas Anderson <dianders@chromium.org>
|
||||
Reviewed-by: Sean Paul <sean@poorly.run>
|
||||
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Link: https://patchwork.freedesktop.org/patch/msgid/20191002124354.v2.1.I709dfec496f5f0b44a7b61dcd4937924da8d8382@changeid
|
||||
(cherry picked from commit bee447e224b2645911c5d06e35dc90d8433fcef6)
|
||||
---
|
||||
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
index d77fb8af61b8..a15fbf71b9d7 100644
|
||||
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "dw-hdmi-cec.h"
|
||||
#include "dw-hdmi.h"
|
||||
|
||||
+#define DDC_CI_ADDR 0x37
|
||||
#define DDC_SEGMENT_ADDR 0x30
|
||||
|
||||
#define HDMI_EDID_LEN 512
|
||||
@@ -399,6 +400,15 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap,
|
||||
u8 addr = msgs[0].addr;
|
||||
int i, ret = 0;
|
||||
|
||||
+ if (addr == DDC_CI_ADDR)
|
||||
+ /*
|
||||
+ * The internal I2C controller does not support the multi-byte
|
||||
+ * read and write operations needed for DDC/CI.
|
||||
+ * TOFIX: Blacklist the DDC/CI address until we filter out
|
||||
+ * unsupported I2C operations.
|
||||
+ */
|
||||
+ return -EOPNOTSUPP;
|
||||
+
|
||||
dev_dbg(hdmi->dev, "xfer: num: %d, addr: %#x\n", num, addr);
|
||||
|
||||
for (i = 0; i < num; i++) {
|
||||
|
||||
From 70c8f3b12f466b6a53e88f43f7da12ef04cb4ad2 Mon Sep 17 00:00:00 2001
|
||||
From: Douglas Anderson <dianders@chromium.org>
|
||||
Date: Thu, 3 Oct 2019 11:47:30 -0700
|
||||
@ -4094,47 +4039,6 @@ index efbdff6a2484..7a9d979c8d5d 100644
|
||||
|
||||
static const struct vop_misc rk3328_misc = {
|
||||
|
||||
From 25f6e77b2033ba8f0af8c547d6ace6ec70b8482b Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Kurtz <djkurtz@chromium.org>
|
||||
Date: Tue, 8 Oct 2019 18:21:45 +0800
|
||||
Subject: [PATCH] drm/bridge: dw-hdmi: Restore audio when setting a mode
|
||||
|
||||
When setting a new display mode, dw_hdmi_setup() calls
|
||||
dw_hdmi_enable_video_path(), which disables all hdmi clocks, including
|
||||
the audio clock.
|
||||
|
||||
We should only (re-)enable the audio clock if audio was already enabled
|
||||
when setting the new mode.
|
||||
|
||||
Without this patch, on RK3288, there will be HDMI audio on some monitors
|
||||
if i2s was played to headphone when the monitor was plugged.
|
||||
ACER H277HU and ASUS PB278 are two of the monitors showing this issue.
|
||||
|
||||
Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
|
||||
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
|
||||
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Link: https://patchwork.freedesktop.org/patch/msgid/20191008102145.55134-1-cychiang@chromium.org
|
||||
(cherry picked from commit fadfee3f9d8f114435a8a3e9f83a227600d89de7)
|
||||
---
|
||||
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
index fdc29869d75a..dbe38a54870b 100644
|
||||
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
|
||||
@@ -2090,7 +2090,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
|
||||
|
||||
/* HDMI Initialization Step E - Configure audio */
|
||||
hdmi_clk_regenerator_update_pixel_clock(hdmi);
|
||||
- hdmi_enable_audio_clk(hdmi, true);
|
||||
+ hdmi_enable_audio_clk(hdmi, hdmi->audio_enable);
|
||||
}
|
||||
|
||||
/* not for DVI mode */
|
||||
|
||||
From a5b2731ba8ddaa259c55eed691ca68f2f21fb2f9 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Jonker <jbx6244@gmail.com>
|
||||
Date: Mon, 14 Oct 2019 23:06:19 +0200
|
||||
@ -13365,7 +13269,7 @@ diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm
|
||||
index 4139f129eafb..0bdf2e1e889c 100644
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -4837,7 +4837,13 @@ static int to_drm_connector_type(enum signal_type st)
|
||||
@@ -4842,7 +4842,13 @@ static int to_drm_connector_type(enum signal_type st)
|
||||
|
||||
static struct drm_encoder *amdgpu_dm_connector_to_encoder(struct drm_connector *connector)
|
||||
{
|
||||
@ -13532,7 +13436,7 @@ diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/d
|
||||
index b46be8a091e9..a13924ae1992 100644
|
||||
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
|
||||
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
|
||||
@@ -2392,7 +2392,7 @@ nv50_display_create(struct drm_device *dev)
|
||||
@@ -2412,7 +2412,7 @@ nv50_display_create(struct drm_device *dev)
|
||||
|
||||
/* cull any connectors we created that don't have an encoder */
|
||||
list_for_each_entry_safe(connector, tmp, &dev->mode_config.connector_list, head) {
|
||||
@ -13717,3 +13621,27 @@ index 681cb590f952..c6e993e78dbd 100644
|
||||
+ (connector)->possible_encoders)
|
||||
|
||||
#endif
|
||||
From a819406b547a71a78fa0a3402e03e795b58a7c04 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Jan 2020 10:49:11 +0000
|
||||
Subject: [PATCH] Revert "net: stmmac: platform: Fix MDIO init for platforms
|
||||
without PHY"
|
||||
|
||||
This reverts commit bfdbfd28f76028b960458d107dc4ae9240c928b3.
|
||||
---
|
||||
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
index 1f230bd854c4..170c3a052b14 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
@@ -320,7 +320,7 @@ static int stmmac_mtl_setup(struct platform_device *pdev,
|
||||
static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
|
||||
struct device_node *np, struct device *dev)
|
||||
{
|
||||
- bool mdio = false;
|
||||
+ bool mdio = true;
|
||||
static const struct of_device_id need_mdio_ids[] = {
|
||||
{ .compatible = "snps,dwc-qos-ethernet-4.10" },
|
||||
{},
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user