linux (Allwinner): update to 5.1.9

This commit is contained in:
MilhouseVH 2019-06-13 14:15:11 +01:00
parent 89c4916d11
commit c01f524e80
23 changed files with 4377 additions and 4016 deletions

View File

@ -1,62 +0,0 @@
From 398a7c7ab82ab344d693a62ee633351f93046d91 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 11 Mar 2019 17:30:24 +0100
Subject: [PATCH] orangepi win: wifi & bt
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
.../dts/allwinner/sun50i-a64-orangepi-win.dts | 23 +++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
index 510f661229dc..5ef3c62c765e 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
@@ -109,6 +109,8 @@
wifi_pwrseq: wifi_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
+ clocks = <&rtc 1>;
+ clock-names = "ext_clock";
};
};
@@ -170,6 +172,14 @@
bus-width = <4>;
non-removable;
status = "okay";
+
+ brcmf: wifi@1 {
+ reg = <1>;
+ compatible = "brcm,bcm4329-fmac";
+ interrupt-parent = <&r_pio>;
+ interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
+ interrupt-names = "host-wake";
+ };
};
&ohci0 {
@@ -342,7 +352,20 @@
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+ uart-has-rtscts;
status = "okay";
+
+ bluetooth {
+ compatible = "brcm,bcm43438-bt";
+ max-speed = <1500000>;
+ clocks = <&rtc 1>;
+ clock-names = "lpo";
+ vbat-supply = <&reg_dldo2>;
+ vddio-supply = <&reg_dldo4>;
+ device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
+ host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
+ shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
+ };
};
/* On Pi-2 connector, RTS/CTS optional */
--
2.21.0

View File

@ -0,0 +1,12 @@
diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
index 39263e74fbb5..0ec6109ec625 100644
--- a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
+++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
@@ -219,6 +219,7 @@
bluetooth {
compatible = "brcm,bcm43438-bt";
+ max-speed = <1500000>;
clocks = <&rtc 1>;
clock-names = "lpo";
vbat-supply = <&reg_vcc3v3>;

View File

@ -1,240 +0,0 @@
From ed19ec00d4d62a74857ad9c2ea1dbf9671ac3580 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:36:54 +0100
Subject: [PATCH 1/6] dt-bindings: media: cedrus: Add H6 compatible
This adds a compatible for H6. H6 VPU supports 10-bit HEVC decoding and
additional AFBC output format for HEVC.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
Documentation/devicetree/bindings/media/cedrus.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/media/cedrus.txt b/Documentation/devicetree/bindings/media/cedrus.txt
index bce0705df953..20c82fb0c343 100644
--- a/Documentation/devicetree/bindings/media/cedrus.txt
+++ b/Documentation/devicetree/bindings/media/cedrus.txt
@@ -13,6 +13,7 @@ Required properties:
- "allwinner,sun8i-h3-video-engine"
- "allwinner,sun50i-a64-video-engine"
- "allwinner,sun50i-h5-video-engine"
+ - "allwinner,sun50i-h6-video-engine"
- reg : register base and length of VE;
- clocks : list of clock specifiers, corresponding to entries in
the clock-names property;
--
2.20.1
From bb6b00e1225a5b382b723d3c2190429e15a4c607 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:45:38 +0100
Subject: [PATCH 2/6] media: cedrus: Add a quirk for not setting DMA offset
H6 VPU doesn't work if DMA offset is set.
Add a quirk for it.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/staging/media/sunxi/cedrus/cedrus.h | 3 +++
drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h
index 4aedd24a9848..c57c04b41d2e 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
@@ -28,6 +28,8 @@
#define CEDRUS_CAPABILITY_UNTILED BIT(0)
+#define CEDRUS_QUIRK_NO_DMA_OFFSET BIT(0)
+
enum cedrus_codec {
CEDRUS_CODEC_MPEG2,
@@ -91,6 +93,7 @@ struct cedrus_dec_ops {
struct cedrus_variant {
unsigned int capabilities;
+ unsigned int quirks;
};
struct cedrus_dev {
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
index 0acf219a8c91..fbfff7c1c771 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
@@ -177,7 +177,8 @@ int cedrus_hw_probe(struct cedrus_dev *dev)
*/
#ifdef PHYS_PFN_OFFSET
- dev->dev->dma_pfn_offset = PHYS_PFN_OFFSET;
+ if (!(variant->quirks & CEDRUS_QUIRK_NO_DMA_OFFSET))
+ dev->dev->dma_pfn_offset = PHYS_PFN_OFFSET;
#endif
ret = of_reserved_mem_device_init(dev->dev);
--
2.20.1
From 744c66f8c328ef40b6fb246f8b9f2daa9cce4d9d Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:47:33 +0100
Subject: [PATCH 3/6] media: cedrus: Add support for H6
H6 has improved VPU. It supports 10-bit HEVC decoding and AFBC output
format for HEVC.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/staging/media/sunxi/cedrus/cedrus.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index ff11cbeba205..b98add3cdedd 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -396,6 +396,11 @@ static const struct cedrus_variant sun50i_h5_cedrus_variant = {
.capabilities = CEDRUS_CAPABILITY_UNTILED,
};
+static const struct cedrus_variant sun50i_h6_cedrus_variant = {
+ .capabilities = CEDRUS_CAPABILITY_UNTILED | CEDRUS_CAPABILITY_H265_DEC,
+ .quirks = CEDRUS_QUIRK_NO_DMA_OFFSET,
+};
+
static const struct of_device_id cedrus_dt_match[] = {
{
.compatible = "allwinner,sun4i-a10-video-engine",
@@ -425,6 +430,10 @@ static const struct of_device_id cedrus_dt_match[] = {
.compatible = "allwinner,sun50i-h5-video-engine",
.data = &sun50i_h5_cedrus_variant,
},
+ {
+ .compatible = "allwinner,sun50i-h6-video-engine",
+ .data = &sun50i_h6_cedrus_variant,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, cedrus_dt_match);
--
2.20.1
From b4ca53c594950b80d71ac320b3505a303e7f6092 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 20:05:47 +0100
Subject: [PATCH 4/6] dt-bindings: sram: sunxi: Add compatible for the H6 SRAM
C1
This introduces a new compatible for the H6 SRAM C1 section, that is
compatible with the SRAM C1 section as found on the A10.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
Documentation/devicetree/bindings/sram/sunxi-sram.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/sram/sunxi-sram.txt b/Documentation/devicetree/bindings/sram/sunxi-sram.txt
index ab5a70bb9a64..380246a805f2 100644
--- a/Documentation/devicetree/bindings/sram/sunxi-sram.txt
+++ b/Documentation/devicetree/bindings/sram/sunxi-sram.txt
@@ -63,6 +63,7 @@ The valid sections compatible for H5 are:
The valid sections compatible for H6 are:
- allwinner,sun50i-h6-sram-c, allwinner,sun50i-a64-sram-c
+ - allwinner,sun50i-h6-sram-c1, allwinner,sun4i-a10-sram-c1
The valid sections compatible for F1C100s are:
- allwinner,suniv-f1c100s-sram-d, allwinner,sun4i-a10-sram-d
--
2.20.1
From 6a505c910b90581b2a980e52f9b6fcb03d234cb7 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:53:30 +0100
Subject: [PATCH 5/6] arm64: dts: allwinner: h6: Add support for the SRAM C1
section
Add a node for H6 SRAM C1 section.
Manual calls it VE SRAM, but for consistency with older SoCs, SRAM C1
name is used.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index d93a7add67e7..247dc0a5ce89 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -167,6 +167,20 @@
reg = <0x0000 0x1e000>;
};
};
+
+ sram_c1: sram@1a00000 {
+ compatible = "mmio-sram";
+ reg = <0x01a00000 0x200000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0 0x01a00000 0x200000>;
+
+ ve_sram: sram-section@0 {
+ compatible = "allwinner,sun50i-h6-sram-c1",
+ "allwinner,sun4i-a10-sram-c1";
+ reg = <0x000000 0x200000>;
+ };
+ };
};
ccu: clock@3001000 {
--
2.20.1
From c1b3128ac98c05c0afde4e6e065d6b1f2ae1dfa7 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:59:27 +0100
Subject: [PATCH 6/6] arm64: dts: allwinner: h6: Add Video Engine node
This adds the Video engine node for H6. It can use whole DRAM range so
there is no need for reserved memory node.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 247dc0a5ce89..de4b7a1f1012 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -146,6 +146,17 @@
};
};
+ video-codec@1c0e000 {
+ compatible = "allwinner,sun50i-h6-video-engine";
+ reg = <0x01c0e000 0x2000>;
+ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
+ <&ccu CLK_MBUS_VE>;
+ clock-names = "ahb", "mod", "ram";
+ resets = <&ccu RST_BUS_VE>;
+ interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+ allwinner,sram = <&ve_sram 1>;
+ };
+
syscon: syscon@3000000 {
compatible = "allwinner,sun50i-h6-system-control",
"allwinner,sun50i-a64-system-control";
--
2.20.1

View File

@ -0,0 +1,91 @@
From d117460aed81ee5cd384045a1189c9de758d17c6 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Tue, 28 May 2019 21:05:34 +0200
Subject: [PATCH] 10-bit HEVC hack
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 12 ++++++++++++
drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 4 ++++
drivers/staging/media/sunxi/cedrus/cedrus_video.c | 13 +++++++++++--
3 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
index 8bbbe69ae51f..04ba7d60ebcd 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
@@ -453,6 +453,18 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
cedrus_write(dev, VE_DEC_H265_DEC_PCM_CTRL, reg);
+ if (sps->bit_depth_luma_minus8) {
+ unsigned int size;
+
+ size = ALIGN(ctx->src_fmt.width, 16) * ALIGN(ctx->src_fmt.height, 16);
+
+ reg = (size * 3) / 2;
+ cedrus_write(dev, VE_DEC_H265_OFFSET_ADDR_FIRST_OUT, reg);
+
+ reg = DIV_ROUND_UP(ctx->src_fmt.width, 4);
+ cedrus_write(dev, VE_DEC_H265_10BIT_CONFIGURE, ALIGN(reg, 32));
+ }
+
reg = VE_DEC_H265_DEC_PPS_CTRL0_PPS_CR_QP_OFFSET(pps->pps_cr_qp_offset) |
VE_DEC_H265_DEC_PPS_CTRL0_PPS_CB_QP_OFFSET(pps->pps_cb_qp_offset) |
VE_DEC_H265_DEC_PPS_CTRL0_INIT_QP_MINUS26(pps->init_qp_minus26) |
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
index d1f010ae49ef..dd69031a2779 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
@@ -505,6 +505,10 @@
#define VE_DEC_H265_LOW_ADDR (VE_ENGINE_DEC_H265 + 0x80)
+#define VE_DEC_H265_OFFSET_ADDR_FIRST_OUT (VE_ENGINE_DEC_H265 + 0x84)
+#define VE_DEC_H265_OFFSET_ADDR_SECOND_OUT (VE_ENGINE_DEC_H265 + 0x88)
+#define VE_DEC_H265_10BIT_CONFIGURE (VE_ENGINE_DEC_H265 + 0x8c)
+
#define VE_DEC_H265_LOW_ADDR_PRIMARY_CHROMA(a) \
(((a) << 24) & GENMASK(31, 24))
#define VE_DEC_H265_LOW_ADDR_SECONDARY_CHROMA(a) \
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index d27a9e82ff91..2c2288319c9d 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -372,6 +372,7 @@ static int cedrus_queue_setup(struct vb2_queue *vq, unsigned int *nbufs,
struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
struct cedrus_dev *dev = ctx->dev;
struct v4l2_pix_format *pix_fmt;
+ unsigned int extra_size = 0;
u32 directions;
if (V4L2_TYPE_IS_OUTPUT(vq->type)) {
@@ -380,6 +381,14 @@ static int cedrus_queue_setup(struct vb2_queue *vq, unsigned int *nbufs,
} else {
directions = CEDRUS_DECODE_DST;
pix_fmt = &ctx->dst_fmt;
+
+ /* The HEVC decoder needs extra size on the output buffer. */
+ if (ctx->src_fmt.pixelformat == V4L2_PIX_FMT_HEVC_SLICE) {
+ extra_size = DIV_ROUND_UP(pix_fmt->width, 4);
+ extra_size = ALIGN(extra_size, 32);
+ extra_size *= ALIGN(pix_fmt->height, 16) * 3;
+ extra_size /= 2;
+ }
}
if (!cedrus_check_format(pix_fmt->pixelformat, directions,
@@ -387,8 +396,8 @@ static int cedrus_queue_setup(struct vb2_queue *vq, unsigned int *nbufs,
return -EINVAL;
if (*nplanes) {
- if (sizes[0] < pix_fmt->sizeimage)
- return -EINVAL;
+ if (sizes[0] < (pix_fmt->sizeimage + extra_size))
+ sizes[0] = pix_fmt->sizeimage + extra_size;
} else {
sizes[0] = pix_fmt->sizeimage;
*nplanes = 1;
--
2.21.0

View File

@ -1,25 +0,0 @@
From 18c9a269e2b744ee84f32de9d5c6c66857725ef8 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 15 Dec 2018 12:56:53 +0100
Subject: [PATCH 20/20] cedrus increase frequency
---
drivers/staging/media/sunxi/cedrus/cedrus_hw.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
index b43c77d54b95..70677571f3d3 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
@@ -16,7 +16,7 @@
#ifndef _CEDRUS_HW_H_
#define _CEDRUS_HW_H_
-#define CEDRUS_CLOCK_RATE_DEFAULT 402000000
+#define CEDRUS_CLOCK_RATE_DEFAULT 600000000
int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec);
void cedrus_engine_disable(struct cedrus_dev *dev);
--
2.20.0

View File

@ -1,20 +0,0 @@
diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
index caea5a9f8f1d..ba4ce576b471 100644
--- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
+++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c
@@ -48,8 +48,13 @@ static enum drm_mode_status
sun8i_dw_hdmi_mode_valid_h6(struct drm_connector *connector,
const struct drm_display_mode *mode)
{
- /* This is max for HDMI 2.0b (4K@60Hz) */
- if (mode->clock > 594000)
+ /*
+ * Controller support maximum of 594 MHz, which correlates to
+ * 4K@60Hz 4:4:4 or RGB. However, for frequencies greater than
+ * 340 MHz scrambling has to be enabled. Because scrambling is
+ * not yet implemented, just limit to 340 MHz for now.
+ */
+ if (mode->clock > 340000)
return MODE_CLOCK_HIGH;
return MODE_OK;

View File

@ -1,96 +0,0 @@
From 9413130f5b213551519c97482462a6daea9a5343 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Tue, 2 Apr 2019 19:32:01 +0200
Subject: [PATCH 1/2] clk: sunxi-ng: h6: Change CEC clock parent
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
index daf78966555e..33980067b06e 100644
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -656,6 +656,8 @@ static const char * const hdmi_cec_parents[] = { "osc32k", "pll-periph0-2x" };
static const struct ccu_mux_fixed_prediv hdmi_cec_predivs[] = {
{ .index = 1, .div = 36621 },
};
+
+#define SUN50I_H6_HDMI_CEC_CLK_REG 0xb10
static struct ccu_mux hdmi_cec_clk = {
.enable = BIT(31),
@@ -1200,6 +1202,15 @@ static int sun50i_h6_ccu_probe(struct platform_device *pdev)
val &= ~(GENMASK(21, 16) | BIT(0));
writel(val | (7 << 16), reg + SUN50I_H6_PLL_AUDIO_REG);
+ /*
+ * First clock parent (osc32K) is unusable for CEC. But since there
+ * is no good way to force parent switch (both run with same frequency),
+ * just set second clock parent here.
+ */
+ val = readl(reg + SUN50I_H6_HDMI_CEC_CLK_REG);
+ val |= BIT(24);
+ writel(val, reg + SUN50I_H6_HDMI_CEC_CLK_REG);
+
return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_h6_ccu_desc);
}
--
2.21.0
From eab64a1ccf6b7cda339fdfdbfa9e1973e4cc0c85 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Tue, 2 Apr 2019 21:15:45 +0200
Subject: [PATCH 2/2] clk: sunxi-ng: h6: Allow video & vpu clocks to change
parent rate
Video related clocks need to set rate as close as possible to the
requested one, so they should be able to change parent clock rate.
VPU clock sometimes has to be set to higher than default parent clock
rate. This is requ
Add CLK_SET_RATE_PARENT flag to tcon-lcd0, tcon-tv0 and ve.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
index 33980067b06e..3c32d7798f27 100644
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -311,7 +311,7 @@ static SUNXI_CCU_M_WITH_MUX_GATE(ve_clk, "ve", ve_parents, 0x690,
0, 3, /* M */
24, 1, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_ve_clk, "bus-ve", "psi-ahb1-ahb2",
0x69c, BIT(0), 0);
@@ -691,7 +691,7 @@ static SUNXI_CCU_MUX_WITH_GATE(tcon_lcd0_clk, "tcon-lcd0",
tcon_lcd0_parents, 0xb60,
24, 3, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_tcon_lcd0_clk, "bus-tcon-lcd0", "ahb3",
0xb7c, BIT(0), 0);
@@ -706,7 +706,7 @@ static SUNXI_CCU_MP_WITH_MUX_GATE(tcon_tv0_clk, "tcon-tv0",
8, 2, /* P */
24, 3, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_tcon_tv0_clk, "bus-tcon-tv0", "ahb3",
0xb9c, BIT(0), 0);
--
2.21.0

View File

@ -1,15 +1,16 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm64 5.0.2 Kernel Configuration # Linux/arm64 5.1.6 Kernel Configuration
# #
# #
# Compiler: aarch64-linux-gnu-gcc.real (Linaro GCC 7.3-2018.05) 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] # Compiler: aarch64-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0
# #
CONFIG_CC_IS_GCC=y CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=70301 CONFIG_GCC_VERSION=80300
CONFIG_CLANG_VERSION=0 CONFIG_CLANG_VERSION=0
CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y CONFIG_THREAD_INFO_IN_TASK=y
@ -180,6 +181,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y CONFIG_EVENTFD=y
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_AIO=y CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
@ -247,6 +249,7 @@ CONFIG_ARCH_SUNXI=y
# CONFIG_ARCH_BCM2835 is not set # CONFIG_ARCH_BCM2835 is not set
# CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BCM_IPROC is not set
# CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_BERLIN is not set
# CONFIG_ARCH_BITMAIN is not set
# CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_BRCMSTB is not set
# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_K3 is not set # CONFIG_ARCH_K3 is not set
@ -293,6 +296,7 @@ CONFIG_ARM64_ERRATUM_1024718=y
CONFIG_ARM64_ERRATUM_1188873=y CONFIG_ARM64_ERRATUM_1188873=y
CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1165522=y
CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1286807=y
CONFIG_ARM64_ERRATUM_1463225=y
CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_22375=y
CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_23154=y
@ -305,6 +309,7 @@ CONFIG_QCOM_QDF2400_ERRATUM_0065=y
CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
CONFIG_HISILICON_ERRATUM_161600802=y CONFIG_HISILICON_ERRATUM_161600802=y
CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
CONFIG_FUJITSU_ERRATUM_010001=y
CONFIG_ARM64_4K_PAGES=y CONFIG_ARM64_4K_PAGES=y
# CONFIG_ARM64_16K_PAGES is not set # CONFIG_ARM64_16K_PAGES is not set
# CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_64K_PAGES is not set
@ -389,6 +394,7 @@ CONFIG_EFI=y
CONFIG_DMI=y CONFIG_DMI=y
CONFIG_COMPAT=y CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y CONFIG_SYSVIPC_COMPAT=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
# #
# Power management options # Power management options
@ -426,6 +432,7 @@ CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set # CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_DT_IDLE_STATES=y CONFIG_DT_IDLE_STATES=y
# #
@ -472,7 +479,6 @@ CONFIG_ARM_SCPI_POWER_DOMAIN=y
# CONFIG_ARM_SDE_INTERFACE is not set # CONFIG_ARM_SDE_INTERFACE is not set
CONFIG_DMIID=y CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set # CONFIG_DMI_SYSFS is not set
# CONFIG_INTEL_STRATIX10_SERVICE is not set
CONFIG_HAVE_ARM_SMCCC=y CONFIG_HAVE_ARM_SMCCC=y
# CONFIG_GOOGLE_FIRMWARE is not set # CONFIG_GOOGLE_FIRMWARE is not set
@ -488,6 +494,7 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
CONFIG_EFI_CAPSULE_LOADER=y CONFIG_EFI_CAPSULE_LOADER=y
# CONFIG_EFI_TEST is not set # CONFIG_EFI_TEST is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set # CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_EFI_EARLYCON=y
# #
# Tegra firmware driver # Tegra firmware driver
@ -571,6 +578,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
CONFIG_CLONE_BACKWARDS=y CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_64BIT_TIME=y
CONFIG_COMPAT_32BIT_TIME=y CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y CONFIG_VMAP_STACK=y
@ -580,15 +588,15 @@ CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y
CONFIG_REFCOUNT_FULL=y CONFIG_REFCOUNT_FULL=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# #
# GCOV-based kernel profiling # GCOV-based kernel profiling
# #
# CONFIG_GCOV_KERNEL is not set # CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_PLUGIN_HOSTCC="g++" CONFIG_PLUGIN_HOSTCC=""
CONFIG_HAVE_GCC_PLUGINS=y CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_RT_MUTEXES=y CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0 CONFIG_BASE_SMALL=0
CONFIG_MODULES=y CONFIG_MODULES=y
@ -708,6 +716,7 @@ CONFIG_SKB_EXTENSIONS=y
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set # CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_UNIX_SCM=y
# CONFIG_UNIX_DIAG is not set # CONFIG_UNIX_DIAG is not set
# CONFIG_TLS is not set # CONFIG_TLS is not set
CONFIG_XFRM=y CONFIG_XFRM=y
@ -819,6 +828,7 @@ CONFIG_NF_NAT_NEEDED=y
CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
# CONFIG_NF_TABLES is not set # CONFIG_NF_TABLES is not set
CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XTABLES=m
@ -960,8 +970,6 @@ CONFIG_NF_DEFRAG_IPV4=m
# CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_ARP is not set
CONFIG_NF_LOG_IPV4=m CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m CONFIG_NF_REJECT_IPV4=m
CONFIG_NF_NAT_IPV4=m
CONFIG_NF_NAT_MASQUERADE_IPV4=y
CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set # CONFIG_IP_NF_MATCH_ECN is not set
@ -990,8 +998,6 @@ CONFIG_IP_NF_MANGLE=m
# CONFIG_NF_DUP_IPV6 is not set # CONFIG_NF_DUP_IPV6 is not set
CONFIG_NF_REJECT_IPV6=m CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
CONFIG_NF_NAT_MASQUERADE_IPV6=y
CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_AH is not set # CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set # CONFIG_IP6_NF_MATCH_EUI64 is not set
@ -1214,7 +1220,6 @@ CONFIG_NET_9P=y
CONFIG_DST_CACHE=y CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y CONFIG_GRO_CELLS=y
# CONFIG_NET_DEVLINK is not set # CONFIG_NET_DEVLINK is not set
CONFIG_MAY_USE_DEVLINK=y
CONFIG_FAILOVER=y CONFIG_FAILOVER=y
CONFIG_HAVE_EBPF_JIT=y CONFIG_HAVE_EBPF_JIT=y
@ -1258,17 +1263,6 @@ CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_CMA=y
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=256
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_GENERIC_ARCH_TOPOLOGY=y CONFIG_GENERIC_ARCH_TOPOLOGY=y
# #
@ -1364,9 +1358,9 @@ CONFIG_MTD_NAND_DENALI_DT=y
# #
# CONFIG_MTD_LPDDR is not set # CONFIG_MTD_LPDDR is not set
CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPI_NOR=y
# CONFIG_MTD_MT81xx_NOR is not set
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
# CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_CADENCE_QUADSPI is not set
# CONFIG_SPI_MTK_QUADSPI is not set
# CONFIG_MTD_UBI is not set # CONFIG_MTD_UBI is not set
CONFIG_DTC=y CONFIG_DTC=y
CONFIG_OF=y CONFIG_OF=y
@ -1459,6 +1453,7 @@ CONFIG_EEPROM_AT25=m
# #
# VOP Bus Driver # VOP Bus Driver
# #
# CONFIG_VOP_BUS is not set
# #
# Intel MIC Host Driver # Intel MIC Host Driver
@ -1526,7 +1521,6 @@ CONFIG_SCSI_UFSHCD_PLATFORM=m
# CONFIG_SCSI_UFS_BSG is not set # CONFIG_SCSI_UFS_BSG is not set
# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set # CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
CONFIG_HAVE_PATA_PLATFORM=y CONFIG_HAVE_PATA_PLATFORM=y
CONFIG_ATA=y CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_VERBOSE_ERROR=y
@ -1603,6 +1597,7 @@ CONFIG_DUMMY=m
# CONFIG_NET_TEAM is not set # CONFIG_NET_TEAM is not set
CONFIG_MACVLAN=m CONFIG_MACVLAN=m
CONFIG_MACVTAP=m CONFIG_MACVTAP=m
CONFIG_IPVLAN_L3S=y
CONFIG_IPVLAN=m CONFIG_IPVLAN=m
# CONFIG_IPVTAP is not set # CONFIG_IPVTAP is not set
CONFIG_VXLAN=m CONFIG_VXLAN=m
@ -1698,8 +1693,8 @@ CONFIG_STMMAC_ETH=y
CONFIG_STMMAC_PLATFORM=y CONFIG_STMMAC_PLATFORM=y
# CONFIG_DWMAC_DWC_QOS_ETH is not set # CONFIG_DWMAC_DWC_QOS_ETH is not set
CONFIG_DWMAC_GENERIC=y CONFIG_DWMAC_GENERIC=y
CONFIG_DWMAC_SUNXI=y CONFIG_DWMAC_SUNXI=m
CONFIG_DWMAC_SUN8I=y CONFIG_DWMAC_SUN8I=m
CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_SYNOPSYS=y
# CONFIG_DWC_XLGMAC is not set # CONFIG_DWC_XLGMAC is not set
CONFIG_NET_VENDOR_VIA=y CONFIG_NET_VENDOR_VIA=y
@ -1715,6 +1710,7 @@ CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_BUS_MUX=y CONFIG_MDIO_BUS_MUX=y
# CONFIG_MDIO_BUS_MUX_GPIO is not set # CONFIG_MDIO_BUS_MUX_GPIO is not set
CONFIG_MDIO_BUS_MUX_MMIOREG=y CONFIG_MDIO_BUS_MUX_MMIOREG=y
# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
# CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_GPIO is not set
# CONFIG_MDIO_HISI_FEMAC is not set # CONFIG_MDIO_HISI_FEMAC is not set
# CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_MSCC_MIIM is not set
@ -1939,7 +1935,6 @@ CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_XTKBD is not set
CONFIG_KEYBOARD_CROS_EC=y
# CONFIG_KEYBOARD_CAP11XX is not set # CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set # CONFIG_KEYBOARD_BCM is not set
# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_MOUSE is not set
@ -2016,6 +2011,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_ATMEL_CAPTOUCH is not set
# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set # CONFIG_INPUT_E3X0_BUTTON is not set
# CONFIG_INPUT_MSM_VIBRATOR is not set
# CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_BEEPER is not set
@ -2077,6 +2073,7 @@ CONFIG_LEGACY_PTY_COUNT=16
# CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_N_GSM is not set # CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set # CONFIG_TRACE_SINK is not set
CONFIG_LDISC_AUTOLOAD=y
CONFIG_DEVMEM=y CONFIG_DEVMEM=y
# #
@ -2129,7 +2126,6 @@ CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
# CONFIG_IPMI_HANDLER is not set # CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not set # CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
CONFIG_TCG_TPM=y CONFIG_TCG_TPM=y
# CONFIG_TCG_TIS is not set # CONFIG_TCG_TIS is not set
@ -2201,7 +2197,6 @@ CONFIG_I2C_RK3X=y
# #
# Other I2C/SMBus bus drivers # Other I2C/SMBus bus drivers
# #
CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_I2C_STUB is not set # CONFIG_I2C_STUB is not set
CONFIG_I2C_SLAVE=y CONFIG_I2C_SLAVE=y
# CONFIG_I2C_SLAVE_EEPROM is not set # CONFIG_I2C_SLAVE_EEPROM is not set
@ -2222,12 +2217,14 @@ CONFIG_SPI_MEM=y
# CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_NXP_FLEXSPI is not set
# CONFIG_SPI_GPIO is not set # CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_FSL_SPI is not set
# CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_OC_TINY is not set
CONFIG_SPI_PL022=y CONFIG_SPI_PL022=y
CONFIG_SPI_ROCKCHIP=y CONFIG_SPI_ROCKCHIP=y
# CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_SUN4I is not set # CONFIG_SPI_SUN4I is not set
# CONFIG_SPI_SUN6I is not set # CONFIG_SPI_SUN6I is not set
# CONFIG_SPI_MXIC is not set # CONFIG_SPI_MXIC is not set
@ -2314,12 +2311,14 @@ CONFIG_GPIO_PL061=y
# CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSCON is not set
CONFIG_GPIO_XGENE=y CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# #
# I2C GPIO expanders # I2C GPIO expanders
# #
# CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set # CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_MAX732X is not set
CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X=y
@ -2330,7 +2329,6 @@ CONFIG_GPIO_PCA953X_IRQ=y
# #
# MFD GPIO expanders # MFD GPIO expanders
# #
# CONFIG_GPIO_BD9571MWV is not set
CONFIG_GPIO_MAX77620=y CONFIG_GPIO_MAX77620=y
# #
@ -2395,7 +2393,6 @@ CONFIG_AXP20X_POWER=y
# CONFIG_CHARGER_SMB347 is not set # CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_RT9455 is not set
# CONFIG_CHARGER_CROS_USBPD is not set
CONFIG_HWMON=y CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON_DEBUG_CHIP is not set
@ -2570,7 +2567,7 @@ CONFIG_ARM_SP805_WATCHDOG=y
# CONFIG_ARM_SBSA_WATCHDOG is not set # CONFIG_ARM_SBSA_WATCHDOG is not set
# CONFIG_CADENCE_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set
# CONFIG_SUNXI_WATCHDOG is not set CONFIG_SUNXI_WATCHDOG=y
# CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_MAX77620_WATCHDOG is not set # CONFIG_MAX77620_WATCHDOG is not set
# CONFIG_MEN_A21_WDT is not set # CONFIG_MEN_A21_WDT is not set
@ -2602,13 +2599,12 @@ CONFIG_MFD_CORE=y
# CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_ATMEL_HLCDC is not set
# CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_BD9571MWV=y # CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_AC100 is not set # CONFIG_MFD_AC100 is not set
CONFIG_MFD_AXP20X=y CONFIG_MFD_AXP20X=y
CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_I2C=y
CONFIG_MFD_AXP20X_RSB=y CONFIG_MFD_AXP20X_RSB=y
CONFIG_MFD_CROS_EC=y # CONFIG_MFD_CROS_EC is not set
CONFIG_MFD_CROS_EC_CHARDEV=m
# CONFIG_MFD_MADERA is not set # CONFIG_MFD_MADERA is not set
# CONFIG_PMIC_DA903X is not set # CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_SPI is not set
@ -2680,6 +2676,8 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set # CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TQMX86 is not set
# CONFIG_MFD_LOCHNAGAR is not set
# CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM8400 is not set
@ -2688,6 +2686,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set # CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD718XX is not set
# CONFIG_MFD_STPMIC1 is not set
CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VEXPRESS_SYSREG=y
# CONFIG_RAVE_SP_CORE is not set # CONFIG_RAVE_SP_CORE is not set
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
@ -2700,7 +2699,6 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ANATOP is not set
CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_AXP20X=y
CONFIG_REGULATOR_BD9571MWV=y
# CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DA9211 is not set
CONFIG_REGULATOR_FAN53555=y CONFIG_REGULATOR_FAN53555=y
@ -3067,10 +3065,6 @@ CONFIG_VIDEO_MT9V011=m
# Miscellaneous helper chips # Miscellaneous helper chips
# #
#
# Sensors used on soc_camera driver
#
# #
# Media SPI Adapters # Media SPI Adapters
# #
@ -3260,8 +3254,13 @@ CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_I2C_NXP_TDA9950 is not set
#
# ARM devices
#
# CONFIG_DRM_HDLCD is not set # CONFIG_DRM_HDLCD is not set
# CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MALI_DISPLAY is not set
# CONFIG_DRM_KOMEDA is not set
# #
# ACP (Audio CoProcessor) Configuration # ACP (Audio CoProcessor) Configuration
@ -3298,6 +3297,7 @@ CONFIG_DRM_PANEL_SIMPLE=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set # CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
CONFIG_DRM_BRIDGE=y CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y
@ -3324,6 +3324,7 @@ CONFIG_DRM_DW_HDMI=y
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set # CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
CONFIG_DRM_DW_HDMI_I2S_AUDIO=y CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
CONFIG_DRM_DW_HDMI_CEC=y CONFIG_DRM_DW_HDMI_CEC=y
# CONFIG_DRM_ETNAVIV is not set
# CONFIG_DRM_ARCPGU is not set # CONFIG_DRM_ARCPGU is not set
# CONFIG_DRM_HISI_KIRIN is not set # CONFIG_DRM_HISI_KIRIN is not set
# CONFIG_DRM_MXSFB is not set # CONFIG_DRM_MXSFB is not set
@ -3468,9 +3469,11 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_I2S_HI6210_I2S is not set
# CONFIG_SND_SOC_IMG is not set # CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_MTK_BTCVSD is not set
# #
# STMicroelectronics STM32 SOC audio support # STMicroelectronics STM32 SOC audio support
@ -3487,6 +3490,8 @@ CONFIG_SND_SUN4I_I2S=y
CONFIG_SND_SUN4I_SPDIF=y CONFIG_SND_SUN4I_SPDIF=y
CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y
# CONFIG_SND_SOC_XILINX_I2S is not set # CONFIG_SND_SOC_XILINX_I2S is not set
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set
# CONFIG_ZX_TDM is not set # CONFIG_ZX_TDM is not set
CONFIG_SND_SOC_I2C_AND_SPI=y CONFIG_SND_SOC_I2C_AND_SPI=y
@ -3514,6 +3519,7 @@ CONFIG_SND_SOC_AK4613=m
# CONFIG_SND_SOC_CS35L33 is not set # CONFIG_SND_SOC_CS35L33 is not set
# CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L34 is not set
# CONFIG_SND_SOC_CS35L35 is not set # CONFIG_SND_SOC_CS35L35 is not set
# CONFIG_SND_SOC_CS35L36 is not set
# CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L42 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L52 is not set
@ -3525,6 +3531,7 @@ CONFIG_SND_SOC_AK4613=m
# CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS43130 is not set # CONFIG_SND_SOC_CS43130 is not set
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_DMIC is not set # CONFIG_SND_SOC_DMIC is not set
@ -3556,6 +3563,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
# CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SGTL5000 is not set
@ -3602,6 +3610,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8904 is not set
# CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8960 is not set
# CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8974 is not set
@ -3610,6 +3619,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_ZX_AUD96P22 is not set
# CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MAX9759 is not set
# CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8810 is not set
# CONFIG_SND_SOC_NAU8822 is not set # CONFIG_SND_SOC_NAU8822 is not set
@ -3617,9 +3627,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD_UTILS=y
CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_SIMPLE_CARD=y
# CONFIG_SND_SIMPLE_SCU_CARD is not set
CONFIG_SND_AUDIO_GRAPH_CARD=y CONFIG_SND_AUDIO_GRAPH_CARD=y
# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
# #
# HID support # HID support
@ -3659,12 +3667,12 @@ CONFIG_HID_EZKEY=y
# CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set # CONFIG_HID_GFRM is not set
# CONFIG_HID_HOLTEK is not set # CONFIG_HID_HOLTEK is not set
# CONFIG_HID_GOOGLE_HAMMER is not set
# CONFIG_HID_GT683R is not set # CONFIG_HID_GT683R is not set
# CONFIG_HID_KEYTOUCH is not set # CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set # CONFIG_HID_KYE is not set
# CONFIG_HID_UCLOGIC is not set # CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set # CONFIG_HID_WALTOP is not set
# CONFIG_HID_VIEWSONIC is not set
# CONFIG_HID_GYRATION is not set # CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set # CONFIG_HID_ICADE is not set
CONFIG_HID_ITE=y CONFIG_HID_ITE=y
@ -3681,6 +3689,7 @@ CONFIG_HID_LOGITECH=y
# CONFIG_LOGIG940_FF is not set # CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIWHEELS_FF is not set # CONFIG_LOGIWHEELS_FF is not set
# CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MALTRON is not set
# CONFIG_HID_MAYFLASH is not set # CONFIG_HID_MAYFLASH is not set
CONFIG_HID_REDRAGON=y CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y CONFIG_HID_MICROSOFT=y
@ -3749,6 +3758,7 @@ CONFIG_USB_OTG=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_OTG_FSM is not set # CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_AUTOSUSPEND_DELAY=2
# CONFIG_USB_MON is not set # CONFIG_USB_MON is not set
# CONFIG_USB_WUSB_CBAF is not set # CONFIG_USB_WUSB_CBAF is not set
@ -3762,6 +3772,7 @@ CONFIG_USB_XHCI_PLATFORM=y
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_EHCI_FSL is not set
CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_EHCI_HCD_PLATFORM=y
# CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP116X_HCD is not set
@ -4067,6 +4078,7 @@ CONFIG_RTC_INTF_DEV=y
# I2C RTC drivers # I2C RTC drivers
# #
# CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABEOZ9 is not set
# CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1374 is not set
@ -4093,8 +4105,10 @@ CONFIG_RTC_DRV_RK808=m
# CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3028 is not set
# CONFIG_RTC_DRV_RV8803 is not set # CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_S5M=y CONFIG_RTC_DRV_S5M=y
# CONFIG_RTC_DRV_SD3078 is not set
# #
# SPI RTC drivers # SPI RTC drivers
@ -4143,7 +4157,6 @@ CONFIG_RTC_DRV_EFI=y
# CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set # CONFIG_RTC_DRV_V3020 is not set
# CONFIG_RTC_DRV_ZYNQMP is not set # CONFIG_RTC_DRV_ZYNQMP is not set
CONFIG_RTC_DRV_CROS_EC=y
# #
# on-CPU RTC drivers # on-CPU RTC drivers
@ -4151,6 +4164,7 @@ CONFIG_RTC_DRV_CROS_EC=y
# CONFIG_RTC_DRV_PL030 is not set # CONFIG_RTC_DRV_PL030 is not set
CONFIG_RTC_DRV_PL031=y CONFIG_RTC_DRV_PL031=y
CONFIG_RTC_DRV_SUN6I=y CONFIG_RTC_DRV_SUN6I=y
# CONFIG_RTC_DRV_CADENCE is not set
# CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_SNVS is not set
# CONFIG_RTC_DRV_R7301 is not set # CONFIG_RTC_DRV_R7301 is not set
@ -4158,7 +4172,6 @@ CONFIG_RTC_DRV_SUN6I=y
# #
# HID Sensor RTC drivers # HID Sensor RTC drivers
# #
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set # CONFIG_DMADEVICES_DEBUG is not set
@ -4175,6 +4188,7 @@ CONFIG_BCM_SBA_RAID=m
CONFIG_DMA_SUN6I=y CONFIG_DMA_SUN6I=y
# CONFIG_DW_AXI_DMAC is not set # CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set # CONFIG_FSL_EDMA is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IDMA64 is not set
CONFIG_MV_XOR_V2=y CONFIG_MV_XOR_V2=y
CONFIG_PL330_DMA=y CONFIG_PL330_DMA=y
@ -4227,7 +4241,6 @@ CONFIG_RTL8723BS=m
# #
# Analog to digital converters # Analog to digital converters
# #
# CONFIG_AD7606 is not set
# CONFIG_AD7780 is not set # CONFIG_AD7780 is not set
# CONFIG_AD7816 is not set # CONFIG_AD7816 is not set
# CONFIG_AD7192 is not set # CONFIG_AD7192 is not set
@ -4242,7 +4255,6 @@ CONFIG_RTL8723BS=m
# Capacitance to digital converters # Capacitance to digital converters
# #
# CONFIG_AD7150 is not set # CONFIG_AD7150 is not set
# CONFIG_AD7152 is not set
# CONFIG_AD7746 is not set # CONFIG_AD7746 is not set
# #
@ -4274,6 +4286,10 @@ CONFIG_STAGING_MEDIA=y
CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_SUNXI_CEDRUS=y CONFIG_VIDEO_SUNXI_CEDRUS=y
#
# soc_camera sensor drivers
#
# #
# Android # Android
# #
@ -4289,7 +4305,6 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y
# CONFIG_KS7010 is not set # CONFIG_KS7010 is not set
# CONFIG_GREYBUS is not set # CONFIG_GREYBUS is not set
# CONFIG_PI433 is not set # CONFIG_PI433 is not set
# CONFIG_MTK_MMC is not set
# #
# Gasket devices # Gasket devices
@ -4297,11 +4312,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y
# CONFIG_XIL_AXIS_FIFO is not set # CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_EROFS_FS is not set # CONFIG_EROFS_FS is not set
# CONFIG_GOLDFISH is not set # CONFIG_GOLDFISH is not set
CONFIG_CHROME_PLATFORMS=y # CONFIG_CHROME_PLATFORMS is not set
CONFIG_CROS_EC_CTL=m
CONFIG_CROS_EC_I2C=y
CONFIG_CROS_EC_SPI=y
CONFIG_CROS_EC_PROTO=y
CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK=y
@ -4327,6 +4338,7 @@ CONFIG_COMMON_CLK_SCPI=y
# CONFIG_COMMON_CLK_XGENE is not set # CONFIG_COMMON_CLK_XGENE is not set
# CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_FIXED_MMIO is not set
CONFIG_SUNXI_CCU=y CONFIG_SUNXI_CCU=y
CONFIG_SUN50I_A64_CCU=y CONFIG_SUN50I_A64_CCU=y
CONFIG_SUN50I_H6_CCU=y CONFIG_SUN50I_H6_CCU=y
@ -4429,10 +4441,10 @@ CONFIG_EXTCON=y
# CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_ADC_JACK is not set
# CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_GPIO is not set
# CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_PTN5150 is not set
# CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_SM5502 is not set
CONFIG_EXTCON_USB_GPIO=y CONFIG_EXTCON_USB_GPIO=y
CONFIG_EXTCON_USBC_CROS_EC=y
CONFIG_MEMORY=y CONFIG_MEMORY=y
# CONFIG_ARM_PL172_MPMC is not set # CONFIG_ARM_PL172_MPMC is not set
CONFIG_IIO=y CONFIG_IIO=y
@ -4440,7 +4452,6 @@ CONFIG_IIO_BUFFER=y
# CONFIG_IIO_BUFFER_CB is not set # CONFIG_IIO_BUFFER_CB is not set
# CONFIG_IIO_BUFFER_HW_CONSUMER is not set # CONFIG_IIO_BUFFER_HW_CONSUMER is not set
CONFIG_IIO_KFIFO_BUF=m CONFIG_IIO_KFIFO_BUF=m
CONFIG_IIO_TRIGGERED_BUFFER=m
# CONFIG_IIO_CONFIGFS is not set # CONFIG_IIO_CONFIGFS is not set
CONFIG_IIO_TRIGGER=y CONFIG_IIO_TRIGGER=y
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@ -4489,7 +4500,10 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_AD7291 is not set # CONFIG_AD7291 is not set
# CONFIG_AD7298 is not set # CONFIG_AD7298 is not set
# CONFIG_AD7476 is not set # CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
# CONFIG_AD7766 is not set # CONFIG_AD7766 is not set
# CONFIG_AD7768_1 is not set
# CONFIG_AD7791 is not set # CONFIG_AD7791 is not set
# CONFIG_AD7793 is not set # CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set # CONFIG_AD7887 is not set
@ -4529,6 +4543,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS1015 is not set
# CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS7950 is not set
# CONFIG_TI_ADS8688 is not set # CONFIG_TI_ADS8688 is not set
# CONFIG_TI_ADS124S08 is not set
# CONFIG_TI_TLC4541 is not set # CONFIG_TI_TLC4541 is not set
# CONFIG_VF610_ADC is not set # CONFIG_VF610_ADC is not set
@ -4549,9 +4564,10 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_BME680 is not set # CONFIG_BME680 is not set
# CONFIG_CCS811 is not set # CONFIG_CCS811 is not set
# CONFIG_IAQCORE is not set # CONFIG_IAQCORE is not set
# CONFIG_PMS7003 is not set
# CONFIG_SENSIRION_SGP30 is not set
# CONFIG_SPS30 is not set
# CONFIG_VZ89X is not set # CONFIG_VZ89X is not set
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# #
# Hid Sensor IIO Common # Hid Sensor IIO Common
@ -4600,6 +4616,7 @@ CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_TI_DAC082S085 is not set # CONFIG_TI_DAC082S085 is not set
# CONFIG_TI_DAC5571 is not set # CONFIG_TI_DAC5571 is not set
# CONFIG_TI_DAC7311 is not set # CONFIG_TI_DAC7311 is not set
# CONFIG_TI_DAC7612 is not set
# CONFIG_VF610_DAC is not set # CONFIG_VF610_DAC is not set
# #
@ -4682,7 +4699,6 @@ CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_CM3323 is not set # CONFIG_CM3323 is not set
# CONFIG_CM3605 is not set # CONFIG_CM3605 is not set
# CONFIG_CM36651 is not set # CONFIG_CM36651 is not set
CONFIG_IIO_CROS_EC_LIGHT_PROX=m
# CONFIG_GP2AP020A00F is not set # CONFIG_GP2AP020A00F is not set
# CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29018 is not set
# CONFIG_SENSORS_ISL29028 is not set # CONFIG_SENSORS_ISL29028 is not set
@ -4692,6 +4708,7 @@ CONFIG_IIO_CROS_EC_LIGHT_PROX=m
# CONFIG_LTR501 is not set # CONFIG_LTR501 is not set
# CONFIG_LV0104CS is not set # CONFIG_LV0104CS is not set
# CONFIG_MAX44000 is not set # CONFIG_MAX44000 is not set
# CONFIG_MAX44009 is not set
# CONFIG_OPT3001 is not set # CONFIG_OPT3001 is not set
# CONFIG_PA12203001 is not set # CONFIG_PA12203001 is not set
# CONFIG_SI1133 is not set # CONFIG_SI1133 is not set
@ -4765,7 +4782,6 @@ CONFIG_IIO_CROS_EC_LIGHT_PROX=m
# #
# CONFIG_ABP060MG is not set # CONFIG_ABP060MG is not set
# CONFIG_BMP280 is not set # CONFIG_BMP280 is not set
CONFIG_IIO_CROS_EC_BARO=m
# CONFIG_HP03 is not set # CONFIG_HP03 is not set
# CONFIG_MPL115_I2C is not set # CONFIG_MPL115_I2C is not set
# CONFIG_MPL115_SPI is not set # CONFIG_MPL115_SPI is not set
@ -4811,7 +4827,6 @@ CONFIG_IIO_CROS_EC_BARO=m
# CONFIG_TSYS02D is not set # CONFIG_TSYS02D is not set
CONFIG_PWM=y CONFIG_PWM=y
CONFIG_PWM_SYSFS=y CONFIG_PWM_SYSFS=y
CONFIG_PWM_CROS_EC=m
# CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_FSL_FTM is not set
# CONFIG_PWM_PCA9685 is not set # CONFIG_PWM_PCA9685 is not set
# CONFIG_PWM_SUN4I is not set # CONFIG_PWM_SUN4I is not set
@ -4839,9 +4854,11 @@ CONFIG_RESET_SUNXI=y
CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY=y
CONFIG_PHY_XGENE=y CONFIG_PHY_XGENE=y
CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN4I_USB=y
# CONFIG_PHY_SUN6I_MIPI_DPHY is not set
# CONFIG_PHY_SUN9I_USB is not set # CONFIG_PHY_SUN9I_USB is not set
# CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_CADENCE_DP is not set # CONFIG_PHY_CADENCE_DP is not set
# CONFIG_PHY_CADENCE_DPHY is not set
# CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_SIERRA is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_HSIC is not set
@ -4886,11 +4903,13 @@ CONFIG_NVMEM=y
CONFIG_PM_OPP=y CONFIG_PM_OPP=y
# CONFIG_SIOX is not set # CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set # CONFIG_SLIMBUS is not set
# CONFIG_INTERCONNECT is not set
# #
# File systems # File systems
# #
CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_FS_IOMAP=y CONFIG_FS_IOMAP=y
# CONFIG_EXT2_FS is not set # CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set # CONFIG_EXT3_FS is not set
@ -4898,7 +4917,6 @@ CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_ENCRYPTION is not set
# CONFIG_EXT4_DEBUG is not set # CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set # CONFIG_JBD2_DEBUG is not set
@ -4928,7 +4946,6 @@ CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_POSIX_ACL=y
# CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_FS_SECURITY is not set
# CONFIG_F2FS_CHECK_FS is not set # CONFIG_F2FS_CHECK_FS is not set
# CONFIG_F2FS_FS_ENCRYPTION is not set
# CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set
# CONFIG_FS_DAX is not set # CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y
@ -5163,13 +5180,14 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
# CONFIG_SECURITY_APPARMOR is not set # CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not set # CONFIG_SECURITY_YAMA is not set
# CONFIG_SECURITY_SAFESETID is not set
CONFIG_INTEGRITY=y CONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not set # CONFIG_INTEGRITY_SIGNATURE is not set
CONFIG_INTEGRITY_AUDIT=y CONFIG_INTEGRITY_AUDIT=y
# CONFIG_IMA is not set # CONFIG_IMA is not set
# CONFIG_EVM is not set # CONFIG_EVM is not set
CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY="" CONFIG_LSM="yama,loadpin,safesetid,integrity"
CONFIG_XOR_BLOCKS=m CONFIG_XOR_BLOCKS=m
CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
@ -5400,7 +5418,8 @@ CONFIG_HAS_DMA=y
CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_DMA_DECLARE_COHERENT=y
CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y
@ -5408,6 +5427,18 @@ CONFIG_ARCH_HAS_DMA_MMAP_PGPROT=y
CONFIG_SWIOTLB=y CONFIG_SWIOTLB=y
CONFIG_DMA_REMAP=y CONFIG_DMA_REMAP=y
CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_DIRECT_REMAP=y
CONFIG_DMA_CMA=y
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=384
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
CONFIG_SGL_ALLOC=y CONFIG_SGL_ALLOC=y
CONFIG_CPU_RMAP=y CONFIG_CPU_RMAP=y
CONFIG_DQL=y CONFIG_DQL=y
@ -5438,6 +5469,7 @@ CONFIG_SBITMAP=y
# printk and dmesg options # printk and dmesg options
# #
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_PRINTK_CALLER is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
@ -5457,7 +5489,6 @@ CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set # CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set # CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set
@ -5475,6 +5506,7 @@ CONFIG_DEBUG_KERNEL=y
# #
# CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS is not set
@ -5563,7 +5595,6 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set # CONFIG_FTRACE is not set
# CONFIG_DMA_API_DEBUG is not set
CONFIG_RUNTIME_TESTING_MENU=y CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIST_SORT is not set
@ -5586,6 +5617,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_HASH is not set # CONFIG_TEST_HASH is not set
# CONFIG_TEST_IDA is not set # CONFIG_TEST_IDA is not set
# CONFIG_TEST_LKM is not set # CONFIG_TEST_LKM is not set
# CONFIG_TEST_VMALLOC is not set
# CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set # CONFIG_TEST_BPF is not set
# CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_FIND_BIT_BENCHMARK is not set
@ -5595,6 +5627,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_STATIC_KEYS is not set # CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_KMOD is not set # CONFIG_TEST_KMOD is not set
# CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_STACKINIT is not set
CONFIG_MEMTEST=y CONFIG_MEMTEST=y
# CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set # CONFIG_SAMPLES is not set
@ -5602,6 +5635,7 @@ CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set # CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set # CONFIG_UBSAN is not set
CONFIG_UBSAN_ALIGNMENT=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y CONFIG_STRICT_DEVMEM=y
# CONFIG_IO_STRICT_DEVMEM is not set # CONFIG_IO_STRICT_DEVMEM is not set

View File

@ -1,15 +1,16 @@
# #
# Automatically generated file; DO NOT EDIT. # Automatically generated file; DO NOT EDIT.
# Linux/arm 5.0.2 Kernel Configuration # Linux/arm 5.1.5 Kernel Configuration
# #
# #
# Compiler: armv7ve-libreelec-linux-gnueabi-gcc-8.2.0 (GCC) 8.2.0 # Compiler: armv7ve-libreelec-linux-gnueabi-gcc-8.3.0 (GCC) 8.3.0
# #
CONFIG_CC_IS_GCC=y CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=80200 CONFIG_GCC_VERSION=80300
CONFIG_CLANG_VERSION=0 CONFIG_CLANG_VERSION=0
CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_BUILDTIME_EXTABLE_SORT=y
@ -178,6 +179,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y CONFIG_EVENTFD=y
CONFIG_SHMEM=y CONFIG_SHMEM=y
CONFIG_AIO=y CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y CONFIG_KALLSYMS=y
@ -278,6 +280,7 @@ CONFIG_ARCH_MULTI_V6_V7=y
# CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_KEYSTONE is not set
# CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_MEDIATEK is not set
# CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MESON is not set
# CONFIG_ARCH_MILBEAUT is not set
# CONFIG_ARCH_MMP is not set # CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_MVEBU is not set
# CONFIG_ARCH_NPCM is not set # CONFIG_ARCH_NPCM is not set
@ -488,6 +491,7 @@ CONFIG_CPUFREQ_DT_PLATDEV=y
CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
# #
# ARM CPU Idle Drivers # ARM CPU Idle Drivers
@ -536,7 +540,6 @@ CONFIG_ARM_PSCI_FW=y
# CONFIG_ARM_PSCI_CHECKER is not set # CONFIG_ARM_PSCI_CHECKER is not set
# CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_FIRMWARE_MEMMAP is not set
# CONFIG_FW_CFG_SYSFS is not set # CONFIG_FW_CFG_SYSFS is not set
# CONFIG_INTEL_STRATIX10_SERVICE is not set
CONFIG_HAVE_ARM_SMCCC=y CONFIG_HAVE_ARM_SMCCC=y
# CONFIG_GOOGLE_FIRMWARE is not set # CONFIG_GOOGLE_FIRMWARE is not set
@ -569,6 +572,7 @@ CONFIG_GENERIC_IDLE_POLL_SETUP=y
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_32BIT_OFF_T=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK=y
@ -594,6 +598,8 @@ CONFIG_ARCH_MMAP_RND_BITS=8
CONFIG_CLONE_BACKWARDS=y CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y CONFIG_OLD_SIGACTION=y
CONFIG_64BIT_TIME=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
@ -608,9 +614,8 @@ CONFIG_REFCOUNT_FULL=y
# #
# CONFIG_GCOV_KERNEL is not set # CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_PLUGIN_HOSTCC="g++" CONFIG_PLUGIN_HOSTCC=""
CONFIG_HAVE_GCC_PLUGINS=y CONFIG_HAVE_GCC_PLUGINS=y
# CONFIG_GCC_PLUGINS is not set
CONFIG_RT_MUTEXES=y CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0 CONFIG_BASE_SMALL=0
CONFIG_MODULES=y CONFIG_MODULES=y
@ -731,6 +736,7 @@ CONFIG_SKB_EXTENSIONS=y
CONFIG_PACKET=y CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set # CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_UNIX_SCM=y
# CONFIG_UNIX_DIAG is not set # CONFIG_UNIX_DIAG is not set
# CONFIG_TLS is not set # CONFIG_TLS is not set
CONFIG_XFRM=y CONFIG_XFRM=y
@ -838,6 +844,7 @@ CONFIG_NF_NAT_NEEDED=y
CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=y CONFIG_NF_NAT_REDIRECT=y
CONFIG_NF_NAT_MASQUERADE=y
# CONFIG_NF_TABLES is not set # CONFIG_NF_TABLES is not set
CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XTABLES=m
@ -973,8 +980,6 @@ CONFIG_NF_DEFRAG_IPV4=m
# CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_ARP is not set
# CONFIG_NF_LOG_IPV4 is not set # CONFIG_NF_LOG_IPV4 is not set
# CONFIG_NF_REJECT_IPV4 is not set # CONFIG_NF_REJECT_IPV4 is not set
CONFIG_NF_NAT_IPV4=m
CONFIG_NF_NAT_MASQUERADE_IPV4=y
CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_IPTABLES=m
# CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set # CONFIG_IP_NF_MATCH_ECN is not set
@ -998,7 +1003,6 @@ CONFIG_IP_NF_TARGET_REDIRECT=m
# CONFIG_NF_DUP_IPV6 is not set # CONFIG_NF_DUP_IPV6 is not set
# CONFIG_NF_REJECT_IPV6 is not set # CONFIG_NF_REJECT_IPV6 is not set
# CONFIG_NF_LOG_IPV6 is not set # CONFIG_NF_LOG_IPV6 is not set
# CONFIG_NF_NAT_IPV6 is not set
# CONFIG_IP6_NF_IPTABLES is not set # CONFIG_IP6_NF_IPTABLES is not set
CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_DEFRAG_IPV6=m
# CONFIG_BRIDGE_NF_EBTABLES is not set # CONFIG_BRIDGE_NF_EBTABLES is not set
@ -1171,16 +1175,23 @@ CONFIG_BT_LEDS=y
CONFIG_BT_INTEL=m CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m CONFIG_BT_BCM=m
CONFIG_BT_RTL=m CONFIG_BT_RTL=m
CONFIG_BT_QCA=m
CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB=m
# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set # CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTUSB_RTL=y
CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_NOKIA is not set
CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIUART_INTEL=y CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIUART_AG6XX=y CONFIG_BT_HCIUART_AG6XX=y
CONFIG_BT_HCIUART_MRVL=y CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBCM203X=m
@ -1190,6 +1201,7 @@ CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=m CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_ATH3K=m CONFIG_BT_ATH3K=m
CONFIG_BT_MTKUART=m
# CONFIG_AF_RXRPC is not set # CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set # CONFIG_AF_KCM is not set
CONFIG_WIRELESS=y CONFIG_WIRELESS=y
@ -1230,7 +1242,6 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_DST_CACHE=y CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y CONFIG_GRO_CELLS=y
# CONFIG_NET_DEVLINK is not set # CONFIG_NET_DEVLINK is not set
CONFIG_MAY_USE_DEVLINK=y
# CONFIG_FAILOVER is not set # CONFIG_FAILOVER is not set
CONFIG_HAVE_EBPF_JIT=y CONFIG_HAVE_EBPF_JIT=y
@ -1272,17 +1283,6 @@ CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set # CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_CMA=y
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=256
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_GENERIC_ARCH_TOPOLOGY=y CONFIG_GENERIC_ARCH_TOPOLOGY=y
# #
@ -1391,6 +1391,7 @@ CONFIG_EEPROM_93CX6=m
# #
# VOP Bus Driver # VOP Bus Driver
# #
# CONFIG_VOP_BUS is not set
# #
# Intel MIC Host Driver # Intel MIC Host Driver
@ -1451,7 +1452,6 @@ CONFIG_SCSI_LOWLEVEL=y
# CONFIG_SCSI_UFSHCD is not set # CONFIG_SCSI_UFSHCD is not set
# CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_DH is not set # CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
CONFIG_ATA=y CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_SATA_PMP=y CONFIG_SATA_PMP=y
@ -1525,6 +1525,7 @@ CONFIG_DUMMY=m
# CONFIG_NET_TEAM is not set # CONFIG_NET_TEAM is not set
CONFIG_MACVLAN=m CONFIG_MACVLAN=m
# CONFIG_MACVTAP is not set # CONFIG_MACVTAP is not set
CONFIG_IPVLAN_L3S=y
CONFIG_IPVLAN=m CONFIG_IPVLAN=m
# CONFIG_IPVTAP is not set # CONFIG_IPVTAP is not set
CONFIG_VXLAN=m CONFIG_VXLAN=m
@ -1588,6 +1589,7 @@ CONFIG_NET_VENDOR_NI=y
# CONFIG_ETHOC is not set # CONFIG_ETHOC is not set
CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
# CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_EMAC is not set
# CONFIG_RMNET is not set # CONFIG_RMNET is not set
CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_RENESAS=y
@ -1615,6 +1617,7 @@ CONFIG_MDIO_BUS=y
CONFIG_MDIO_BUS_MUX=y CONFIG_MDIO_BUS_MUX=y
# CONFIG_MDIO_BUS_MUX_GPIO is not set # CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_BUS_MUX_MMIOREG is not set
# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
# CONFIG_MDIO_HISI_FEMAC is not set # CONFIG_MDIO_HISI_FEMAC is not set
# CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_MSCC_MIIM is not set
CONFIG_MDIO_SUN4I=y CONFIG_MDIO_SUN4I=y
@ -1910,6 +1913,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_ATMEL_CAPTOUCH is not set
# CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set # CONFIG_INPUT_E3X0_BUTTON is not set
# CONFIG_INPUT_MSM_VIBRATOR is not set
# CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GP2A is not set
# CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_BEEPER is not set
@ -1968,6 +1972,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_N_GSM is not set # CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set # CONFIG_TRACE_SINK is not set
CONFIG_LDISC_AUTOLOAD=y
CONFIG_DEVMEM=y CONFIG_DEVMEM=y
CONFIG_DEVKMEM=y CONFIG_DEVKMEM=y
@ -2010,12 +2015,12 @@ CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_ST_ASC is not set
# CONFIG_SERIAL_DEV_BUS is not set CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
# CONFIG_TTY_PRINTK is not set # CONFIG_TTY_PRINTK is not set
# CONFIG_HVC_DCC is not set # CONFIG_HVC_DCC is not set
# CONFIG_IPMI_HANDLER is not set # CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set # CONFIG_HW_RANDOM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set # CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set # CONFIG_TCG_TPM is not set
# CONFIG_XILLYBUS is not set # CONFIG_XILLYBUS is not set
@ -2094,11 +2099,13 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DESIGNWARE is not set # CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_NXP_FLEXSPI is not set
# CONFIG_SPI_GPIO is not set # CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_FSL_SPI is not set
# CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_OC_TINY is not set
# CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_ROCKCHIP is not set
# CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
CONFIG_SPI_SUN4I=y CONFIG_SPI_SUN4I=y
CONFIG_SPI_SUN6I=y CONFIG_SPI_SUN6I=y
# CONFIG_SPI_MXIC is not set # CONFIG_SPI_MXIC is not set
@ -2183,12 +2190,14 @@ CONFIG_GPIO_SYSFS=y
# CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSCON is not set
# CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_ZEVIO is not set # CONFIG_GPIO_ZEVIO is not set
# CONFIG_GPIO_AMD_FCH is not set
# #
# I2C GPIO expanders # I2C GPIO expanders
# #
# CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set # CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCA953X is not set
@ -2541,6 +2550,8 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set # CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TQMX86 is not set
# CONFIG_MFD_LOCHNAGAR is not set
# CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM8400 is not set
@ -2549,6 +2560,8 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set # CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD718XX is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_RAVE_SP_CORE is not set
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DEBUG is not set
CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_FIXED_VOLTAGE=y
@ -2902,10 +2915,6 @@ CONFIG_VIDEO_OV7640=m
# Miscellaneous helper chips # Miscellaneous helper chips
# #
#
# Sensors used on soc_camera driver
#
# #
# Media SPI Adapters # Media SPI Adapters
# #
@ -3088,8 +3097,13 @@ CONFIG_DRM_KMS_CMA_HELPER=y
# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_SIL164 is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_I2C_NXP_TDA9950 is not set
#
# ARM devices
#
# CONFIG_DRM_HDLCD is not set # CONFIG_DRM_HDLCD is not set
# CONFIG_DRM_MALI_DISPLAY is not set # CONFIG_DRM_MALI_DISPLAY is not set
# CONFIG_DRM_KOMEDA is not set
# #
# ACP (Audio CoProcessor) Configuration # ACP (Audio CoProcessor) Configuration
@ -3158,6 +3172,7 @@ CONFIG_DRM_DW_HDMI=y
CONFIG_DRM_DW_HDMI_I2S_AUDIO=y CONFIG_DRM_DW_HDMI_I2S_AUDIO=y
CONFIG_DRM_DW_HDMI_CEC=y CONFIG_DRM_DW_HDMI_CEC=y
# CONFIG_DRM_STI is not set # CONFIG_DRM_STI is not set
# CONFIG_DRM_ETNAVIV is not set
# CONFIG_DRM_ARCPGU is not set # CONFIG_DRM_ARCPGU is not set
# CONFIG_DRM_MXSFB is not set # CONFIG_DRM_MXSFB is not set
# CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_TINYDRM is not set
@ -3273,9 +3288,11 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set # CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_I2S_HI6210_I2S is not set
# CONFIG_SND_SOC_IMG is not set # CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_MTK_BTCVSD is not set
# #
# STMicroelectronics STM32 SOC audio support # STMicroelectronics STM32 SOC audio support
@ -3291,6 +3308,8 @@ CONFIG_SND_SUN4I_I2S=y
CONFIG_SND_SUN4I_SPDIF=y CONFIG_SND_SUN4I_SPDIF=y
CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y
# CONFIG_SND_SOC_XILINX_I2S is not set # CONFIG_SND_SOC_XILINX_I2S is not set
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set
# CONFIG_ZX_TDM is not set # CONFIG_ZX_TDM is not set
CONFIG_SND_SOC_I2C_AND_SPI=y CONFIG_SND_SOC_I2C_AND_SPI=y
@ -3318,6 +3337,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_CS35L33 is not set # CONFIG_SND_SOC_CS35L33 is not set
# CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L34 is not set
# CONFIG_SND_SOC_CS35L35 is not set # CONFIG_SND_SOC_CS35L35 is not set
# CONFIG_SND_SOC_CS35L36 is not set
# CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L42 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L52 is not set
@ -3329,6 +3349,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS43130 is not set # CONFIG_SND_SOC_CS43130 is not set
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_DMIC is not set # CONFIG_SND_SOC_DMIC is not set
@ -3359,6 +3380,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
# CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SGTL5000 is not set
@ -3405,6 +3427,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8904 is not set
# CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8960 is not set
# CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8974 is not set
@ -3413,6 +3436,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_ZX_AUD96P22 is not set
# CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MAX9759 is not set
# CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8810 is not set
# CONFIG_SND_SOC_NAU8822 is not set # CONFIG_SND_SOC_NAU8822 is not set
@ -3420,9 +3444,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_TPA6130A2 is not set # CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD_UTILS=y
CONFIG_SND_SIMPLE_CARD=y CONFIG_SND_SIMPLE_CARD=y
CONFIG_SND_SIMPLE_SCU_CARD=y
CONFIG_SND_AUDIO_GRAPH_CARD=y CONFIG_SND_AUDIO_GRAPH_CARD=y
CONFIG_SND_AUDIO_GRAPH_SCU_CARD=y
# #
# HID support # HID support
@ -3467,6 +3489,7 @@ CONFIG_HID_EZKEY=y
# CONFIG_HID_KYE is not set # CONFIG_HID_KYE is not set
# CONFIG_HID_UCLOGIC is not set # CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set # CONFIG_HID_WALTOP is not set
# CONFIG_HID_VIEWSONIC is not set
# CONFIG_HID_GYRATION is not set # CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set # CONFIG_HID_ICADE is not set
# CONFIG_HID_ITE is not set # CONFIG_HID_ITE is not set
@ -3483,6 +3506,7 @@ CONFIG_HID_LOGITECH=y
# CONFIG_LOGIG940_FF is not set # CONFIG_LOGIG940_FF is not set
# CONFIG_LOGIWHEELS_FF is not set # CONFIG_LOGIWHEELS_FF is not set
# CONFIG_HID_MAGICMOUSE is not set # CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MALTRON is not set
# CONFIG_HID_MAYFLASH is not set # CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_REDRAGON is not set # CONFIG_HID_REDRAGON is not set
CONFIG_HID_MICROSOFT=y CONFIG_HID_MICROSOFT=y
@ -3550,6 +3574,7 @@ CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_MON=m CONFIG_USB_MON=m
# CONFIG_USB_WUSB_CBAF is not set # CONFIG_USB_WUSB_CBAF is not set
@ -3561,6 +3586,7 @@ CONFIG_USB_MON=m
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set
CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_EHCI_FSL is not set
CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_EHCI_HCD_PLATFORM=y
# CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP116X_HCD is not set
@ -3872,6 +3898,7 @@ CONFIG_RTC_INTF_DEV=y
# I2C RTC drivers # I2C RTC drivers
# #
# CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABEOZ9 is not set
# CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1374 is not set
@ -3896,7 +3923,9 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3028 is not set
# CONFIG_RTC_DRV_RV8803 is not set # CONFIG_RTC_DRV_RV8803 is not set
# CONFIG_RTC_DRV_SD3078 is not set
# #
# SPI RTC drivers # SPI RTC drivers
@ -3949,6 +3978,7 @@ CONFIG_RTC_I2C_AND_SPI=y
# on-CPU RTC drivers # on-CPU RTC drivers
# #
CONFIG_RTC_DRV_SUN6I=y CONFIG_RTC_DRV_SUN6I=y
# CONFIG_RTC_DRV_CADENCE is not set
# CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_SNVS is not set
# CONFIG_RTC_DRV_R7301 is not set # CONFIG_RTC_DRV_R7301 is not set
@ -3956,7 +3986,6 @@ CONFIG_RTC_DRV_SUN6I=y
# #
# HID Sensor RTC drivers # HID Sensor RTC drivers
# #
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
CONFIG_DMADEVICES=y CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set # CONFIG_DMADEVICES_DEBUG is not set
@ -3970,6 +3999,7 @@ CONFIG_DMA_OF=y
CONFIG_DMA_SUN6I=y CONFIG_DMA_SUN6I=y
# CONFIG_DW_AXI_DMAC is not set # CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set # CONFIG_FSL_EDMA is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IDMA64 is not set
# CONFIG_NBPFAXI_DMA is not set # CONFIG_NBPFAXI_DMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA_MGMT is not set
@ -4018,7 +4048,6 @@ CONFIG_STAGING=y
# #
# Analog to digital converters # Analog to digital converters
# #
# CONFIG_AD7606 is not set
# CONFIG_AD7780 is not set # CONFIG_AD7780 is not set
# CONFIG_AD7816 is not set # CONFIG_AD7816 is not set
# CONFIG_AD7192 is not set # CONFIG_AD7192 is not set
@ -4033,7 +4062,6 @@ CONFIG_STAGING=y
# Capacitance to digital converters # Capacitance to digital converters
# #
# CONFIG_AD7150 is not set # CONFIG_AD7150 is not set
# CONFIG_AD7152 is not set
# CONFIG_AD7746 is not set # CONFIG_AD7746 is not set
# #
@ -4065,6 +4093,10 @@ CONFIG_STAGING_MEDIA=y
CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_SUNXI_CEDRUS=y CONFIG_VIDEO_SUNXI_CEDRUS=y
#
# soc_camera sensor drivers
#
# #
# Android # Android
# #
@ -4080,7 +4112,6 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y
# CONFIG_KS7010 is not set # CONFIG_KS7010 is not set
# CONFIG_GREYBUS is not set # CONFIG_GREYBUS is not set
# CONFIG_PI433 is not set # CONFIG_PI433 is not set
# CONFIG_MTK_MMC is not set
# #
# Gasket devices # Gasket devices
@ -4109,6 +4140,7 @@ CONFIG_COMMON_CLK=y
# CONFIG_CLK_QORIQ is not set # CONFIG_CLK_QORIQ is not set
# CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_FIXED_MMIO is not set
CONFIG_SUNXI_CCU=y CONFIG_SUNXI_CCU=y
CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A23_CCU=y
CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A33_CCU=y
@ -4198,6 +4230,7 @@ CONFIG_EXTCON=y
# CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_ADC_JACK is not set
# CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_GPIO is not set
# CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_PTN5150 is not set
# CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not set # CONFIG_EXTCON_USB_GPIO is not set
@ -4254,7 +4287,10 @@ CONFIG_IIO_SW_TRIGGER=y
# CONFIG_AD7291 is not set # CONFIG_AD7291 is not set
# CONFIG_AD7298 is not set # CONFIG_AD7298 is not set
# CONFIG_AD7476 is not set # CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
# CONFIG_AD7766 is not set # CONFIG_AD7766 is not set
# CONFIG_AD7768_1 is not set
# CONFIG_AD7791 is not set # CONFIG_AD7791 is not set
# CONFIG_AD7793 is not set # CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set # CONFIG_AD7887 is not set
@ -4292,6 +4328,7 @@ CONFIG_SUN4I_GPADC=y
# CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS1015 is not set
# CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS7950 is not set
# CONFIG_TI_ADS8688 is not set # CONFIG_TI_ADS8688 is not set
# CONFIG_TI_ADS124S08 is not set
# CONFIG_TI_TLC4541 is not set # CONFIG_TI_TLC4541 is not set
# CONFIG_VF610_ADC is not set # CONFIG_VF610_ADC is not set
@ -4312,6 +4349,9 @@ CONFIG_SUN4I_GPADC=y
# CONFIG_BME680 is not set # CONFIG_BME680 is not set
# CONFIG_CCS811 is not set # CONFIG_CCS811 is not set
# CONFIG_IAQCORE is not set # CONFIG_IAQCORE is not set
# CONFIG_PMS7003 is not set
# CONFIG_SENSIRION_SGP30 is not set
# CONFIG_SPS30 is not set
# CONFIG_VZ89X is not set # CONFIG_VZ89X is not set
# #
@ -4361,6 +4401,7 @@ CONFIG_SUN4I_GPADC=y
# CONFIG_TI_DAC082S085 is not set # CONFIG_TI_DAC082S085 is not set
# CONFIG_TI_DAC5571 is not set # CONFIG_TI_DAC5571 is not set
# CONFIG_TI_DAC7311 is not set # CONFIG_TI_DAC7311 is not set
# CONFIG_TI_DAC7612 is not set
# CONFIG_VF610_DAC is not set # CONFIG_VF610_DAC is not set
# #
@ -4452,6 +4493,7 @@ CONFIG_SUN4I_GPADC=y
# CONFIG_LTR501 is not set # CONFIG_LTR501 is not set
# CONFIG_LV0104CS is not set # CONFIG_LV0104CS is not set
# CONFIG_MAX44000 is not set # CONFIG_MAX44000 is not set
# CONFIG_MAX44009 is not set
# CONFIG_OPT3001 is not set # CONFIG_OPT3001 is not set
# CONFIG_PA12203001 is not set # CONFIG_PA12203001 is not set
# CONFIG_SI1133 is not set # CONFIG_SI1133 is not set
@ -4586,10 +4628,13 @@ CONFIG_RESET_SUNXI=y
# PHY Subsystem # PHY Subsystem
# #
CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PHY_MIPI_DPHY=y
CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN4I_USB=y
CONFIG_PHY_SUN6I_MIPI_DPHY=y
CONFIG_PHY_SUN9I_USB=y CONFIG_PHY_SUN9I_USB=y
# CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_CADENCE_DP is not set # CONFIG_PHY_CADENCE_DP is not set
# CONFIG_PHY_CADENCE_DPHY is not set
# CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_SIERRA is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_HSIC is not set
@ -4627,11 +4672,13 @@ CONFIG_NVMEM_SUNXI_SID=y
CONFIG_PM_OPP=y CONFIG_PM_OPP=y
# CONFIG_SIOX is not set # CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set # CONFIG_SLIMBUS is not set
# CONFIG_INTERCONNECT is not set
# #
# File systems # File systems
# #
CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_VALIDATE_FS_PARSER=y
CONFIG_FS_IOMAP=y CONFIG_FS_IOMAP=y
# CONFIG_EXT2_FS is not set # CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set # CONFIG_EXT3_FS is not set
@ -4639,7 +4686,6 @@ CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_ENCRYPTION is not set
# CONFIG_EXT4_DEBUG is not set # CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set # CONFIG_JBD2_DEBUG is not set
@ -4670,7 +4716,6 @@ CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_FS_POSIX_ACL=y
# CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_FS_SECURITY is not set
# CONFIG_F2FS_CHECK_FS is not set # CONFIG_F2FS_CHECK_FS is not set
# CONFIG_F2FS_FS_ENCRYPTION is not set
# CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set
CONFIG_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y CONFIG_EXPORTFS=y
@ -4869,7 +4914,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
# CONFIG_FORTIFY_SOURCE is not set # CONFIG_FORTIFY_SOURCE is not set
# CONFIG_STATIC_USERMODEHELPER is not set # CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY="" CONFIG_LSM="yama,loadpin,safesetid,integrity"
CONFIG_CRYPTO=y CONFIG_CRYPTO=y
# #
@ -5085,8 +5130,22 @@ CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_DMA_DECLARE_COHERENT=y
CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
CONFIG_DMA_REMAP=y CONFIG_DMA_REMAP=y
CONFIG_DMA_CMA=y
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=256
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
# CONFIG_DMA_API_DEBUG is not set
CONFIG_SGL_ALLOC=y CONFIG_SGL_ALLOC=y
CONFIG_CPU_RMAP=y CONFIG_CPU_RMAP=y
CONFIG_DQL=y CONFIG_DQL=y
@ -5116,6 +5175,7 @@ CONFIG_SBITMAP=y
# printk and dmesg options # printk and dmesg options
# #
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_PRINTK_CALLER is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
@ -5131,7 +5191,6 @@ CONFIG_FRAME_WARN=1024
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set # CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set # CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set
@ -5147,6 +5206,7 @@ CONFIG_DEBUG_KERNEL=y
# #
# CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_POISONING is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS is not set
@ -5231,7 +5291,6 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set # CONFIG_FTRACE is not set
# CONFIG_DMA_API_DEBUG is not set
CONFIG_RUNTIME_TESTING_MENU=y CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_LIST_SORT is not set
@ -5254,6 +5313,7 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_HASH is not set # CONFIG_TEST_HASH is not set
# CONFIG_TEST_IDA is not set # CONFIG_TEST_IDA is not set
# CONFIG_TEST_LKM is not set # CONFIG_TEST_LKM is not set
# CONFIG_TEST_VMALLOC is not set
# CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set # CONFIG_TEST_BPF is not set
# CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_FIND_BIT_BENCHMARK is not set
@ -5263,12 +5323,14 @@ CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_STATIC_KEYS is not set # CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_KMOD is not set # CONFIG_TEST_KMOD is not set
# CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_STACKINIT is not set
# CONFIG_MEMTEST is not set # CONFIG_MEMTEST is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set # CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set # CONFIG_KGDB is not set
# CONFIG_UBSAN is not set # CONFIG_UBSAN is not set
CONFIG_UBSAN_ALIGNMENT=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set # CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM_PTDUMP_DEBUGFS is not set # CONFIG_ARM_PTDUMP_DEBUGFS is not set

View File

@ -401,9 +401,9 @@ index ccb5aa8468e0..e78be449e763 100644
--- a/include/drm/bridge/dw_hdmi.h --- a/include/drm/bridge/dw_hdmi.h
+++ b/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h
@@ -156,6 +156,8 @@ void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense); @@ -156,6 +156,8 @@ void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense);
void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate);
void dw_hdmi_audio_enable(struct dw_hdmi *hdmi); void dw_hdmi_audio_enable(struct dw_hdmi *hdmi);
void dw_hdmi_audio_disable(struct dw_hdmi *hdmi); void dw_hdmi_audio_disable(struct dw_hdmi *hdmi);
void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi);
+void dw_hdmi_set_update_eld(struct dw_hdmi *hdmi, +void dw_hdmi_set_update_eld(struct dw_hdmi *hdmi,
+ void (*update_eld)(struct device *dev, u8 *eld)); + void (*update_eld)(struct device *dev, u8 *eld));

View File

@ -674,3 +674,316 @@ index b98add3cdedd..d0429c0e6b6b 100644
-- --
2.21.0 2.21.0
From ed19ec00d4d62a74857ad9c2ea1dbf9671ac3580 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:36:54 +0100
Subject: [PATCH 1/6] dt-bindings: media: cedrus: Add H6 compatible
This adds a compatible for H6. H6 VPU supports 10-bit HEVC decoding and
additional AFBC output format for HEVC.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
Documentation/devicetree/bindings/media/cedrus.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/media/cedrus.txt b/Documentation/devicetree/bindings/media/cedrus.txt
index bce0705df953..20c82fb0c343 100644
--- a/Documentation/devicetree/bindings/media/cedrus.txt
+++ b/Documentation/devicetree/bindings/media/cedrus.txt
@@ -13,6 +13,7 @@ Required properties:
- "allwinner,sun8i-h3-video-engine"
- "allwinner,sun50i-a64-video-engine"
- "allwinner,sun50i-h5-video-engine"
+ - "allwinner,sun50i-h6-video-engine"
- reg : register base and length of VE;
- clocks : list of clock specifiers, corresponding to entries in
the clock-names property;
--
2.20.1
From 744c66f8c328ef40b6fb246f8b9f2daa9cce4d9d Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:47:33 +0100
Subject: [PATCH 3/6] media: cedrus: Add support for H6
H6 has improved VPU. It supports 10-bit HEVC decoding and AFBC output
format for HEVC.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/staging/media/sunxi/cedrus/cedrus.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index ff11cbeba205..b98add3cdedd 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -396,6 +396,11 @@ static const struct cedrus_variant sun50i_h5_cedrus_variant = {
.capabilities = CEDRUS_CAPABILITY_UNTILED,
};
+static const struct cedrus_variant sun50i_h6_cedrus_variant = {
+ .capabilities = CEDRUS_CAPABILITY_UNTILED,
+ .quirks = CEDRUS_QUIRK_NO_DMA_OFFSET,
+};
+
static const struct of_device_id cedrus_dt_match[] = {
{
.compatible = "allwinner,sun4i-a10-video-engine",
@@ -425,6 +430,10 @@ static const struct of_device_id cedrus_dt_match[] = {
.compatible = "allwinner,sun50i-h5-video-engine",
.data = &sun50i_h5_cedrus_variant,
},
+ {
+ .compatible = "allwinner,sun50i-h6-video-engine",
+ .data = &sun50i_h6_cedrus_variant,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, cedrus_dt_match);
--
2.20.1
From c1b3128ac98c05c0afde4e6e065d6b1f2ae1dfa7 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 28 Jan 2019 19:59:27 +0100
Subject: [PATCH 6/6] arm64: dts: allwinner: h6: Add Video Engine node
This adds the Video engine node for H6. It can use whole DRAM range so
there is no need for reserved memory node.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index 247dc0a5ce89..de4b7a1f1012 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -146,6 +146,17 @@
};
};
+ video-codec@1c0e000 {
+ compatible = "allwinner,sun50i-h6-video-engine";
+ reg = <0x01c0e000 0x2000>;
+ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
+ <&ccu CLK_MBUS_VE>;
+ clock-names = "ahb", "mod", "ram";
+ resets = <&ccu RST_BUS_VE>;
+ interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+ allwinner,sram = <&ve_sram 1>;
+ };
+
syscon: syscon@3000000 {
compatible = "allwinner,sun50i-h6-system-control",
"allwinner,sun50i-a64-system-control";
--
2.20.1
From 87effaae9e90474546d441b9123bca824e670a0b Mon Sep 17 00:00:00 2001
From: Fish Lin <linfish@google.com>
Date: Thu, 28 Mar 2019 23:20:46 -0400
Subject: [PATCH] media: v4l: add I / P frame min max QP definitions
Add following V4L2 QP parameters for H.264:
* V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP
* V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP
* V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP
* V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP
These controls will limit QP range for intra and inter frame,
provide more manual control to improve video encode quality.
Signed-off-by: Fish Lin <linfish@google.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
.../media/uapi/v4l/ext-ctrls-codec.rst | 24 +++++++++++++++++++
drivers/media/v4l2-core/v4l2-ctrls.c | 4 ++++
include/uapi/linux/v4l2-controls.h | 4 ++++
3 files changed, 32 insertions(+)
diff --git a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
index 67a122339c0e..4a8446203085 100644
--- a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
+++ b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
@@ -1055,6 +1055,30 @@ enum v4l2_mpeg_video_h264_entropy_mode -
Quantization parameter for an B frame for H264. Valid range: from 0
to 51.
+``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)``
+ Minimum quantization parameter for the H264 I frame to limit I frame
+ quality to a range. Valid range: from 0 to 51. If
+ V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
+ should be chosen to meet both requirements.
+
+``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)``
+ Maximum quantization parameter for the H264 I frame to limit I frame
+ quality to a range. Valid range: from 0 to 51. If
+ V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
+ should be chosen to meet both requirements.
+
+``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)``
+ Minimum quantization parameter for the H264 P frame to limit P frame
+ quality to a range. Valid range: from 0 to 51. If
+ V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
+ should be chosen to meet both requirements.
+
+``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)``
+ Maximum quantization parameter for the H264 P frame to limit P frame
+ quality to a range. Valid range: from 0 to 51. If
+ V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
+ should be chosen to meet both requirements.
+
``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
Quantization parameter for an I frame for MPEG4. Valid range: from 1
to 31.
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index b1ae2e555c68..89a1fe564675 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -828,6 +828,10 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION:
return "H264 Constrained Intra Pred";
case V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET: return "H264 Chroma QP Index Offset";
+ case V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP: return "H264 I-Frame Minimum QP Value";
+ case V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP: return "H264 I-Frame Maximum QP Value";
+ case V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP: return "H264 P-Frame Minimum QP Value";
+ case V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP: return "H264 P-Frame Maximum QP Value";
case V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP: return "MPEG4 I-Frame QP Value";
case V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP: return "MPEG4 P-Frame QP Value";
case V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP: return "MPEG4 B-Frame QP Value";
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 78816ec88751..37807f23231e 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -539,6 +539,10 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type {
#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382)
#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383)
#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384)
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385)
+#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386)
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387)
+#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388)
#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
--
2.21.0
From 26fae7a41313506931c9be5f532c12d8d654f153 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Tue, 2 Apr 2019 23:06:22 +0200
Subject: [PATCH] clk: sunxi-ng: h6: Preset hdmi-cec clock parent
H6 manual and BSP clock driver both states that hdmi-cec clock has two
possible parents, osc32k and pll-periph0-2x with 36621 predivider.
Because pll-periph0-2x is always 1.2 GHz, both parents give same
hdmi-cec rate - 32768 Hz, which is exactly the rate needed for HDMI CEC
controller to operate correctly.
However, for some reason, HDMI CEC controller doesn't work if default
parent (osc32k) is used. BSP HDMI driver also always use pll-periph0-2x
as hdmi-cec clock parent.
In order to solve the issue, preset hdmi-cec clock parent to
pll-periph0-2x.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
index daf78966555e..33980067b06e 100644
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -656,6 +656,8 @@ static const char * const hdmi_cec_parents[] = { "osc32k", "pll-periph0-2x" };
static const struct ccu_mux_fixed_prediv hdmi_cec_predivs[] = {
{ .index = 1, .div = 36621 },
};
+
+#define SUN50I_H6_HDMI_CEC_CLK_REG 0xb10
static struct ccu_mux hdmi_cec_clk = {
.enable = BIT(31),
@@ -1200,6 +1202,15 @@ static int sun50i_h6_ccu_probe(struct platform_device *pdev)
val &= ~(GENMASK(21, 16) | BIT(0));
writel(val | (7 << 16), reg + SUN50I_H6_PLL_AUDIO_REG);
+ /*
+ * First clock parent (osc32K) is unusable for CEC. But since there
+ * is no good way to force parent switch (both run with same frequency),
+ * just set second clock parent here.
+ */
+ val = readl(reg + SUN50I_H6_HDMI_CEC_CLK_REG);
+ val |= BIT(24);
+ writel(val, reg + SUN50I_H6_HDMI_CEC_CLK_REG);
+
return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_h6_ccu_desc);
}
--
2.21.0
From 6597ce3de9e443f0cab693496fc529f55ae6eb01 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Wed, 3 Apr 2019 17:14:03 +0200
Subject: [PATCH] clk: sunxi-ng: h6: Allow video & vpu clocks to change parent
rate
Video related clocks need to set rate as close as possible to the
requested one, so they should be able to change parent clock rate.
When processing 4K video, VPU clock has to be set to higher rate than it
is default parent rate. Because of that, VPU clock should be able to
change parent clock rate.
Add CLK_SET_RATE_PARENT flag to tcon-lcd0, tcon-tv0 and ve.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
index 33980067b06e..3c32d7798f27 100644
--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
+++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c
@@ -311,7 +311,7 @@ static SUNXI_CCU_M_WITH_MUX_GATE(ve_clk, "ve", ve_parents, 0x690,
0, 3, /* M */
24, 1, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_ve_clk, "bus-ve", "psi-ahb1-ahb2",
0x69c, BIT(0), 0);
@@ -691,7 +691,7 @@ static SUNXI_CCU_MUX_WITH_GATE(tcon_lcd0_clk, "tcon-lcd0",
tcon_lcd0_parents, 0xb60,
24, 3, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_tcon_lcd0_clk, "bus-tcon-lcd0", "ahb3",
0xb7c, BIT(0), 0);
@@ -706,7 +706,7 @@ static SUNXI_CCU_MP_WITH_MUX_GATE(tcon_tv0_clk, "tcon-tv0",
8, 2, /* P */
24, 3, /* mux */
BIT(31), /* gate */
- 0);
+ CLK_SET_RATE_PARENT);
static SUNXI_CCU_GATE(bus_tcon_tv0_clk, "bus-tcon-tv0", "ahb3",
0xb9c, BIT(0), 0);
--
2.21.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,85 @@
From bf21ad0889bdcc1dc12fe5a024fd7df7ad2c4310 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Tue, 26 Feb 2019 20:45:14 +0000
Subject: [PATCH 1/2] WIP: dw-hdmi-cec: sleep 100ms on error
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
index 6c323510f128..b5a1a85c8700 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
@@ -7,6 +7,7 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
+#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
@@ -132,8 +133,15 @@ static irqreturn_t dw_hdmi_cec_hardirq(int irq, void *data)
dw_hdmi_write(cec, stat, HDMI_IH_CEC_STAT0);
- if (stat & CEC_STAT_ERROR_INIT) {
- cec->tx_status = CEC_TX_STATUS_ERROR;
+ /* Status with both done and error_initiator bits have been seen
+ * on Rockchip RK3328 devices, transmit attempt seems to have failed
+ * when this happens, report as low drive and block cec-framework
+ * 100ms before core retransmits the failed message, this seems to
+ * mitigate the issue with failed transmit attempts.
+ */
+ if ((stat & (CEC_STAT_DONE|CEC_STAT_ERROR_INIT)) == (CEC_STAT_DONE|CEC_STAT_ERROR_INIT)) {
+ pr_info("dw_hdmi_cec_hardirq: stat=%02x LOW_DRIVE\n", stat);
+ cec->tx_status = CEC_TX_STATUS_LOW_DRIVE;
cec->tx_done = true;
ret = IRQ_WAKE_THREAD;
} else if (stat & CEC_STAT_DONE) {
@@ -144,6 +152,10 @@ static irqreturn_t dw_hdmi_cec_hardirq(int irq, void *data)
cec->tx_status = CEC_TX_STATUS_NACK;
cec->tx_done = true;
ret = IRQ_WAKE_THREAD;
+ } else if (stat & CEC_STAT_ERROR_INIT) {
+ cec->tx_status = CEC_TX_STATUS_ERROR;
+ cec->tx_done = true;
+ ret = IRQ_WAKE_THREAD;
}
if (stat & CEC_STAT_EOM) {
@@ -176,6 +188,8 @@ static irqreturn_t dw_hdmi_cec_thread(int irq, void *data)
if (cec->tx_done) {
cec->tx_done = false;
+ if (cec->tx_status == CEC_TX_STATUS_LOW_DRIVE)
+ msleep(100);
cec_transmit_attempt_done(adap, cec->tx_status);
}
if (cec->rx_done) {
--
2.21.0
From 12f1abe2b5cee6575c6dd9cd29b17b589f044b80 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 25 May 2019 12:03:39 +0200
Subject: [PATCH 2/2] WIP: sun8i-hdmi CEC improvements
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +-
drivers/gpu/drm/sun4i/Kconfig | 10 +++
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h | 11 +++
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 83 ++++++++++++++++++++++-
include/drm/bridge/dw_hdmi.h | 2 +
5 files changed, 105 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index a63e5f0dae56..fdda26f8b056 100644 index 09fdc9f87651..f359c4c3f1d1 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2634,7 +2634,7 @@ __dw_hdmi_probe(struct platform_device *pdev, @@ -2713,7 +2713,7 @@ __dw_hdmi_probe(struct platform_device *pdev,
hdmi->audio = platform_device_register_full(&pdevinfo); hdmi->audio = platform_device_register_full(&pdevinfo);
} }
@ -33,7 +110,7 @@ index 1dbbc3a1b763..7149c72e44c8 100644
tristate "Support for Allwinner Display Engine 2.0 Mixer" tristate "Support for Allwinner Display Engine 2.0 Mixer"
default MACH_SUN8I default MACH_SUN8I
diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h
index 720c5aa8adc1..82dd84094638 100644 index 720c5aa8adc1..49ca001923e3 100644
--- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h --- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h
+++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h +++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.h
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
@ -71,15 +148,15 @@ index 720c5aa8adc1..82dd84094638 100644
struct sun8i_hdmi_phy { struct sun8i_hdmi_phy {
+ struct cec_adapter *cec_adapter; + struct cec_adapter *cec_adapter;
+ struct cec_notifier *cec_notifier; + struct cec_notifier *cec_notifier;
struct clk *clk_bus; struct clk *clk_bus;
struct clk *clk_mod; struct clk *clk_mod;
struct clk *clk_phy; struct clk *clk_phy;
diff --git a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c diff --git a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
index 66ea3a902e36..70e291353569 100644 index 43643ad31730..d840bc07cba6 100644
--- a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c --- a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
+++ b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c +++ b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c
@@ -503,8 +503,9 @@ static void sun8i_hdmi_phy_init_h3(struct sun8i_hdmi_phy *phy) @@ -504,8 +504,9 @@ static void sun8i_hdmi_phy_init_h3(struct sun8i_hdmi_phy *phy)
regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_PLL_CFG1_REG, regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_PLL_CFG1_REG,
SUN8I_HDMI_PHY_PLL_CFG1_CKIN_SEL_MSK, 0); SUN8I_HDMI_PHY_PLL_CFG1_CKIN_SEL_MSK, 0);
@ -91,7 +168,7 @@ index 66ea3a902e36..70e291353569 100644
/* read calibration data */ /* read calibration data */
regmap_read(phy->regs, SUN8I_HDMI_PHY_ANA_STS_REG, &val); regmap_read(phy->regs, SUN8I_HDMI_PHY_ANA_STS_REG, &val);
@@ -530,8 +531,49 @@ void sun8i_hdmi_phy_set_ops(struct sun8i_hdmi_phy *phy, @@ -531,8 +532,49 @@ void sun8i_hdmi_phy_set_ops(struct sun8i_hdmi_phy *phy,
plat_data->cur_ctr = variant->cur_ctr; plat_data->cur_ctr = variant->cur_ctr;
plat_data->phy_config = variant->phy_cfg; plat_data->phy_config = variant->phy_cfg;
} }
@ -141,7 +218,7 @@ index 66ea3a902e36..70e291353569 100644
static struct regmap_config sun8i_hdmi_phy_regmap_config = { static struct regmap_config sun8i_hdmi_phy_regmap_config = {
.reg_bits = 32, .reg_bits = 32,
.val_bits = 32, .val_bits = 32,
@@ -548,6 +590,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_a83t_hdmi_phy = { @@ -549,6 +591,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_a83t_hdmi_phy = {
}; };
static const struct sun8i_hdmi_phy_variant sun8i_h3_hdmi_phy = { static const struct sun8i_hdmi_phy_variant sun8i_h3_hdmi_phy = {
@ -149,7 +226,7 @@ index 66ea3a902e36..70e291353569 100644
.has_phy_clk = true, .has_phy_clk = true,
.is_custom_phy = true, .is_custom_phy = true,
.phy_init = &sun8i_hdmi_phy_init_h3, .phy_init = &sun8i_hdmi_phy_init_h3,
@@ -556,6 +599,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_h3_hdmi_phy = { @@ -557,6 +600,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_h3_hdmi_phy = {
}; };
static const struct sun8i_hdmi_phy_variant sun8i_r40_hdmi_phy = { static const struct sun8i_hdmi_phy_variant sun8i_r40_hdmi_phy = {
@ -157,7 +234,7 @@ index 66ea3a902e36..70e291353569 100644
.has_phy_clk = true, .has_phy_clk = true,
.has_second_pll = true, .has_second_pll = true,
.is_custom_phy = true, .is_custom_phy = true,
@@ -565,6 +609,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_r40_hdmi_phy = { @@ -566,6 +610,7 @@ static const struct sun8i_hdmi_phy_variant sun8i_r40_hdmi_phy = {
}; };
static const struct sun8i_hdmi_phy_variant sun50i_a64_hdmi_phy = { static const struct sun8i_hdmi_phy_variant sun50i_a64_hdmi_phy = {
@ -165,7 +242,7 @@ index 66ea3a902e36..70e291353569 100644
.has_phy_clk = true, .has_phy_clk = true,
.is_custom_phy = true, .is_custom_phy = true,
.phy_init = &sun8i_hdmi_phy_init_h3, .phy_init = &sun8i_hdmi_phy_init_h3,
@@ -708,10 +753,40 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node) @@ -711,10 +756,40 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node)
clk_prepare_enable(phy->clk_phy); clk_prepare_enable(phy->clk_phy);
} }
@ -204,9 +281,9 @@ index 66ea3a902e36..70e291353569 100644
+err_disable_clk_phy: +err_disable_clk_phy:
+ clk_disable_unprepare(phy->clk_phy); + clk_disable_unprepare(phy->clk_phy);
err_disable_clk_mod: err_disable_clk_mod:
clk_disable_unprepare(phy->clk_mod); clk_disable_unprepare(phy->clk_mod);
err_disable_clk_bus: err_disable_clk_bus:
@@ -736,6 +811,10 @@ void sun8i_hdmi_phy_remove(struct sun8i_dw_hdmi *hdmi) @@ -739,6 +814,10 @@ void sun8i_hdmi_phy_remove(struct sun8i_dw_hdmi *hdmi)
{ {
struct sun8i_hdmi_phy *phy = hdmi->phy; struct sun8i_hdmi_phy *phy = hdmi->phy;
@ -218,7 +295,7 @@ index 66ea3a902e36..70e291353569 100644
clk_disable_unprepare(phy->clk_bus); clk_disable_unprepare(phy->clk_bus);
clk_disable_unprepare(phy->clk_phy); clk_disable_unprepare(phy->clk_phy);
diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
index 66e70770cce5..764b8bcfa62c 100644 index 323febe7f102..cec73761856d 100644
--- a/include/drm/bridge/dw_hdmi.h --- a/include/drm/bridge/dw_hdmi.h
+++ b/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h
@@ -144,6 +144,8 @@ struct dw_hdmi_plat_data { @@ -144,6 +144,8 @@ struct dw_hdmi_plat_data {
@ -230,3 +307,6 @@ index 66e70770cce5..764b8bcfa62c 100644
}; };
struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
--
2.21.0

View File

@ -0,0 +1,76 @@
From 443ca53cf78c635aa5bebe9f115721e55fe9ca38 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 25 May 2019 12:33:05 +0200
Subject: [PATCH] media: cedrus: Fix decoding for some H264 videos
It seems that for some H264 videos at least one bitstream parsing
trigger must be called in order to be decoded correctly. There is no
explanation why this helps, but it was observed that two sample videos
with this fix are now decoded correctly and there is no regression with
others.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
.../staging/media/sunxi/cedrus/cedrus_h264.c | 22 ++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
index a30bb283f69f..fab14de1815a 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
@@ -6,6 +6,7 @@
* Copyright (c) 2018 Bootlin
*/
+#include <linux/delay.h>
#include <linux/types.h>
#include <media/videobuf2-dma-contig.h>
@@ -289,6 +290,20 @@ static void cedrus_write_pred_weight_table(struct cedrus_ctx *ctx,
}
}
+static void cedrus_skip_bits(struct cedrus_dev *dev, int num)
+{
+ for (; num > 32; num -= 32) {
+ cedrus_write(dev, VE_H264_TRIGGER_TYPE, 0x3 | (32 << 8));
+ while (cedrus_read(dev, VE_H264_STATUS) & (1 << 8))
+ udelay(1);
+ }
+ if (num > 0) {
+ cedrus_write(dev, VE_H264_TRIGGER_TYPE, 0x3 | (num << 8));
+ while (cedrus_read(dev, VE_H264_STATUS) & (1 << 8))
+ udelay(1);
+ }
+}
+
static void cedrus_set_params(struct cedrus_ctx *ctx,
struct cedrus_run *run)
{
@@ -299,12 +314,11 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
struct vb2_buffer *src_buf = &run->src->vb2_buf;
struct cedrus_dev *dev = ctx->dev;
dma_addr_t src_buf_addr;
- u32 offset = slice->header_bit_size;
- u32 len = (slice->size * 8) - offset;
+ u32 len = slice->size * 8;
u32 reg;
cedrus_write(dev, VE_H264_VLD_LEN, len);
- cedrus_write(dev, VE_H264_VLD_OFFSET, offset);
+ cedrus_write(dev, VE_H264_VLD_OFFSET, 0);
src_buf_addr = vb2_dma_contig_plane_dma_addr(src_buf, 0);
cedrus_write(dev, VE_H264_VLD_END,
@@ -323,6 +337,8 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
cedrus_write(dev, VE_H264_TRIGGER_TYPE,
VE_H264_TRIGGER_TYPE_INIT_SWDEC);
+ cedrus_skip_bits(dev, slice->header_bit_size);
+
if (((pps->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) &&
(slice->slice_type == V4L2_H264_SLICE_TYPE_P ||
slice->slice_type == V4L2_H264_SLICE_TYPE_SP)) ||
--
2.21.0

View File

@ -0,0 +1,36 @@
From fce7f7e700176b402b303d2a62813cc0cdd061e0 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 25 May 2019 13:18:50 +0200
Subject: [PATCH 2/5] media: cedrus: Fix H264 default reference index count
Reference index count in VE_H264_PPS should come from PPS control.
However, this is not really important, because reference index count is
in our case always overridden by that from slice header.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
index fab14de1815a..d0ee3f90ff46 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
@@ -356,12 +356,8 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
// picture parameters
reg = 0;
- /*
- * FIXME: the kernel headers are allowing the default value to
- * be passed, but the libva doesn't give us that.
- */
- reg |= (slice->num_ref_idx_l0_active_minus1 & 0x1f) << 10;
- reg |= (slice->num_ref_idx_l1_active_minus1 & 0x1f) << 5;
+ reg |= (pps->num_ref_idx_l0_default_active_minus1 & 0x1f) << 10;
+ reg |= (pps->num_ref_idx_l1_default_active_minus1 & 0x1f) << 5;
reg |= (pps->weighted_bipred_idc & 0x3) << 2;
if (pps->flags & V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE)
reg |= VE_H264_PPS_ENTROPY_CODING_MODE;
--
2.21.0

View File

@ -1,18 +1,18 @@
From e41186f41a546d1c60797f090001da969f5eda5a Mon Sep 17 00:00:00 2001 From 9714cf1bc8c5b48f21af3500e34497621b51a4b1 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net> From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Thu, 14 Feb 2019 22:50:12 +0100 Date: Thu, 14 Feb 2019 22:50:12 +0100
Subject: [PATCH] cedrus: Improve H264 Subject: [PATCH 3/5] media: cedrus: WIP H264 improvements
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
--- ---
.../staging/media/sunxi/cedrus/cedrus_h264.c | 69 +++++++++++-------- .../staging/media/sunxi/cedrus/cedrus_h264.c | 37 ++++++++++++++-----
1 file changed, 41 insertions(+), 28 deletions(-) 1 file changed, 27 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
index a5c5f13ffecb..405545947b85 100644 index d0ee3f90ff46..dcb8d3837869 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
@@ -38,7 +38,7 @@ struct cedrus_h264_sram_ref_pic { @@ -39,7 +39,7 @@ struct cedrus_h264_sram_ref_pic {
#define CEDRUS_H264_FRAME_NUM 18 #define CEDRUS_H264_FRAME_NUM 18
#define CEDRUS_NEIGHBOR_INFO_BUF_SIZE (16 * SZ_1K) #define CEDRUS_NEIGHBOR_INFO_BUF_SIZE (16 * SZ_1K)
@ -21,7 +21,7 @@ index a5c5f13ffecb..405545947b85 100644
static void cedrus_h264_write_sram(struct cedrus_dev *dev, static void cedrus_h264_write_sram(struct cedrus_dev *dev,
enum cedrus_h264_sram_off off, enum cedrus_h264_sram_off off,
@@ -101,7 +101,7 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx, @@ -102,7 +102,7 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
unsigned long used_dpbs = 0; unsigned long used_dpbs = 0;
unsigned int position; unsigned int position;
@ -30,7 +30,7 @@ index a5c5f13ffecb..405545947b85 100644
unsigned int i; unsigned int i;
memset(pic_list, 0, sizeof(pic_list)); memset(pic_list, 0, sizeof(pic_list));
@@ -126,6 +126,11 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx, @@ -123,6 +123,11 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
position = cedrus_buf->codec.h264.position; position = cedrus_buf->codec.h264.position;
used_dpbs |= BIT(position); used_dpbs |= BIT(position);
@ -42,7 +42,7 @@ index a5c5f13ffecb..405545947b85 100644
if (!(dpb->flags & V4L2_H264_DPB_ENTRY_FLAG_ACTIVE)) if (!(dpb->flags & V4L2_H264_DPB_ENTRY_FLAG_ACTIVE))
continue; continue;
@@ -133,13 +138,11 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx, @@ -130,13 +135,11 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
dpb->top_field_order_cnt, dpb->top_field_order_cnt,
dpb->bottom_field_order_cnt, dpb->bottom_field_order_cnt,
&pic_list[position]); &pic_list[position]);
@ -59,7 +59,7 @@ index a5c5f13ffecb..405545947b85 100644
position = find_first_zero_bit(&used_dpbs, CEDRUS_H264_FRAME_NUM); position = find_first_zero_bit(&used_dpbs, CEDRUS_H264_FRAME_NUM);
output_buf = vb2_to_cedrus_buffer(&run->dst->vb2_buf); output_buf = vb2_to_cedrus_buffer(&run->dst->vb2_buf);
@@ -165,6 +168,10 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx, @@ -162,6 +165,10 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
#define CEDRUS_MAX_REF_IDX 32 #define CEDRUS_MAX_REF_IDX 32
@ -70,7 +70,7 @@ index a5c5f13ffecb..405545947b85 100644
static void _cedrus_write_ref_list(struct cedrus_ctx *ctx, static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
struct cedrus_run *run, struct cedrus_run *run,
const u8 *ref_list, u8 num_ref, const u8 *ref_list, u8 num_ref,
@@ -187,7 +194,7 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx, @@ -184,7 +191,7 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
int buf_idx; int buf_idx;
u8 dpb_idx; u8 dpb_idx;
@ -79,7 +79,7 @@ index a5c5f13ffecb..405545947b85 100644
dpb = &decode->dpb[dpb_idx]; dpb = &decode->dpb[dpb_idx];
if (!(dpb->flags & V4L2_H264_DPB_ENTRY_FLAG_ACTIVE)) if (!(dpb->flags & V4L2_H264_DPB_ENTRY_FLAG_ACTIVE))
@@ -206,7 +213,8 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx, @@ -199,7 +206,8 @@ static void _cedrus_write_ref_list(struct cedrus_ctx *ctx,
position = cedrus_buf->codec.h264.position; position = cedrus_buf->codec.h264.position;
sram_array[i] |= position << 1; sram_array[i] |= position << 1;
@ -89,16 +89,16 @@ index a5c5f13ffecb..405545947b85 100644
sram_array[i] |= BIT(0); sram_array[i] |= BIT(0);
} }
@@ -309,6 +317,8 @@ static void cedrus_set_params(struct cedrus_ctx *ctx, @@ -315,6 +323,8 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
struct cedrus_dev *dev = ctx->dev;
dma_addr_t src_buf_addr; dma_addr_t src_buf_addr;
u32 offset = slice->header_bit_size; u32 len = slice->size * 8;
u32 len = (slice->size * 8) - offset;
+ unsigned int pic_width_in_mbs; + unsigned int pic_width_in_mbs;
+ bool mbaff_picture; + bool mbaff_picture;
u32 reg; u32 reg;
cedrus_write(dev, VE_H264_VLD_LEN, len); cedrus_write(dev, VE_H264_VLD_LEN, len);
@@ -378,12 +387,19 @@ static void cedrus_set_params(struct cedrus_ctx *ctx, @@ -382,12 +392,19 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
reg |= VE_H264_SPS_DIRECT_8X8_INFERENCE; reg |= VE_H264_SPS_DIRECT_8X8_INFERENCE;
cedrus_write(dev, VE_H264_SPS, reg); cedrus_write(dev, VE_H264_SPS, reg);
@ -119,15 +119,6 @@ index a5c5f13ffecb..405545947b85 100644
if (slice->flags & V4L2_H264_SLICE_FLAG_FIELD_PIC) if (slice->flags & V4L2_H264_SLICE_FLAG_FIELD_PIC)
reg |= VE_H264_SHS_FIELD_PIC; reg |= VE_H264_SHS_FIELD_PIC;
if (slice->flags & V4L2_H264_SLICE_FLAG_BOTTOM_FIELD) if (slice->flags & V4L2_H264_SLICE_FLAG_BOTTOM_FIELD)
@@ -531,7 +541,7 @@ static int cedrus_h264_start(struct cedrus_ctx *ctx)
* we need to work on.
*/
field_size = field_size * 2;
- ctx->codec.h264.mv_col_buf_field_size = field_size;
+ ctx->codec.h264.mv_col_buf_field_size = ALIGN(field_size, 1024);
mv_col_size = field_size * 2 * CEDRUS_H264_FRAME_NUM;
ctx->codec.h264.mv_col_buf_size = mv_col_size;
-- --
2.20.1 2.21.0

View File

@ -1,8 +1,25 @@
From c6582c38df2f78dc9d4f8fd920780a82a01e4d8e Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 25 May 2019 13:58:17 +0200
Subject: [PATCH 2/3] WIP: HEVC improvements
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
drivers/media/v4l2-core/v4l2-ctrls.c | 8 +
drivers/staging/media/sunxi/cedrus/cedrus.c | 6 +
drivers/staging/media/sunxi/cedrus/cedrus.h | 11 +-
.../staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
.../staging/media/sunxi/cedrus/cedrus_h265.c | 348 +++++++++++++-----
.../staging/media/sunxi/cedrus/cedrus_regs.h | 3 +
.../staging/media/sunxi/cedrus/cedrus_video.c | 12 +-
include/media/hevc-ctrls.h | 20 +-
8 files changed, 301 insertions(+), 109 deletions(-)
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
index 3bab9d4e3304..a14762dff91d 100644 index 1107698b9d06..aed7a4526193 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls.c --- a/drivers/media/v4l2-core/v4l2-ctrls.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
@@ -916,6 +916,7 @@ const char *v4l2_ctrl_get_name(u32 id) @@ -947,6 +947,7 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_MPEG_VIDEO_HEVC_SPS: return "HEVC Sequence Parameter Set"; case V4L2_CID_MPEG_VIDEO_HEVC_SPS: return "HEVC Sequence Parameter Set";
case V4L2_CID_MPEG_VIDEO_HEVC_PPS: return "HEVC Picture Parameter Set"; case V4L2_CID_MPEG_VIDEO_HEVC_PPS: return "HEVC Picture Parameter Set";
case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: return "HEVC Slice Parameters"; case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: return "HEVC Slice Parameters";
@ -10,7 +27,7 @@ index 3bab9d4e3304..a14762dff91d 100644
/* CAMERA controls */ /* CAMERA controls */
/* Keep the order of the 'case's the same as in v4l2-controls.h! */ /* Keep the order of the 'case's the same as in v4l2-controls.h! */
@@ -1332,6 +1333,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, @@ -1368,6 +1369,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS:
*type = V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS; *type = V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS;
break; break;
@ -20,7 +37,7 @@ index 3bab9d4e3304..a14762dff91d 100644
default: default:
*type = V4L2_CTRL_TYPE_INTEGER; *type = V4L2_CTRL_TYPE_INTEGER;
break; break;
@@ -1708,6 +1712,7 @@ static int std_validate(const struct v4l2_ctrl *ctrl, u32 idx, @@ -1747,6 +1751,7 @@ static int std_validate(const struct v4l2_ctrl *ctrl, u32 idx,
case V4L2_CTRL_TYPE_HEVC_SPS: case V4L2_CTRL_TYPE_HEVC_SPS:
case V4L2_CTRL_TYPE_HEVC_PPS: case V4L2_CTRL_TYPE_HEVC_PPS:
case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS:
@ -28,7 +45,7 @@ index 3bab9d4e3304..a14762dff91d 100644
return 0; return 0;
default: default:
@@ -2314,6 +2319,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl, @@ -2356,6 +2361,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl,
case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS:
elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params);
break; break;
@ -39,10 +56,10 @@ index 3bab9d4e3304..a14762dff91d 100644
if (type < V4L2_CTRL_COMPOUND_TYPES) if (type < V4L2_CTRL_COMPOUND_TYPES)
elem_size = sizeof(s32); elem_size = sizeof(s32);
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index a713630ce7ba..3040f483e0a2 100644 index 70642834f351..01860f247aa6 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c --- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -87,6 +87,12 @@ static const struct cedrus_control cedrus_controls[] = { @@ -88,6 +88,12 @@ static const struct cedrus_control cedrus_controls[] = {
.codec = CEDRUS_CODEC_H265, .codec = CEDRUS_CODEC_H265,
.required = true, .required = true,
}, },
@ -56,10 +73,10 @@ index a713630ce7ba..3040f483e0a2 100644
#define CEDRUS_CONTROLS_COUNT ARRAY_SIZE(cedrus_controls) #define CEDRUS_CONTROLS_COUNT ARRAY_SIZE(cedrus_controls)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h
index b5d083812bea..deb9fa1de97c 100644 index f19be772d78b..b518c5613fdf 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h --- a/drivers/staging/media/sunxi/cedrus/cedrus.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
@@ -72,6 +72,7 @@ struct cedrus_h265_run { @@ -74,6 +74,7 @@ struct cedrus_h265_run {
const struct v4l2_ctrl_hevc_sps *sps; const struct v4l2_ctrl_hevc_sps *sps;
const struct v4l2_ctrl_hevc_pps *pps; const struct v4l2_ctrl_hevc_pps *pps;
const struct v4l2_ctrl_hevc_slice_params *slice_params; const struct v4l2_ctrl_hevc_slice_params *slice_params;
@ -67,7 +84,7 @@ index b5d083812bea..deb9fa1de97c 100644
}; };
struct cedrus_run { struct cedrus_run {
@@ -88,6 +89,10 @@ struct cedrus_run { @@ -90,6 +91,10 @@ struct cedrus_run {
struct cedrus_buffer { struct cedrus_buffer {
struct v4l2_m2m_buffer m2m_buf; struct v4l2_m2m_buffer m2m_buf;
@ -78,7 +95,7 @@ index b5d083812bea..deb9fa1de97c 100644
union { union {
struct { struct {
unsigned int position; unsigned int position;
@@ -121,12 +126,10 @@ struct cedrus_ctx { @@ -123,12 +128,10 @@ struct cedrus_ctx {
dma_addr_t neighbor_info_buf_dma; dma_addr_t neighbor_info_buf_dma;
} h264; } h264;
struct { struct {
@ -94,10 +111,10 @@ index b5d083812bea..deb9fa1de97c 100644
} codec; } codec;
}; };
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c
index c50397f8692f..80c6d920142d 100644 index c6d0ef66cdd0..104adb08492c 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c
@@ -68,6 +68,8 @@ void cedrus_device_run(void *priv) @@ -66,6 +66,8 @@ void cedrus_device_run(void *priv)
V4L2_CID_MPEG_VIDEO_HEVC_PPS); V4L2_CID_MPEG_VIDEO_HEVC_PPS);
run.h265.slice_params = cedrus_find_control_data(ctx, run.h265.slice_params = cedrus_find_control_data(ctx,
V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS); V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS);
@ -107,7 +124,7 @@ index c50397f8692f..80c6d920142d 100644
default: default:
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
index f1c3665e95ab..2cc36d69548e 100644 index fd4d86b02156..82d29c59b787 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
@@ -77,24 +77,25 @@ static void cedrus_h265_sram_write_offset(struct cedrus_dev *dev, u32 offset) @@ -77,24 +77,25 @@ static void cedrus_h265_sram_write_offset(struct cedrus_dev *dev, u32 offset)
@ -157,7 +174,7 @@ index f1c3665e95ab..2cc36d69548e 100644
}; };
u32 offset = VE_DEC_H265_SRAM_OFFSET_FRAME_INFO + u32 offset = VE_DEC_H265_SRAM_OFFSET_FRAME_INFO +
VE_DEC_H265_SRAM_OFFSET_FRAME_INFO_UNIT * index; VE_DEC_H265_SRAM_OFFSET_FRAME_INFO_UNIT * index;
@@ -157,28 +157,24 @@ static void cedrus_h265_ref_pic_list_write(struct cedrus_dev *dev, @@ -158,28 +158,24 @@ static void cedrus_h265_ref_pic_list_write(struct cedrus_dev *dev,
u8 num_ref_idx_active, u8 num_ref_idx_active,
u32 sram_offset) u32 sram_offset)
{ {
@ -195,7 +212,7 @@ index f1c3665e95ab..2cc36d69548e 100644
} }
static void cedrus_h265_pred_weight_write(struct cedrus_dev *dev, static void cedrus_h265_pred_weight_write(struct cedrus_dev *dev,
@@ -219,6 +215,105 @@ static void cedrus_h265_pred_weight_write(struct cedrus_dev *dev, @@ -220,6 +216,131 @@ static void cedrus_h265_pred_weight_write(struct cedrus_dev *dev,
} }
} }
@ -204,6 +221,7 @@ index f1c3665e95ab..2cc36d69548e 100644
+{ +{
+ const struct v4l2_ctrl_hevc_scaling_matrix *scaling; + const struct v4l2_ctrl_hevc_scaling_matrix *scaling;
+ struct cedrus_dev *dev = ctx->dev; + struct cedrus_dev *dev = ctx->dev;
+ u32 i, j, k, val;
+ +
+ scaling = run->h265.scaling_matrix; + scaling = run->h265.scaling_matrix;
+ +
@ -219,21 +237,46 @@ index f1c3665e95ab..2cc36d69548e 100644
+ (scaling->scaling_list_dc_coef_16x16[3] << 8) | + (scaling->scaling_list_dc_coef_16x16[3] << 8) |
+ (scaling->scaling_list_dc_coef_16x16[2] << 0)); + (scaling->scaling_list_dc_coef_16x16[2] << 0));
+ +
+ cedrus_h265_sram_write_offset(dev, VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_8x8); + cedrus_h265_sram_write_offset(dev, VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS);
+ cedrus_h265_sram_write_data(dev, scaling->scaling_list_8x8,
+ sizeof(scaling->scaling_list_8x8));
+ +
+ cedrus_h265_sram_write_offset(dev, VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_32x32); + for (i = 0; i < 6; i++)
+ cedrus_h265_sram_write_data(dev, scaling->scaling_list_32x32, + for (j = 0; j < 8; j++)
+ sizeof(scaling->scaling_list_32x32)); + for (k = 0; k < 8; k += 4) {
+ val = ((u32)scaling->scaling_list_8x8[i][j + (k + 3) * 8] << 24) |
+ ((u32)scaling->scaling_list_8x8[i][j + (k + 2) * 8] << 16) |
+ ((u32)scaling->scaling_list_8x8[i][j + (k + 1) * 8] << 8) |
+ scaling->scaling_list_8x8[i][j + k * 8];
+ cedrus_write(dev, VE_DEC_H265_SRAM_DATA, val);
+ }
+ +
+ cedrus_h265_sram_write_offset(dev, VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_16x16); + for (i = 0; i < 2; i++)
+ cedrus_h265_sram_write_data(dev, scaling->scaling_list_16x16, + for (j = 0; j < 8; j++)
+ sizeof(scaling->scaling_list_16x16)); + for (k = 0; k < 8; k += 4) {
+ val = ((u32)scaling->scaling_list_32x32[i][j + (k + 3) * 8] << 24) |
+ ((u32)scaling->scaling_list_32x32[i][j + (k + 2) * 8] << 16) |
+ ((u32)scaling->scaling_list_32x32[i][j + (k + 1) * 8] << 8) |
+ scaling->scaling_list_32x32[i][j + k * 8];
+ cedrus_write(dev, VE_DEC_H265_SRAM_DATA, val);
+ }
+ +
+ cedrus_h265_sram_write_offset(dev, VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_4x4); + for (i = 0; i < 6; i++)
+ cedrus_h265_sram_write_data(dev, scaling->scaling_list_4x4, + for (j = 0; j < 8; j++)
+ sizeof(scaling->scaling_list_4x4)); + for (k = 0; k < 8; k += 4) {
+ val = ((u32)scaling->scaling_list_16x16[i][j + (k + 3) * 8] << 24) |
+ ((u32)scaling->scaling_list_16x16[i][j + (k + 2) * 8] << 16) |
+ ((u32)scaling->scaling_list_16x16[i][j + (k + 1) * 8] << 8) |
+ scaling->scaling_list_16x16[i][j + k * 8];
+ cedrus_write(dev, VE_DEC_H265_SRAM_DATA, val);
+ }
+
+ for (i = 0; i < 6; i++)
+ for (j = 0; j < 4; j++) {
+ val = ((u32)scaling->scaling_list_4x4[i][j + 12] << 24) |
+ ((u32)scaling->scaling_list_4x4[i][j + 8] << 16) |
+ ((u32)scaling->scaling_list_4x4[i][j + 4] << 8) |
+ scaling->scaling_list_4x4[i][j];
+ cedrus_write(dev, VE_DEC_H265_SRAM_DATA, val);
+ }
+} +}
+ +
+static void write_entry_point_list(struct cedrus_ctx *ctx, +static void write_entry_point_list(struct cedrus_ctx *ctx,
@ -301,7 +344,7 @@ index f1c3665e95ab..2cc36d69548e 100644
static void cedrus_h265_setup(struct cedrus_ctx *ctx, static void cedrus_h265_setup(struct cedrus_ctx *ctx,
struct cedrus_run *run) struct cedrus_run *run)
{ {
@@ -227,6 +322,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -228,6 +349,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
const struct v4l2_ctrl_hevc_pps *pps; const struct v4l2_ctrl_hevc_pps *pps;
const struct v4l2_ctrl_hevc_slice_params *slice_params; const struct v4l2_ctrl_hevc_slice_params *slice_params;
const struct v4l2_hevc_pred_weight_table *pred_weight_table; const struct v4l2_hevc_pred_weight_table *pred_weight_table;
@ -309,7 +352,7 @@ index f1c3665e95ab..2cc36d69548e 100644
dma_addr_t src_buf_addr; dma_addr_t src_buf_addr;
dma_addr_t src_buf_end_addr; dma_addr_t src_buf_end_addr;
u32 chroma_log2_weight_denom; u32 chroma_log2_weight_denom;
@@ -239,43 +335,10 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -240,43 +362,10 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
slice_params = run->h265.slice_params; slice_params = run->h265.slice_params;
pred_weight_table = &slice_params->pred_weight_table; pred_weight_table = &slice_params->pred_weight_table;
@ -355,7 +398,7 @@ index f1c3665e95ab..2cc36d69548e 100644
/* Source offset and length in bits. */ /* Source offset and length in bits. */
@@ -299,18 +362,35 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -300,18 +389,35 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
src_buf_end_addr = src_buf_addr + src_buf_end_addr = src_buf_addr +
DIV_ROUND_UP(slice_params->bit_size, 8); DIV_ROUND_UP(slice_params->bit_size, 8);
@ -397,7 +440,7 @@ index f1c3665e95ab..2cc36d69548e 100644
/* Initialize bitstream access. */ /* Initialize bitstream access. */
cedrus_write(dev, VE_DEC_H265_TRIGGER, VE_DEC_H265_TRIGGER_INIT_SWDEC); cedrus_write(dev, VE_DEC_H265_TRIGGER, VE_DEC_H265_TRIGGER_INIT_SWDEC);
@@ -333,6 +413,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -334,6 +440,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
VE_DEC_H265_DEC_SPS_HDR_LOG2_DIFF_MAX_MIN_LUMA_CODING_BLOCK_SIZE(sps->log2_diff_max_min_luma_coding_block_size) | VE_DEC_H265_DEC_SPS_HDR_LOG2_DIFF_MAX_MIN_LUMA_CODING_BLOCK_SIZE(sps->log2_diff_max_min_luma_coding_block_size) |
VE_DEC_H265_DEC_SPS_HDR_LOG2_MIN_LUMA_CODING_BLOCK_SIZE_MINUS3(sps->log2_min_luma_coding_block_size_minus3) | VE_DEC_H265_DEC_SPS_HDR_LOG2_MIN_LUMA_CODING_BLOCK_SIZE_MINUS3(sps->log2_min_luma_coding_block_size_minus3) |
VE_DEC_H265_DEC_SPS_HDR_BIT_DEPTH_CHROMA_MINUS8(sps->bit_depth_chroma_minus8) | VE_DEC_H265_DEC_SPS_HDR_BIT_DEPTH_CHROMA_MINUS8(sps->bit_depth_chroma_minus8) |
@ -405,7 +448,7 @@ index f1c3665e95ab..2cc36d69548e 100644
VE_DEC_H265_DEC_SPS_HDR_SEPARATE_COLOUR_PLANE_FLAG(sps->separate_colour_plane_flag) | VE_DEC_H265_DEC_SPS_HDR_SEPARATE_COLOUR_PLANE_FLAG(sps->separate_colour_plane_flag) |
VE_DEC_H265_DEC_SPS_HDR_CHROMA_FORMAT_IDC(sps->chroma_format_idc); VE_DEC_H265_DEC_SPS_HDR_CHROMA_FORMAT_IDC(sps->chroma_format_idc);
@@ -362,7 +443,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -363,7 +470,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
VE_DEC_H265_DEC_PPS_CTRL1_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED_FLAG(pps->pps_loop_filter_across_slices_enabled_flag) | VE_DEC_H265_DEC_PPS_CTRL1_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED_FLAG(pps->pps_loop_filter_across_slices_enabled_flag) |
VE_DEC_H265_DEC_PPS_CTRL1_LOOP_FILTER_ACROSS_TILES_ENABLED_FLAG(pps->loop_filter_across_tiles_enabled_flag) | VE_DEC_H265_DEC_PPS_CTRL1_LOOP_FILTER_ACROSS_TILES_ENABLED_FLAG(pps->loop_filter_across_tiles_enabled_flag) |
VE_DEC_H265_DEC_PPS_CTRL1_ENTROPY_CODING_SYNC_ENABLED_FLAG(pps->entropy_coding_sync_enabled_flag) | VE_DEC_H265_DEC_PPS_CTRL1_ENTROPY_CODING_SYNC_ENABLED_FLAG(pps->entropy_coding_sync_enabled_flag) |
@ -414,7 +457,7 @@ index f1c3665e95ab..2cc36d69548e 100644
VE_DEC_H265_DEC_PPS_CTRL1_TRANSQUANT_BYPASS_ENABLE_FLAG(pps->transquant_bypass_enabled_flag) | VE_DEC_H265_DEC_PPS_CTRL1_TRANSQUANT_BYPASS_ENABLE_FLAG(pps->transquant_bypass_enabled_flag) |
VE_DEC_H265_DEC_PPS_CTRL1_WEIGHTED_BIPRED_FLAG(pps->weighted_bipred_flag) | VE_DEC_H265_DEC_PPS_CTRL1_WEIGHTED_BIPRED_FLAG(pps->weighted_bipred_flag) |
VE_DEC_H265_DEC_PPS_CTRL1_WEIGHTED_PRED_FLAG(pps->weighted_pred_flag); VE_DEC_H265_DEC_PPS_CTRL1_WEIGHTED_PRED_FLAG(pps->weighted_pred_flag);
@@ -383,7 +464,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -384,7 +491,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
VE_DEC_H265_DEC_SLICE_HDR_INFO0_COLOUR_PLANE_ID(slice_params->colour_plane_id) | VE_DEC_H265_DEC_SLICE_HDR_INFO0_COLOUR_PLANE_ID(slice_params->colour_plane_id) |
VE_DEC_H265_DEC_SLICE_HDR_INFO0_SLICE_TYPE(slice_params->slice_type) | VE_DEC_H265_DEC_SLICE_HDR_INFO0_SLICE_TYPE(slice_params->slice_type) |
VE_DEC_H265_DEC_SLICE_HDR_INFO0_DEPENDENT_SLICE_SEGMENT_FLAG(pps->dependent_slice_segment_flag) | VE_DEC_H265_DEC_SLICE_HDR_INFO0_DEPENDENT_SLICE_SEGMENT_FLAG(pps->dependent_slice_segment_flag) |
@ -423,7 +466,7 @@ index f1c3665e95ab..2cc36d69548e 100644
cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO0, reg); cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO0, reg);
@@ -400,34 +481,68 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -401,34 +508,68 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
chroma_log2_weight_denom = pred_weight_table->luma_log2_weight_denom + chroma_log2_weight_denom = pred_weight_table->luma_log2_weight_denom +
pred_weight_table->delta_chroma_log2_weight_denom; pred_weight_table->delta_chroma_log2_weight_denom;
@ -497,7 +540,7 @@ index f1c3665e95ab..2cc36d69548e 100644
output_pic_list_index = V4L2_HEVC_DPB_ENTRIES_NUM_MAX; output_pic_list_index = V4L2_HEVC_DPB_ENTRIES_NUM_MAX;
pic_order_cnt[0] = slice_params->slice_pic_order_cnt; pic_order_cnt[0] = slice_params->slice_pic_order_cnt;
pic_order_cnt[1] = slice_params->slice_pic_order_cnt; pic_order_cnt[1] = slice_params->slice_pic_order_cnt;
@@ -443,36 +558,36 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -444,36 +585,36 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
if (slice_params->slice_type != V4L2_HEVC_SLICE_TYPE_I) { if (slice_params->slice_type != V4L2_HEVC_SLICE_TYPE_I) {
cedrus_h265_ref_pic_list_write(dev, slice_params->dpb, cedrus_h265_ref_pic_list_write(dev, slice_params->dpb,
slice_params->ref_idx_l0, slice_params->ref_idx_l0,
@ -552,7 +595,7 @@ index f1c3665e95ab..2cc36d69548e 100644
} }
/* Enable appropriate interruptions. */ /* Enable appropriate interruptions. */
@@ -483,9 +598,6 @@ static int cedrus_h265_start(struct cedrus_ctx *ctx) @@ -484,9 +625,6 @@ static int cedrus_h265_start(struct cedrus_ctx *ctx)
{ {
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
@ -562,7 +605,7 @@ index f1c3665e95ab..2cc36d69548e 100644
ctx->codec.h265.neighbor_info_buf = ctx->codec.h265.neighbor_info_buf =
dma_alloc_coherent(dev->dev, CEDRUS_H265_NEIGHBOR_INFO_BUF_SIZE, dma_alloc_coherent(dev->dev, CEDRUS_H265_NEIGHBOR_INFO_BUF_SIZE,
&ctx->codec.h265.neighbor_info_buf_addr, &ctx->codec.h265.neighbor_info_buf_addr,
@@ -493,6 +605,17 @@ static int cedrus_h265_start(struct cedrus_ctx *ctx) @@ -494,6 +632,17 @@ static int cedrus_h265_start(struct cedrus_ctx *ctx)
if (!ctx->codec.h265.neighbor_info_buf) if (!ctx->codec.h265.neighbor_info_buf)
return -ENOMEM; return -ENOMEM;
@ -580,7 +623,7 @@ index f1c3665e95ab..2cc36d69548e 100644
return 0; return 0;
} }
@@ -500,17 +623,12 @@ static void cedrus_h265_stop(struct cedrus_ctx *ctx) @@ -501,17 +650,12 @@ static void cedrus_h265_stop(struct cedrus_ctx *ctx)
{ {
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
@ -602,7 +645,7 @@ index f1c3665e95ab..2cc36d69548e 100644
static void cedrus_h265_trigger(struct cedrus_ctx *ctx) static void cedrus_h265_trigger(struct cedrus_ctx *ctx)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
index 87651d6b6227..a2931f322c7a 100644 index 87651d6b6227..8d153dbe4f83 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h --- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
@@ -496,6 +496,9 @@ @@ -496,6 +496,9 @@
@ -615,23 +658,11 @@ index 87651d6b6227..a2931f322c7a 100644
#define VE_DEC_H265_LOW_ADDR (VE_ENGINE_DEC_H265 + 0x80) #define VE_DEC_H265_LOW_ADDR (VE_ENGINE_DEC_H265 + 0x80)
#define VE_DEC_H265_LOW_ADDR_PRIMARY_CHROMA(a) \ #define VE_DEC_H265_LOW_ADDR_PRIMARY_CHROMA(a) \
@@ -513,7 +516,10 @@
#define VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_CHROMA_L1 0x80
#define VE_DEC_H265_SRAM_OFFSET_FRAME_INFO 0x400
#define VE_DEC_H265_SRAM_OFFSET_FRAME_INFO_UNIT 0x20
-#define VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS 0x800
+#define VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_8x8 0x800
+#define VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_32x32 0x980
+#define VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_16x16 0xa00
+#define VE_DEC_H265_SRAM_OFFSET_SCALING_LISTS_4x4 0xb80
#define VE_DEC_H265_SRAM_OFFSET_REF_PIC_LIST0 0xc00
#define VE_DEC_H265_SRAM_OFFSET_REF_PIC_LIST1 0xc10
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index b9acdc03c839..adf00513c15f 100644 index dbe6f9510641..a0817cae1d69 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -423,8 +423,18 @@ static void cedrus_buf_cleanup(struct vb2_buffer *vb) @@ -433,8 +433,18 @@ static void cedrus_buf_cleanup(struct vb2_buffer *vb)
struct vb2_queue *vq = vb->vb2_queue; struct vb2_queue *vq = vb->vb2_queue;
struct cedrus_ctx *ctx = vb2_get_drv_priv(vq); struct cedrus_ctx *ctx = vb2_get_drv_priv(vq);
@ -652,24 +683,24 @@ index b9acdc03c839..adf00513c15f 100644
static int cedrus_buf_out_validate(struct vb2_buffer *vb) static int cedrus_buf_out_validate(struct vb2_buffer *vb)
diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h
index 005c71c67163..4bf3d79047f4 100644 index 2de83d9f6d47..19469097c6d4 100644
--- a/include/media/hevc-ctrls.h --- a/include/media/hevc-ctrls.h
+++ b/include/media/hevc-ctrls.h +++ b/include/media/hevc-ctrls.h
@@ -14,11 +14,13 @@ @@ -17,11 +17,13 @@
#define V4L2_CID_MPEG_VIDEO_HEVC_SPS (V4L2_CID_MPEG_BASE + 645) #define V4L2_CID_MPEG_VIDEO_HEVC_SPS (V4L2_CID_MPEG_BASE + 1008)
#define V4L2_CID_MPEG_VIDEO_HEVC_PPS (V4L2_CID_MPEG_BASE + 646) #define V4L2_CID_MPEG_VIDEO_HEVC_PPS (V4L2_CID_MPEG_BASE + 1009)
#define V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS (V4L2_CID_MPEG_BASE + 647) #define V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS (V4L2_CID_MPEG_BASE + 1010)
+#define V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX (V4L2_CID_MPEG_BASE + 648) +#define V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX (V4L2_CID_MPEG_BASE + 1011)
/* enum v4l2_ctrl_type type values */ /* enum v4l2_ctrl_type type values */
#define V4L2_CTRL_TYPE_HEVC_SPS 0x0115 #define V4L2_CTRL_TYPE_HEVC_SPS 0x0120
#define V4L2_CTRL_TYPE_HEVC_PPS 0x0116 #define V4L2_CTRL_TYPE_HEVC_PPS 0x0121
#define V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS 0x0117 #define V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS 0x0122
+#define V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX 0x0118 +#define V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX 0x0123
#define V4L2_HEVC_SLICE_TYPE_B 0 #define V4L2_HEVC_SLICE_TYPE_B 0
#define V4L2_HEVC_SLICE_TYPE_P 1 #define V4L2_HEVC_SLICE_TYPE_P 1
@@ -91,7 +93,7 @@ struct v4l2_ctrl_hevc_pps { @@ -95,7 +97,7 @@ struct v4l2_ctrl_hevc_pps {
__u8 lists_modification_present_flag; __u8 lists_modification_present_flag;
__u8 log2_parallel_merge_level_minus2; __u8 log2_parallel_merge_level_minus2;
__u8 slice_segment_header_extension_present_flag; __u8 slice_segment_header_extension_present_flag;
@ -678,7 +709,7 @@ index 005c71c67163..4bf3d79047f4 100644
}; };
#define V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_BEFORE 0x01 #define V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_BEFORE 0x01
@@ -175,7 +177,21 @@ struct v4l2_ctrl_hevc_slice_params { @@ -179,7 +181,21 @@ struct v4l2_ctrl_hevc_slice_params {
/* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */ /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */
struct v4l2_hevc_pred_weight_table pred_weight_table; struct v4l2_hevc_pred_weight_table pred_weight_table;
@ -701,3 +732,6 @@ index 005c71c67163..4bf3d79047f4 100644
}; };
#endif #endif
--
2.21.0

View File

@ -1,62 +0,0 @@
From 9ce5c66f0f98cc968598307f7f7feb39a83d7342 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Tue, 26 Feb 2019 20:45:14 +0000
Subject: [PATCH] WIP: dw-hdmi-cec: sleep 100ms on error
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
index 6c323510f128..b5a1a85c8700 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
@@ -7,6 +7,7 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
+#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
@@ -132,8 +133,15 @@ static irqreturn_t dw_hdmi_cec_hardirq(int irq, void *data)
dw_hdmi_write(cec, stat, HDMI_IH_CEC_STAT0);
- if (stat & CEC_STAT_ERROR_INIT) {
- cec->tx_status = CEC_TX_STATUS_ERROR;
+ /* Status with both done and error_initiator bits have been seen
+ * on Rockchip RK3328 devices, transmit attempt seems to have failed
+ * when this happens, report as low drive and block cec-framework
+ * 100ms before core retransmits the failed message, this seems to
+ * mitigate the issue with failed transmit attempts.
+ */
+ if ((stat & (CEC_STAT_DONE|CEC_STAT_ERROR_INIT)) == (CEC_STAT_DONE|CEC_STAT_ERROR_INIT)) {
+ pr_info("dw_hdmi_cec_hardirq: stat=%02x LOW_DRIVE\n", stat);
+ cec->tx_status = CEC_TX_STATUS_LOW_DRIVE;
cec->tx_done = true;
ret = IRQ_WAKE_THREAD;
} else if (stat & CEC_STAT_DONE) {
@@ -144,6 +152,10 @@ static irqreturn_t dw_hdmi_cec_hardirq(int irq, void *data)
cec->tx_status = CEC_TX_STATUS_NACK;
cec->tx_done = true;
ret = IRQ_WAKE_THREAD;
+ } else if (stat & CEC_STAT_ERROR_INIT) {
+ cec->tx_status = CEC_TX_STATUS_ERROR;
+ cec->tx_done = true;
+ ret = IRQ_WAKE_THREAD;
}
if (stat & CEC_STAT_EOM) {
@@ -176,6 +188,8 @@ static irqreturn_t dw_hdmi_cec_thread(int irq, void *data)
if (cec->tx_done) {
cec->tx_done = false;
+ if (cec->tx_status == CEC_TX_STATUS_LOW_DRIVE)
+ msleep(100);
cec_transmit_attempt_done(adap, cec->tx_status);
}
if (cec->rx_done) {
--
2.20.1

View File

@ -1,7 +1,7 @@
From bd5fed9f390fea4ef8df1abb5f4ac6b64fab5974 Mon Sep 17 00:00:00 2001 From 6a900f36a70f921886f05373846368ca6f09446e Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net> From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Mon, 18 Feb 2019 21:51:31 +0100 Date: Sat, 25 May 2019 14:16:55 +0200
Subject: [PATCH] cedrus h264 4k Subject: [PATCH 5/5] cedrus h264 4k
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
--- ---
@ -16,10 +16,10 @@ Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
8 files changed, 98 insertions(+), 59 deletions(-) 8 files changed, 98 insertions(+), 59 deletions(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h
index deb9fa1de97c..8815332fe1c1 100644 index b518c5613fdf..ee00449d3345 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.h --- a/drivers/staging/media/sunxi/cedrus/cedrus.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h
@@ -116,14 +116,18 @@ struct cedrus_ctx { @@ -118,14 +118,18 @@ struct cedrus_ctx {
union { union {
struct { struct {
@ -43,7 +43,7 @@ index deb9fa1de97c..8815332fe1c1 100644
struct { struct {
void *neighbor_info_buf; void *neighbor_info_buf;
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
index 405545947b85..737a317fd1ee 100644 index dcb8d3837869..4fafaf2c6c0a 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h264.c
@@ -55,16 +55,14 @@ static void cedrus_h264_write_sram(struct cedrus_dev *dev, @@ -55,16 +55,14 @@ static void cedrus_h264_write_sram(struct cedrus_dev *dev,
@ -73,20 +73,21 @@ index 405545947b85..737a317fd1ee 100644
struct vb2_buffer *vbuf = &buf->m2m_buf.vb.vb2_buf; struct vb2_buffer *vbuf = &buf->m2m_buf.vb.vb2_buf;
- unsigned int position = buf->codec.h264.position; - unsigned int position = buf->codec.h264.position;
pic->top_field_order_cnt = top_field_order_cnt; pic->top_field_order_cnt = cpu_to_le32(top_field_order_cnt);
pic->bottom_field_order_cnt = bottom_field_order_cnt; pic->bottom_field_order_cnt = cpu_to_le32(bottom_field_order_cnt);
@@ -84,8 +81,8 @@ static void cedrus_fill_ref_pic(struct cedrus_ctx *ctx, @@ -85,9 +82,9 @@ static void cedrus_fill_ref_pic(struct cedrus_ctx *ctx,
pic->luma_ptr = cpu_to_le32(cedrus_buf_addr(vbuf, &ctx->dst_fmt, 0));
pic->luma_ptr = cedrus_buf_addr(vbuf, &ctx->dst_fmt, 0); pic->chroma_ptr = cpu_to_le32(cedrus_buf_addr(vbuf, &ctx->dst_fmt, 1));
pic->chroma_ptr = cedrus_buf_addr(vbuf, &ctx->dst_fmt, 1); pic->mv_col_top_ptr =
- pic->mv_col_top_ptr = cedrus_h264_mv_col_buf_addr(ctx, position, 0); - cpu_to_le32(cedrus_h264_mv_col_buf_addr(ctx, position, 0));
- pic->mv_col_bot_ptr = cedrus_h264_mv_col_buf_addr(ctx, position, 1); + cpu_to_le32(cedrus_h264_mv_col_buf_addr(ctx, buf, 0));
+ pic->mv_col_top_ptr = cedrus_h264_mv_col_buf_addr(ctx, buf, 0); pic->mv_col_bot_ptr =
+ pic->mv_col_bot_ptr = cedrus_h264_mv_col_buf_addr(ctx, buf, 1); - cpu_to_le32(cedrus_h264_mv_col_buf_addr(ctx, position, 1));
+ cpu_to_le32(cedrus_h264_mv_col_buf_addr(ctx, buf, 1));
} }
static void cedrus_write_frame_list(struct cedrus_ctx *ctx, static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
@@ -148,6 +145,28 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx, @@ -145,6 +142,28 @@ static void cedrus_write_frame_list(struct cedrus_ctx *ctx,
output_buf = vb2_to_cedrus_buffer(&run->dst->vb2_buf); output_buf = vb2_to_cedrus_buffer(&run->dst->vb2_buf);
output_buf->codec.h264.position = position; output_buf->codec.h264.position = position;
@ -101,7 +102,7 @@ index 405545947b85..737a317fd1ee 100644
+ if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY)) + if (!(sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY))
+ field_size = field_size * 2; + field_size = field_size * 2;
+ +
+ output_buf->mv_col_buf_size = ALIGN(field_size, 1024) * 2; + output_buf->mv_col_buf_size = field_size * 2;
+ output_buf->mv_col_buf = + output_buf->mv_col_buf =
+ dma_alloc_coherent(dev->dev, + dma_alloc_coherent(dev->dev,
+ output_buf->mv_col_buf_size, + output_buf->mv_col_buf_size,
@ -115,7 +116,7 @@ index 405545947b85..737a317fd1ee 100644
if (slice->flags & V4L2_H264_SLICE_FLAG_FIELD_PIC) if (slice->flags & V4L2_H264_SLICE_FLAG_FIELD_PIC)
output_buf->codec.h264.pic_type = CEDRUS_H264_PIC_TYPE_FIELD; output_buf->codec.h264.pic_type = CEDRUS_H264_PIC_TYPE_FIELD;
else if (sps->flags & V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD) else if (sps->flags & V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD)
@@ -331,6 +350,14 @@ static void cedrus_set_params(struct cedrus_ctx *ctx, @@ -338,6 +357,14 @@ static void cedrus_set_params(struct cedrus_ctx *ctx,
VE_H264_VLD_ADDR_FIRST | VE_H264_VLD_ADDR_VALID | VE_H264_VLD_ADDR_FIRST | VE_H264_VLD_ADDR_VALID |
VE_H264_VLD_ADDR_LAST); VE_H264_VLD_ADDR_LAST);
@ -130,7 +131,7 @@ index 405545947b85..737a317fd1ee 100644
/* /*
* FIXME: Since the bitstream parsing is done in software, and * FIXME: Since the bitstream parsing is done in software, and
* in userspace, this shouldn't be needed anymore. But it * in userspace, this shouldn't be needed anymore. But it
@@ -471,7 +498,8 @@ static void cedrus_h264_setup(struct cedrus_ctx *ctx, @@ -476,7 +503,8 @@ static void cedrus_h264_setup(struct cedrus_ctx *ctx,
{ {
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
@ -140,7 +141,7 @@ index 405545947b85..737a317fd1ee 100644
cedrus_write(dev, VE_H264_SDROT_CTRL, 0); cedrus_write(dev, VE_H264_SDROT_CTRL, 0);
cedrus_write(dev, VE_H264_EXTRA_BUFFER1, cedrus_write(dev, VE_H264_EXTRA_BUFFER1,
@@ -490,8 +518,6 @@ static void cedrus_h264_setup(struct cedrus_ctx *ctx, @@ -493,8 +521,6 @@ static void cedrus_h264_setup(struct cedrus_ctx *ctx,
static int cedrus_h264_start(struct cedrus_ctx *ctx) static int cedrus_h264_start(struct cedrus_ctx *ctx)
{ {
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
@ -149,7 +150,7 @@ index 405545947b85..737a317fd1ee 100644
int ret; int ret;
/* /*
@@ -523,44 +549,42 @@ static int cedrus_h264_start(struct cedrus_ctx *ctx) @@ -526,44 +552,42 @@ static int cedrus_h264_start(struct cedrus_ctx *ctx)
goto err_pic_buf; goto err_pic_buf;
} }
@ -183,7 +184,7 @@ index 405545947b85..737a317fd1ee 100644
- * we need to work on. - * we need to work on.
- */ - */
- field_size = field_size * 2; - field_size = field_size * 2;
- ctx->codec.h264.mv_col_buf_field_size = ALIGN(field_size, 1024); - ctx->codec.h264.mv_col_buf_field_size = field_size;
- -
- mv_col_size = field_size * 2 * CEDRUS_H264_FRAME_NUM; - mv_col_size = field_size * 2 * CEDRUS_H264_FRAME_NUM;
- ctx->codec.h264.mv_col_buf_size = mv_col_size; - ctx->codec.h264.mv_col_buf_size = mv_col_size;
@ -221,7 +222,7 @@ index 405545947b85..737a317fd1ee 100644
err_pic_buf: err_pic_buf:
dma_free_coherent(dev->dev, CEDRUS_PIC_INFO_BUF_SIZE, dma_free_coherent(dev->dev, CEDRUS_PIC_INFO_BUF_SIZE,
ctx->codec.h264.pic_info_buf, ctx->codec.h264.pic_info_buf,
@@ -572,15 +596,20 @@ static void cedrus_h264_stop(struct cedrus_ctx *ctx) @@ -575,15 +599,20 @@ static void cedrus_h264_stop(struct cedrus_ctx *ctx)
{ {
struct cedrus_dev *dev = ctx->dev; struct cedrus_dev *dev = ctx->dev;
@ -246,10 +247,10 @@ index 405545947b85..737a317fd1ee 100644
static void cedrus_h264_trigger(struct cedrus_ctx *ctx) static void cedrus_h264_trigger(struct cedrus_ctx *ctx)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
index 2cc36d69548e..246d747d3fa9 100644 index 51ee459b2d21..f915429e9c88 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
@@ -336,9 +336,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx, @@ -337,9 +337,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
pred_weight_table = &slice_params->pred_weight_table; pred_weight_table = &slice_params->pred_weight_table;
/* Activate H265 engine. */ /* Activate H265 engine. */
@ -261,7 +262,7 @@ index 2cc36d69548e..246d747d3fa9 100644
/* Source offset and length in bits. */ /* Source offset and length in bits. */
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
index 6be604c52d5c..4b6c69010e39 100644 index 7d2f6eedfc28..9503d395855b 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c
@@ -30,7 +30,8 @@ @@ -30,7 +30,8 @@
@ -297,12 +298,12 @@ index 6be604c52d5c..4b6c69010e39 100644
cedrus_write(dev, VE_PRIMARY_CHROMA_BUF_LEN, reg); cedrus_write(dev, VE_PRIMARY_CHROMA_BUF_LEN, reg);
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
index b43c77d54b95..40b44722b7c0 100644 index 27d0882397aa..0e67c69812be 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h --- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
@@ -18,7 +18,8 @@ @@ -16,7 +16,8 @@
#ifndef _CEDRUS_HW_H_
#define CEDRUS_CLOCK_RATE_DEFAULT 320000000 #define _CEDRUS_HW_H_
-int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec); -int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec);
+int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec, +int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec,
@ -311,7 +312,7 @@ index b43c77d54b95..40b44722b7c0 100644
void cedrus_dst_format_set(struct cedrus_dev *dev, void cedrus_dst_format_set(struct cedrus_dev *dev,
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c
index cb45fda9aaeb..2f6384ca385d 100644 index 13c34927bad5..fc00a2cbf9bf 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c
@@ -96,7 +96,7 @@ static void cedrus_mpeg2_setup(struct cedrus_ctx *ctx, struct cedrus_run *run) @@ -96,7 +96,7 @@ static void cedrus_mpeg2_setup(struct cedrus_ctx *ctx, struct cedrus_run *run)
@ -339,7 +340,7 @@ index a2931f322c7a..df000b7c99be 100644
#define VE_PRIMARY_FB_LINE_STRIDE 0xc8 #define VE_PRIMARY_FB_LINE_STRIDE 0xc8
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
index adf00513c15f..b24317b26fd2 100644 index a0817cae1d69..d27a9e82ff91 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c
@@ -29,8 +29,8 @@ @@ -29,8 +29,8 @@
@ -354,5 +355,5 @@ index adf00513c15f..b24317b26fd2 100644
static struct cedrus_format cedrus_formats[] = { static struct cedrus_format cedrus_formats[] = {
{ {
-- --
2.20.1 2.21.0

View File

@ -1,25 +0,0 @@
From 18c9a269e2b744ee84f32de9d5c6c66857725ef8 Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 15 Dec 2018 12:56:53 +0100
Subject: [PATCH 20/20] cedrus increase frequency
---
drivers/staging/media/sunxi/cedrus/cedrus_hw.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
index b43c77d54b95..70677571f3d3 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.h
@@ -16,7 +16,7 @@
#ifndef _CEDRUS_HW_H_
#define _CEDRUS_HW_H_
-#define CEDRUS_CLOCK_RATE_DEFAULT 320000000
+#define CEDRUS_CLOCK_RATE_DEFAULT 402000000
int cedrus_engine_enable(struct cedrus_dev *dev, enum cedrus_codec codec);
void cedrus_engine_disable(struct cedrus_dev *dev);
--
2.20.0