Merge pull request #4889 from HiassofT/le10-kernel-5.10.5

linux (RPi): update to 5.10.5
This commit is contained in:
Jernej Škrabec 2021-01-07 18:51:35 +01:00 committed by GitHub
commit 34e82b6736
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 130 deletions

View File

@ -3,8 +3,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="bcm2835-driver"
PKG_VERSION="d06d94e8f171362214edc7aef6e74329ab6cb588"
PKG_SHA256="73930d441d724bb83dee5fb2a4e1dd842fffb2ed3b4070bc3afaad9fec6de623"
PKG_VERSION="481ccbbbe505c9ac0a9f105a3be86b498a25baa9"
PKG_SHA256="78010d22c9011bd2e4d9f53f0bfd1495b742d2b939b98207484b5f8db3e9c92f"
PKG_LICENSE="nonfree"
PKG_SITE="http://www.broadcom.com"
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"

View File

@ -16,8 +16,8 @@ PKG_PATCH_DIRS="$LINUX"
case "$LINUX" in
raspberrypi)
PKG_VERSION="b32354539bd4e3cff29eda643b5d3a983a24c063" # 5.10.4
PKG_SHA256="ca4731ace105c456e0f7b6676b159ea3ddc38a9c7757ba8358a7e2b9714858c7"
PKG_VERSION="a7eebc039b08185dfe72c2bbe8275e930b37b575" # 5.10.5
PKG_SHA256="1307a7b2bf4be953b8144dfda65853a252acabcc366fe4ccdb856a8acb439d02"
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
;;

View File

@ -1,124 +0,0 @@
From fe32fdaa926c43a8d8cab29193e69fd80423080e Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Wed, 30 Dec 2020 14:51:29 +0000
Subject: [PATCH 1/2] bcm2835-dma: Add bcm2835-dma: Add DMA_WIDE_SOURCE and
DMA_WIDE_DEST flags
Use bits 28 and 29 of the dreq value (the second cell of the DT DMA descriptor)
to request that wide source reads or wide dest writes are required
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
drivers/dma/bcm2835-dma.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c
index 0cbfa9d559a27..33e44f14aa921 100644
--- a/drivers/dma/bcm2835-dma.c
+++ b/drivers/dma/bcm2835-dma.c
@@ -171,6 +171,17 @@ struct bcm2835_desc {
#define WAIT_RESP(x) ((x & BCM2835_DMA_NO_WAIT_RESP) ? \
0 : BCM2835_DMA_WAIT_RESP)
+/* A fake bit to request that the driver requires wide reads */
+#define BCM2835_DMA_WIDE_SOURCE BIT(28)
+#define WIDE_SOURCE(x) ((x & BCM2835_DMA_WIDE_SOURCE) ? \
+ BCM2835_DMA_S_WIDTH : 0)
+
+/* A fake bit to request that the driver requires wide writes */
+#define BCM2835_DMA_WIDE_DEST BIT(29)
+#define WIDE_DEST(x) ((x & BCM2835_DMA_WIDE_DEST) ? \
+ BCM2835_DMA_D_WIDTH : 0)
+
+
/* debug register bits */
#define BCM2835_DMA_DEBUG_LAST_NOT_SET_ERR BIT(0)
#define BCM2835_DMA_DEBUG_FIFO_ERR BIT(1)
@@ -850,8 +861,9 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_memcpy(
{
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
- u32 info = BCM2835_DMA_D_INC | BCM2835_DMA_S_INC;
- u32 extra = BCM2835_DMA_INT_EN | WAIT_RESP(c->dreq);
+ u32 info = BCM2835_DMA_D_INC | BCM2835_DMA_S_INC | WAIT_RESP(c->dreq) |
+ WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq);
+ u32 extra = BCM2835_DMA_INT_EN;
size_t max_len = bcm2835_dma_max_frame_length(c);
size_t frames;
@@ -881,7 +893,8 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_slave_sg(
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
dma_addr_t src = 0, dst = 0;
- u32 info = WAIT_RESP(c->dreq);
+ u32 info = WAIT_RESP(c->dreq) |
+ WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq);
u32 extra = BCM2835_DMA_INT_EN;
size_t frames;
@@ -943,7 +956,7 @@ static struct dma_async_tx_descriptor *bcm2835_dma_prep_dma_cyclic(
struct bcm2835_chan *c = to_bcm2835_dma_chan(chan);
struct bcm2835_desc *d;
dma_addr_t src, dst;
- u32 info = WAIT_RESP(c->dreq);
+ u32 info = WAIT_RESP(c->dreq) | WIDE_SOURCE(c->dreq) | WIDE_DEST(c->dreq);
u32 extra = 0;
size_t max_len = bcm2835_dma_max_frame_length(c);
size_t frames;
--
2.20.1
From 0db6b8af120801c123d6066a58110554ee3f3d83 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Wed, 30 Dec 2020 14:51:00 +0000
Subject: [PATCH 2/2] dts: Enable DMA_WIDE_SOURCE for hdmi audio dma
Without this set, DVP_CFG_MAI0_CTL indicates occasional
DLATE errors when configured to 8 channel 192kHz
when sdram bandwidth is high (e.g. playing h.264 video)
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
arch/arm/boot/dts/bcm2711-rpi.dtsi | 4 ++--
arch/arm/boot/dts/bcm2835-common.dtsi | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/bcm2711-rpi.dtsi b/arch/arm/boot/dts/bcm2711-rpi.dtsi
index 4f903a787d65e..e67ecf3ae1613 100644
--- a/arch/arm/boot/dts/bcm2711-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi
@@ -179,7 +179,7 @@
};
&hdmi0 {
- dmas = <&dma (10|(1<<27))>;
+ dmas = <&dma (10|(1<<27)|(1<<28))>;
status = "disabled";
};
@@ -188,7 +188,7 @@
};
&hdmi1 {
- dmas = <&dma (17|(1<<27))>;
+ dmas = <&dma (17|(1<<27)|(1<<28))>;
status = "disabled";
};
diff --git a/arch/arm/boot/dts/bcm2835-common.dtsi b/arch/arm/boot/dts/bcm2835-common.dtsi
index bd77ba3a3562b..12207f96ed9e2 100644
--- a/arch/arm/boot/dts/bcm2835-common.dtsi
+++ b/arch/arm/boot/dts/bcm2835-common.dtsi
@@ -123,7 +123,7 @@
clocks = <&clocks BCM2835_PLLH_PIX>,
<&clocks BCM2835_CLOCK_HSM>;
clock-names = "pixel", "hdmi";
- dmas = <&dma (17|(1<<27))>;
+ dmas = <&dma (17|(1<<27)|(1<<28))>;
dma-names = "audio-rx";
status = "disabled";
};
--
2.20.1

View File

@ -3,8 +3,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="bcm2835-bootloader"
PKG_VERSION="d06d94e8f171362214edc7aef6e74329ab6cb588"
PKG_SHA256="4ec2c064cbb91d42e0b9d974f6bf4ceb799b85fed3b461082071d18142239af4"
PKG_VERSION="481ccbbbe505c9ac0a9f105a3be86b498a25baa9"
PKG_SHA256="93cb950bdb79bbffc540e449ac3bda0fed70275114133a91256f72faaf0c7358"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"
PKG_SITE="http://www.broadcom.com"