diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch | 2 | ||||
-rw-r--r-- | 0012-arm64-h6-gpu-devfreq-enable.patch | 148 | ||||
-rw-r--r-- | 0040-wip-H6-deinterlace.patch | 1364 | ||||
-rw-r--r-- | 0041-arm64-dts-h6-deinterlace.patch | 32 | ||||
-rw-r--r-- | PKGBUILD | 17 | ||||
-rw-r--r-- | config | 1026 |
7 files changed, 1592 insertions, 1017 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-tqc-a01 - pkgver = 5.13.9 + pkgver = 5.13.10 pkgrel = 1 url = http://www.kernel.org/ arch = aarch64 @@ -28,11 +28,14 @@ pkgbase = linux-tqc-a01 source = 0006-drm-sun4i-Add-GEM-allocator.patch source = 0010-general-h6-add-dma-i2c-ir-spi-uart.patch source = 0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch + source = 0012-arm64-h6-gpu-devfreq-enable.patch + source = 0040-wip-H6-deinterlace.patch + source = 0041-arm64-dts-h6-deinterlace.patch source = config source = linux.preset source = 60-linux.hook source = 90-linux.hook - source = https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.13.9.xz + source = https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.13.10.xz md5sums = 76c60fb304510a7bbd9c838790bc5fe4 md5sums = 46d921dba031a9f397955a787c71911e md5sums = 17aa0c69176c68cd98b4522740a1b747 @@ -46,12 +49,15 @@ pkgbase = linux-tqc-a01 md5sums = 335382823f6dc2aae2f6038b7aee339e md5sums = cb38b30491472097c3b9b475de39127f md5sums = bc65c0b9e4d6fb2fe3a81b8358886885 - md5sums = 6637a33cfc563c8f1ccff00cfd5b39c5 - md5sums = a5564b07e7a88dc6211d647c7949904d + md5sums = 74baf0cb243b3abd5e38f0131c95408f + md5sums = 05c4d9cbe622d5ff15e6b84b1c5c1a70 + md5sums = d1543c205b4faf9be4552d4308228217 + md5sums = e4ef0ae46cdfb23abb11d729452f68b2 + md5sums = 75b51f71570f7ee1a7a18cfa05b67edd md5sums = 66e0ae63183426b28c0ec0c7e10b5e16 md5sums = ce6c81ad1ad1f8b333fd6077d47abdaf md5sums = 3dc88030a8f2f5a5f97266d99b149f77 - md5sums = 39a5d2b3ff92c000dc93f9fa2efb2c45 + md5sums = 4d745d474d07277daee24107239c8902 pkgname = linux-tqc-a01 pkgdesc = The Linux Kernel and modules - AArch64 kernel for TQC A01 @@ -61,7 +67,7 @@ pkgname = linux-tqc-a01 depends = kmod depends = mkinitcpio>=0.7 optdepends = crda: to set the correct wireless channels of your country - provides = linux=5.13.9 + provides = linux=5.13.10 provides = WIREGUARD-MODULE conflicts = linux replaces = linux-armv8 @@ -69,5 +75,5 @@ pkgname = linux-tqc-a01 pkgname = linux-tqc-a01-headers pkgdesc = Header files and scripts for building modules for linux kernel - AArch64 kernel for TQC A01 - provides = linux-headers=5.13.9 + provides = linux-headers=5.13.10 conflicts = linux-headers diff --git a/0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch b/0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch index 3d43242d70e0..b44aed025e70 100644 --- a/0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch +++ b/0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch @@ -159,7 +159,7 @@ index e3e01fa..a2f6364 100644 regulator-always-on; regulator-min-microvolt = <800000>; - regulator-max-microvolt = <1160000>; -+ regulator-max-microvolt = <0x129da0>; ++ regulator-max-microvolt = <1220000>; regulator-ramp-delay = <2500>; regulator-name = "vdd-cpu"; }; diff --git a/0012-arm64-h6-gpu-devfreq-enable.patch b/0012-arm64-h6-gpu-devfreq-enable.patch new file mode 100644 index 000000000000..589a8df898e4 --- /dev/null +++ b/0012-arm64-h6-gpu-devfreq-enable.patch @@ -0,0 +1,148 @@ +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index d422353..c71f886 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -204,6 +204,8 @@ gpu: gpu@1800000 { + clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; + clock-names = "core", "bus"; + resets = <&ccu RST_BUS_GPU>; ++ operating-points-v2 = <&gpu_opp_table>; ++ #cooling-cells = <2>; + status = "disabled"; + }; + +@@ -1176,6 +1178,105 @@ gpu-thermal { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&ths 1>; ++ trips { ++ gpu_alert: gpu-alert { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ ++ gpu-crit { ++ temperature = <100000>; ++ hysteresis = <0>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&gpu_alert>; ++ cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ }; ++ }; ++ }; ++ }; ++ ++ gpu_opp_table: gpu-opp-table { ++ compatible = "operating-points-v2"; ++ ++ opp@216000000 { ++ opp-hz = /bits/ 64 <216000000>; ++ opp-microvolt = <810000 810000 1200000>; ++ }; ++ ++ opp@264000000 { ++ opp-hz = /bits/ 64 <264000000>; ++ opp-microvolt = <810000 810000 1200000>; ++ }; ++ ++ opp@312000000 { ++ opp-hz = /bits/ 64 <312000000>; ++ opp-microvolt = <810000 810000 1200000>; ++ }; ++ ++ opp@336000000 { ++ opp-hz = /bits/ 64 <336000000>; ++ opp-microvolt = <810000 810000 1200000>; ++ }; ++ ++ opp@360000000 { ++ opp-hz = /bits/ 64 <360000000>; ++ opp-microvolt = <820000 820000 1200000>; ++ }; ++ ++ opp@384000000 { ++ opp-hz = /bits/ 64 <384000000>; ++ opp-microvolt = <830000 830000 1200000>; ++ }; ++ ++ opp@408000000 { ++ opp-hz = /bits/ 64 <408000000>; ++ opp-microvolt = <840000 840000 1200000>; ++ }; ++ ++ opp@420000000 { ++ opp-hz = /bits/ 64 <420000000>; ++ opp-microvolt = <850000 850000 1200000>; ++ }; ++ ++ opp@432000000 { ++ opp-hz = /bits/ 64 <432000000>; ++ opp-microvolt = <860000 860000 1200000>; ++ }; ++ ++ opp@456000000 { ++ opp-hz = /bits/ 64 <456000000>; ++ opp-microvolt = <870000 870000 1200000>; ++ }; ++ ++ opp@504000000 { ++ opp-hz = /bits/ 64 <504000000>; ++ opp-microvolt = <890000 890000 1200000>; ++ }; ++ ++ opp@540000000 { ++ opp-hz = /bits/ 64 <540000000>; ++ opp-microvolt = <910000 910000 1200000>; ++ }; ++ ++ opp@576000000 { ++ opp-hz = /bits/ 64 <576000000>; ++ opp-microvolt = <930000 930000 1200000>; ++ }; ++ ++ opp@624000000 { ++ opp-hz = /bits/ 64 <624000000>; ++ opp-microvolt = <950000 950000 1200000>; ++ }; ++ ++ opp@756000000 { ++ opp-hz = /bits/ 64 <756000000>; ++ opp-microvolt = <1040000 1040000 1200000>; + }; + }; + }; +diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c +index 199ab77..db61727 100644 +--- a/drivers/clk/sunxi-ng/ccu-sun50i-h6.c ++++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6.c +@@ -299,7 +299,7 @@ static SUNXI_CCU_M_WITH_MUX_GATE(gpu_clk, "gpu", gpu_parents, 0x670, + 0, 3, /* M */ + 24, 1, /* mux */ + BIT(31), /* gate */ +- CLK_SET_RATE_PARENT); ++ 0); + + static SUNXI_CCU_GATE(bus_gpu_clk, "bus-gpu", "psi-ahb1-ahb2", + 0x67c, BIT(0), 0); +@@ -1240,6 +1240,15 @@ static int sun50i_h6_ccu_probe(struct platform_device *pdev) + val |= BIT(24); + writel(val, reg + SUN50I_H6_HDMI_CEC_CLK_REG); + ++ /* ++ * Enforce n = 62 m = 1 p = 0 for GPU PLL = 756MHz ++ */ ++ ++ val = readl(reg + SUN50I_H6_PLL_GPU_REG); ++ val &= ~(GENMASK(8, 8) | BIT(1) | BIT(0)); ++ val |= (62 << 8) | BIT(1); ++ writel(val, reg + SUN50I_H6_PLL_GPU_REG); ++ + return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_h6_ccu_desc); + } + diff --git a/0040-wip-H6-deinterlace.patch b/0040-wip-H6-deinterlace.patch new file mode 100644 index 000000000000..b5bb79679e74 --- /dev/null +++ b/0040-wip-H6-deinterlace.patch @@ -0,0 +1,1364 @@ +From 91c70ea17b58c9205c35cd43a3dd8266bbe035b1 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec <jernej.skrabec@siol.net> +Date: Mon, 25 May 2020 19:06:07 +0200 +Subject: [PATCH 40/44] wip: H6 deinterlace + +Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> +--- + drivers/media/platform/Kconfig | 13 + + drivers/media/platform/sunxi/Makefile | 1 + + .../media/platform/sunxi/sun50i-di/Makefile | 2 + + .../platform/sunxi/sun50i-di/sun50i-di.c | 1134 +++++++++++++++++ + .../platform/sunxi/sun50i-di/sun50i-di.h | 172 +++ + 5 files changed, 1322 insertions(+) + create mode 100644 drivers/media/platform/sunxi/sun50i-di/Makefile + create mode 100644 drivers/media/platform/sunxi/sun50i-di/sun50i-di.c + create mode 100644 drivers/media/platform/sunxi/sun50i-di/sun50i-di.h + +--- a/drivers/media/platform/Kconfig ++++ b/drivers/media/platform/Kconfig +@@ -510,6 +510,19 @@ config VIDEO_QCOM_VENUS + on various Qualcomm SoCs. + To compile this driver as a module choose m here. + ++config VIDEO_SUN50I_DEINTERLACE ++ tristate "Allwinner Deinterlace v2 driver" ++ depends on VIDEO_DEV && VIDEO_V4L2 ++ depends on ARCH_SUNXI || COMPILE_TEST ++ depends on COMMON_CLK && OF ++ depends on PM ++ select VIDEOBUF2_DMA_CONTIG ++ select V4L2_MEM2MEM_DEV ++ help ++ Support for the Allwinner deinterlace v2 unit found on ++ some SoCs, like H6. ++ To compile this driver as a module choose m here. ++ + config VIDEO_SUN8I_DEINTERLACE + tristate "Allwinner Deinterlace driver" + depends on VIDEO_DEV && VIDEO_V4L2 +--- a/drivers/media/platform/sunxi/Makefile ++++ b/drivers/media/platform/sunxi/Makefile +@@ -3,4 +3,5 @@ + obj-y += sun4i-csi/ + obj-y += sun6i-csi/ + obj-y += sun8i-di/ ++obj-y += sun50i-di/ + obj-y += sun8i-rotate/ +--- /dev/null ++++ b/drivers/media/platform/sunxi/sun50i-di/Makefile +@@ -0,0 +1,2 @@ ++# SPDX-License-Identifier: GPL-2.0 ++obj-$(CONFIG_VIDEO_SUN50I_DEINTERLACE) += sun50i-di.o +--- /dev/null ++++ b/drivers/media/platform/sunxi/sun50i-di/sun50i-di.c +@@ -0,0 +1,1134 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Allwinner sun50i deinterlacer driver ++ * ++ * Copyright (C) 2020 Jernej Skrabec <jernej.skrabec@siol.net> ++ * ++ * Based on vim2m driver. ++ */ ++ ++#include <linux/clk.h> ++#include <linux/interrupt.h> ++#include <linux/io.h> ++#include <linux/iopoll.h> ++#include <linux/module.h> ++#include <linux/of.h> ++#include <linux/of_device.h> ++#include <linux/pm_runtime.h> ++#include <linux/reset.h> ++ ++#include <media/v4l2-device.h> ++#include <media/v4l2-ioctl.h> ++#include <media/v4l2-mem2mem.h> ++ ++#include "sun50i-di.h" ++ ++#define FLAG_SIZE (DEINTERLACE_MAX_WIDTH * DEINTERLACE_MAX_HEIGHT / 4) ++ ++static u32 deinterlace_formats[] = { ++ V4L2_PIX_FMT_NV12, ++ V4L2_PIX_FMT_NV21, ++ V4L2_PIX_FMT_YUV420, ++ V4L2_PIX_FMT_NV16, ++ V4L2_PIX_FMT_NV61, ++ V4L2_PIX_FMT_YUV422P ++}; ++ ++static inline u32 deinterlace_read(struct deinterlace_dev *dev, u32 reg) ++{ ++ return readl(dev->base + reg); ++} ++ ++static inline void deinterlace_write(struct deinterlace_dev *dev, ++ u32 reg, u32 value) ++{ ++ writel(value, dev->base + reg); ++} ++ ++static inline void deinterlace_set_bits(struct deinterlace_dev *dev, ++ u32 reg, u32 bits) ++{ ++ u32 val = readl(dev->base + reg); ++ ++ val |= bits; ++ ++ writel(val, dev->base + reg); ++} ++ ++static inline void deinterlace_clr_set_bits(struct deinterlace_dev *dev, ++ u32 reg, u32 clr, u32 set) ++{ ++ u32 val = readl(dev->base + reg); ++ ++ val &= ~clr; ++ val |= set; ++ ++ writel(val, dev->base + reg); ++} ++ ++static void deinterlace_device_run(void *priv) ++{ ++ u32 width, height, reg, msk, pitch[3], offset[2], fmt; ++ dma_addr_t buf, prev, curr, next, addr[4][3]; ++ struct deinterlace_ctx *ctx = priv; ++ struct deinterlace_dev *dev = ctx->dev; ++ struct vb2_v4l2_buffer *src, *dst; ++ unsigned int val; ++ bool motion; ++ ++ src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); ++ dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); ++ ++ v4l2_m2m_buf_copy_metadata(src, dst, true); ++ ++ fmt = ctx->src_fmt.pixelformat; ++ ++ deinterlace_write(dev, DEINTERLACE_IN_FLAG_ADDR, ctx->flag1_buf_dma); ++ deinterlace_write(dev, DEINTERLACE_OUT_FLAG_ADDR, ctx->flag2_buf_dma); ++ deinterlace_write(dev, DEINTERLACE_FLAG_ADDRH, 0); ++ deinterlace_write(dev, DEINTERLACE_FLAG_PITCH, 0x200); ++ ++ width = ctx->src_fmt.width; ++ height = ctx->src_fmt.height; ++ ++ reg = DEINTERLACE_SIZE_WIDTH(width); ++ reg |= DEINTERLACE_SIZE_HEIGHT(height); ++ deinterlace_write(dev, DEINTERLACE_SIZE, reg); ++ ++ switch (fmt) { ++ case V4L2_PIX_FMT_NV12: ++ case V4L2_PIX_FMT_NV21: ++ reg = DEINTERLACE_FORMAT_YUV420SP; ++ break; ++ case V4L2_PIX_FMT_YUV420: ++ reg = DEINTERLACE_FORMAT_YUV420P; ++ break; ++ case V4L2_PIX_FMT_NV16: ++ case V4L2_PIX_FMT_NV61: ++ reg = DEINTERLACE_FORMAT_YUV422SP; ++ break; ++ case V4L2_PIX_FMT_YUV422P: ++ reg = DEINTERLACE_FORMAT_YUV422P; ++ break; ++ } ++ deinterlace_write(dev, DEINTERLACE_FORMAT, reg); ++ ++ pitch[0] = ctx->src_fmt.bytesperline; ++ switch (fmt) { ++ case V4L2_PIX_FMT_YUV420: ++ case V4L2_PIX_FMT_YUV422P: ++ pitch[1] = pitch[0] / 2; ++ pitch[2] = pitch[1]; ++ break; ++ case V4L2_PIX_FMT_NV12: ++ case V4L2_PIX_FMT_NV21: ++ case V4L2_PIX_FMT_NV16: ++ case V4L2_PIX_FMT_NV61: ++ pitch[1] = pitch[0]; ++ pitch[2] = 0; ++ break; ++ } ++ ++ deinterlace_write(dev, DEINTERLACE_IN_PITCH0, pitch[0] * 2); ++ deinterlace_write(dev, DEINTERLACE_IN_PITCH1, pitch[1] * 2); ++ deinterlace_write(dev, DEINTERLACE_IN_PITCH2, pitch[2] * 2); ++ deinterlace_write(dev, DEINTERLACE_OUT_PITCH0, pitch[0]); ++ deinterlace_write(dev, DEINTERLACE_OUT_PITCH1, pitch[1]); ++ deinterlace_write(dev, DEINTERLACE_OUT_PITCH2, pitch[2]); ++ ++ offset[0] = pitch[0] * height; ++ switch (fmt) { ++ case V4L2_PIX_FMT_YUV420: ++ offset[1] = offset[0] + offset[0] / 4; ++ break; ++ case V4L2_PIX_FMT_YUV422P: ++ offset[1] = offset[0] + offset[0] / 2; ++ break; ++ default: ++ offset[1] = 0; ++ break; ++ } ++ ++ buf = vb2_dma_contig_plane_dma_addr(&src->vb2_buf, 0); ++ next = buf; ++ if (ctx->prev[0]) ++ buf = vb2_dma_contig_plane_dma_addr(&ctx->prev[0]->vb2_buf, 0); ++ curr = buf; ++ if (ctx->prev[1]) ++ buf = vb2_dma_contig_plane_dma_addr(&ctx->prev[1]->vb2_buf, 0); ++ prev = buf; ++ ++ if (ctx->first_field == 0) { ++ if (ctx->field == 0) { ++ addr[0][0] = prev; ++ addr[0][1] = prev + offset[0]; ++ addr[0][2] = prev + offset[1]; ++ addr[1][0] = prev + pitch[0]; ++ addr[1][1] = prev + offset[0] + pitch[1]; ++ addr[1][2] = prev + offset[1] + pitch[2]; ++ addr[2][0] = curr; ++ addr[2][1] = curr + offset[0]; ++ addr[2][2] = curr + offset[1]; ++ addr[3][0] = curr + pitch[0]; ++ addr[3][1] = curr + offset[0] + pitch[1]; ++ addr[3][2] = curr + offset[1] + pitch[2]; ++ } else { ++ addr[0][0] = prev + pitch[0]; ++ addr[0][1] = prev + offset[0] + pitch[1]; ++ addr[0][2] = prev + offset[1] + pitch[2]; ++ addr[1][0] = curr; ++ addr[1][1] = curr + offset[0]; ++ addr[1][2] = curr + offset[1]; ++ addr[2][0] = curr + pitch[0]; ++ addr[2][1] = curr + offset[0] + pitch[1]; ++ addr[2][2] = curr + offset[1] + pitch[2]; ++ addr[3][0] = next; ++ addr[3][1] = next + offset[0]; ++ addr[3][2] = next + offset[1]; ++ } ++ } else { ++ if (ctx->field == 0) { ++ addr[0][0] = prev; ++ addr[0][1] = prev + offset[0]; ++ addr[0][2] = prev + offset[1]; ++ addr[1][0] = curr + pitch[0]; ++ addr[1][1] = curr + offset[0] + pitch[1]; ++ addr[1][2] = curr + offset[1] + pitch[2]; ++ addr[2][0] = curr; ++ addr[2][1] = curr + offset[0]; ++ addr[2][2] = curr + offset[1]; ++ addr[3][0] = next + pitch[0]; ++ addr[3][1] = next + offset[0] + pitch[1]; ++ addr[3][2] = next + offset[1] + pitch[2]; ++ } else { ++ addr[0][0] = prev + pitch[0]; ++ addr[0][1] = prev + offset[0] + pitch[1]; ++ addr[0][2] = prev + offset[1] + pitch[2]; ++ addr[1][0] = prev; ++ addr[1][1] = prev + offset[0]; ++ addr[1][2] = prev + offset[1]; ++ addr[2][0] = curr + pitch[0]; ++ addr[2][1] = curr + offset[0] + pitch[1]; ++ addr[2][2] = curr + offset[1] + pitch[2]; ++ addr[3][0] = curr; ++ addr[3][1] = curr + offset[0]; ++ addr[3][2] = curr + offset[1]; ++ } ++ } ++ ++ deinterlace_write(dev, DEINTERLACE_IN0_ADDR0, addr[0][0]); ++ deinterlace_write(dev, DEINTERLACE_IN0_ADDR1, addr[0][1]); ++ deinterlace_write(dev, DEINTERLACE_IN0_ADDR2, addr[0][2]); ++ ++ deinterlace_write(dev, DEINTERLACE_IN1_ADDR0, addr[1][0]); ++ deinterlace_write(dev, DEINTERLACE_IN1_ADDR1, addr[1][1]); ++ deinterlace_write(dev, DEINTERLACE_IN1_ADDR2, addr[1][2]); ++ ++ deinterlace_write(dev, DEINTERLACE_IN2_ADDR0, addr[2][0]); ++ deinterlace_write(dev, DEINTERLACE_IN2_ADDR1, addr[2][1]); ++ deinterlace_write(dev, DEINTERLACE_IN2_ADDR2, addr[2][2]); ++ ++ deinterlace_write(dev, DEINTERLACE_IN3_ADDR0, addr[3][0]); ++ deinterlace_write(dev, DEINTERLACE_IN3_ADDR1, addr[3][1]); ++ deinterlace_write(dev, DEINTERLACE_IN3_ADDR2, addr[3][2]); ++ ++ buf = vb2_dma_contig_plane_dma_addr(&dst->vb2_buf, 0); ++ deinterlace_write(dev, DEINTERLACE_OUT_ADDR0, buf); ++ deinterlace_write(dev, DEINTERLACE_OUT_ADDR1, buf + offset[0]); ++ deinterlace_write(dev, DEINTERLACE_OUT_ADDR2, buf + offset[1]); ++ ++ if (ctx->first_field == 0) ++ val = 4; ++ else ++ val = 5; ++ ++ reg = DEINTERLACE_INTP_PARAM0_LUMA_CUR_FAC_MODE(val); ++ reg |= DEINTERLACE_INTP_PARAM0_CHROMA_CUR_FAC_MODE(val); ++ msk = DEINTERLACE_INTP_PARAM0_LUMA_CUR_FAC_MODE_MSK; ++ msk |= DEINTERLACE_INTP_PARAM0_CHROMA_CUR_FAC_MODE_MSK; ++ deinterlace_clr_set_bits(dev, DEINTERLACE_INTP_PARAM0, msk, reg); ++ ++ reg = DEINTERLACE_POLAR_FIELD(ctx->field); ++ deinterlace_write(dev, DEINTERLACE_POLAR, reg); ++ ++ motion = ctx->prev[0] && ctx->prev[1]; ++ reg = DEINTERLACE_MODE_DEINT_LUMA; ++ if (motion) ++ reg |= DEINTERLACE_MODE_MOTION_EN; ++ reg |= DEINTERLACE_MODE_INTP_EN; ++ reg |= DEINTERLACE_MODE_AUTO_UPD_MODE(ctx->first_field); ++ reg |= DEINTERLACE_MODE_DEINT_CHROMA; ++ if (!motion) ++ reg |= DEINTERLACE_MODE_FIELD_MODE; ++ deinterlace_write(dev, DEINTERLACE_MODE, reg); ++ ++ deinterlace_set_bits(dev, DEINTERLACE_INT_CTRL, ++ DEINTERLACE_INT_EN); ++ ++ deinterlace_set_bits(dev, DEINTERLACE_CTRL, ++ DEINTERLACE_CTRL_START); ++} ++ ++static int deinterlace_job_ready(void *priv) ++{ ++ struct deinterlace_ctx *ctx = priv; ++ ++ return v4l2_m2m_num_src_bufs_ready(ctx->fh.m2m_ctx) >= 1 && ++ v4l2_m2m_num_dst_bufs_ready(ctx->fh.m2m_ctx) >= 2; ++} ++ ++static void deinterlace_job_abort(void *priv) ++{ ++ struct deinterlace_ctx *ctx = priv; ++ ++ /* Will cancel the transaction in the next interrupt handler */ ++ ctx->aborting = 1; ++} ++ ++static irqreturn_t deinterlace_irq(int irq, void *data) ++{ ++ struct deinterlace_dev *dev = data; ++ struct vb2_v4l2_buffer *src, *dst; ++ struct deinterlace_ctx *ctx; ++ unsigned int val; ++ ++ ctx = v4l2_m2m_get_curr_priv(dev->m2m_dev); ++ if (!ctx) { ++ v4l2_err(&dev->v4l2_dev, ++ "Instance released before the end of transaction\n"); ++ return IRQ_NONE; ++ } ++ ++ val = deinterlace_read(dev, DEINTERLACE_STATUS); ++ if (!(val & DEINTERLACE_STATUS_FINISHED)) ++ return IRQ_NONE; ++ ++ deinterlace_write(dev, DEINTERLACE_INT_CTRL, 0); ++ deinterlace_set_bits(dev, DEINTERLACE_STATUS, ++ DEINTERLACE_STATUS_FINISHED); ++ deinterlace_clr_set_bits(dev, DEINTERLACE_CTRL, ++ DEINTERLACE_CTRL_START, 0); ++ ++ dst = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); ++ v4l2_m2m_buf_done(dst, VB2_BUF_STATE_DONE); ++ ++ if (ctx->field != ctx->first_field || ctx->aborting) { ++ ctx->field = ctx->first_field; ++ ++ src = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); ++ if (ctx->prev[1]) ++ v4l2_m2m_buf_done(ctx->prev[1], VB2_BUF_STATE_DONE); ++ ctx->prev[1] = ctx->prev[0]; ++ ctx->prev[0] = src; ++ ++ v4l2_m2m_job_finish(ctx->dev->m2m_dev, ctx->fh.m2m_ctx); ++ } else { ++ ctx->field = !ctx->first_field; ++ deinterlace_device_run(ctx); ++ } ++ ++ return IRQ_HANDLED; ++} ++ ++static void deinterlace_init(struct deinterlace_dev *dev) ++{ ++ u32 reg; ++ ++ deinterlace_write(dev, DEINTERLACE_OUT_PATH, 0); ++ ++ reg = DEINTERLACE_MD_PARAM0_MIN_LUMA_TH(4); ++ reg |= DEINTERLACE_MD_PARAM0_MAX_LUMA_TH(12); ++ reg |= DEINTERLACE_MD_PARAM0_AVG_LUMA_SHIFT(6); ++ reg |= DEINTERLACE_MD_PARAM0_TH_SHIFT(1); ++ deinterlace_write(dev, DEINTERLACE_MD_PARAM0, reg); ++ ++ reg = DEINTERLACE_MD_PARAM1_MOV_FAC_NONEDGE(2); ++ deinterlace_write(dev, DEINTERLACE_MD_PARAM1, reg); ++ ++ reg = DEINTERLACE_MD_PARAM2_CHROMA_SPATIAL_TH(128); ++ reg |= DEINTERLACE_MD_PARAM2_CHROMA_DIFF_TH(5); ++ reg |= DEINTERLACE_MD_PARAM2_PIX_STATIC_TH(3); ++ deinterlace_write(dev, DEINTERLACE_MD_PARAM2, reg); ++ ++ reg = DEINTERLACE_INTP_PARAM0_ANGLE_LIMIT(20); ++ reg |= DEINTERLACE_INTP_PARAM0_ANGLE_CONST_TH(5); ++ reg |= DEINTERLACE_INTP_PARAM0_LUMA_CUR_FAC_MODE(1); ++ reg |= DEINTERLACE_INTP_PARAM0_CHROMA_CUR_FAC_MODE(1); ++ deinterlace_write(dev, DEINTERLACE_INTP_PARAM0, reg); ++ ++ reg = DEINTERLACE_MD_CH_PARAM_BLEND_MODE(1); ++ reg |= DEINTERLACE_MD_CH_PARAM_FONT_PRO_EN; ++ reg |= DEINTERLACE_MD_CH_PARAM_FONT_PRO_TH(48); ++ reg |= DEINTERLACE_MD_CH_PARAM_FONT_PRO_FAC(4); ++ deinterlace_write(dev, DEINTERLACE_MD_CH_PARAM, reg); ++ ++ reg = DEINTERLACE_INTP_PARAM1_A(4); ++ reg |= DEINTERLACE_INTP_PARAM1_EN; ++ reg |= DEINTERLACE_INTP_PARAM1_C(10); ++ reg |= DEINTERLACE_INTP_PARAM1_CMAX(64); ++ reg |= DEINTERLACE_INTP_PARAM1_MAXRAT(2); ++ deinterlace_write(dev, DEINTERLACE_INTP_PARAM1, reg); ++ ++ /* only 32-bit addresses are supported, so high bits are always 0 */ ++ deinterlace_write(dev, DEINTERLACE_IN0_ADDRH, 0); ++ deinterlace_write(dev, DEINTERLACE_IN1_ADDRH, 0); ++ deinterlace_write(dev, DEINTERLACE_IN2_ADDRH, 0); ++ deinterlace_write(dev, DEINTERLACE_IN3_ADDRH, 0); ++ deinterlace_write(dev, DEINTERLACE_OUT_ADDRH, 0); ++} ++ ++static inline struct deinterlace_ctx *deinterlace_file2ctx(struct file *file) ++{ ++ return container_of(file->private_data, struct deinterlace_ctx, fh); ++} ++ ++static bool deinterlace_check_format(u32 pixelformat) ++{ ++ unsigned int i; ++ ++ for (i = 0; i < ARRAY_SIZE(deinterlace_formats); i++) ++ if (deinterlace_formats[i] == pixelformat) ++ return true; ++ ++ return false; ++} ++ ++static void deinterlace_prepare_format(struct v4l2_pix_format *pix_fmt) ++{ ++ unsigned int bytesperline = pix_fmt->bytesperline; ++ unsigned int height = pix_fmt->height; ++ unsigned int width = pix_fmt->width; ++ unsigned int sizeimage; ++ ++ width = clamp(width, DEINTERLACE_MIN_WIDTH, ++ DEINTERLACE_MAX_WIDTH); ++ height = clamp(height, DEINTERLACE_MIN_HEIGHT, ++ DEINTERLACE_MAX_HEIGHT); ++ ++ /* try to respect userspace wishes about pitch */ ++ bytesperline = ALIGN(bytesperline, 2); ++ if (bytesperline < ALIGN(width, 2)) ++ bytesperline = ALIGN(width, 2); ++ ++ /* luma */ ++ sizeimage = bytesperline * height; ++ /* chroma */ ++ switch (pix_fmt->pixelformat) { ++ case V4L2_PIX_FMT_NV12: ++ case V4L2_PIX_FMT_NV21: ++ case V4L2_PIX_FMT_YUV420: ++ sizeimage += bytesperline * height / 2; ++ break; ++ case V4L2_PIX_FMT_NV16: ++ case V4L2_PIX_FMT_NV61: ++ case V4L2_PIX_FMT_YUV422P: ++ sizeimage += bytesperline * height; ++ break; ++ } ++ ++ if (pix_fmt->sizeimage < sizeimage) ++ pix_fmt->sizeimage = sizeimage; ++ ++ pix_fmt->width = width; ++ pix_fmt->height = height; ++ pix_fmt->bytesperline = bytesperline; ++} ++ ++static int deinterlace_querycap(struct file *file, void *priv, ++ struct v4l2_capability *cap) ++{ ++ strscpy(cap->driver, DEINTERLACE_NAME, sizeof(cap->driver)); ++ strscpy(cap->card, DEINTERLACE_NAME, sizeof(cap->card)); ++ snprintf(cap->bus_info, sizeof(cap->bus_info), ++ "platform:%s", DEINTERLACE_NAME); ++ ++ return 0; ++} ++ ++static int deinterlace_enum_fmt(struct file *file, void *priv, ++ struct v4l2_fmtdesc *f) ++{ ++ if (f->index < ARRAY_SIZE(deinterlace_formats)) { ++ f->pixelformat = deinterlace_formats[f->index]; ++ ++ return 0; ++ } ++ ++ return -EINVAL; ++} ++ ++static int deinterlace_enum_framesizes(struct file *file, void *priv, ++ struct v4l2_frmsizeenum *fsize) ++{ ++ if (fsize->index != 0) ++ return -EINVAL; ++ ++ if (!deinterlace_check_format(fsize->pixel_format)) ++ return -EINVAL; ++ ++ fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE; ++ fsize->stepwise.min_width = DEINTERLACE_MIN_WIDTH; ++ fsize->stepwise.min_height = DEINTERLACE_MIN_HEIGHT; ++ fsize->stepwise.max_width = DEINTERLACE_MAX_WIDTH; ++ fsize->stepwise.max_height = DEINTERLACE_MAX_HEIGHT; ++ fsize->stepwise.step_width = 2; ++ ++ switch (fsize->pixel_format) { ++ case V4L2_PIX_FMT_NV12: ++ case V4L2_PIX_FMT_NV21: ++ case V4L2_PIX_FMT_YUV420: ++ fsize->stepwise.step_height = 2; ++ break; ++ case V4L2_PIX_FMT_NV16: ++ case V4L2_PIX_FMT_NV61: ++ case V4L2_PIX_FMT_YUV422P: ++ fsize->stepwise.step_height = 1; ++ break; ++ } ++ ++ return 0; ++} ++ ++static int deinterlace_set_cap_format(struct deinterlace_ctx *ctx, ++ struct v4l2_pix_format *f) ++{ ++ if (!deinterlace_check_format(ctx->src_fmt.pixelformat)) ++ return -EINVAL; ++ ++ f->pixelformat = ctx->src_fmt.pixelformat; ++ f->field = V4L2_FIELD_NONE; ++ f->width = ctx->src_fmt.width; ++ f->height = ctx->src_fmt.height; ++ ++ deinterlace_prepare_format(f); ++ ++ return 0; ++} ++ ++static int deinterlace_g_fmt_vid_cap(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ struct deinterlace_ctx *ctx = deinterlace_file2ctx(file); ++ ++ f->fmt.pix = ctx->dst_fmt; ++ ++ return 0; ++} ++ ++static int deinterlace_g_fmt_vid_out(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ struct deinterlace_ctx *ctx = deinterlace_file2ctx(file); ++ ++ f->fmt.pix = ctx->src_fmt; ++ ++ return 0; ++} ++ ++static int deinterlace_try_fmt_vid_cap(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ struct deinterlace_ctx *ctx = deinterlace_file2ctx(file); ++ ++ return deinterlace_set_cap_format(ctx, &f->fmt.pix); ++} ++ ++static int deinterlace_try_fmt_vid_out(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ if (!deinterlace_check_format(f->fmt.pix.pixelformat)) ++ f->fmt.pix.pixelformat = deinterlace_formats[0]; ++ ++ if (f->fmt.pix.field != V4L2_FIELD_INTERLACED_TB && ++ f->fmt.pix.field != V4L2_FIELD_INTERLACED_BT && ++ f->fmt.pix.field != V4L2_FIELD_INTERLACED) ++ f->fmt.pix.field = V4L2_FIELD_INTERLACED; ++ ++ deinterlace_prepare_format(&f->fmt.pix); ++ ++ return 0; ++} ++ ++static int deinterlace_s_fmt_vid_cap(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ struct deinterlace_ctx *ctx = deinterlace_file2ctx(file); ++ struct vb2_queue *vq; ++ int ret; ++ ++ ret = deinterlace_try_fmt_vid_cap(file, priv, f); ++ if (ret) ++ return ret; ++ ++ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); ++ if (vb2_is_busy(vq)) ++ return -EBUSY; ++ ++ ctx->dst_fmt = f->fmt.pix; ++ ++ return 0; ++} ++ ++static int deinterlace_s_fmt_vid_out(struct file *file, void *priv, ++ struct v4l2_format *f) ++{ ++ struct deinterlace_ctx *ctx = deinterlace_file2ctx(file); ++ struct vb2_queue *vq; ++ int ret; ++ ++ ret = deinterlace_try_fmt_vid_out(file, priv, f); ++ if (ret) ++ return ret; ++ ++ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); ++ if (vb2_is_busy(vq)) ++ return -EBUSY; ++ ++ /* ++ * Capture queue has to be also checked, because format and size ++ * depends on output format and size. ++ */ ++ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE); ++ if (vb2_is_busy(vq)) ++ return -EBUSY; ++ ++ ctx->src_fmt = f->fmt.pix; ++ ++ /* Propagate colorspace information to capture. */ ++ ctx->dst_fmt.colorspace = f->fmt.pix.colorspace; ++ ctx->dst_fmt.xfer_func = f->fmt.pix.xfer_func; ++ ctx->dst_fmt.ycbcr_enc = f->fmt.pix.ycbcr_enc; ++ ctx->dst_fmt.quantization = f->fmt.pix.quantization; ++ ++ return deinterlace_set_cap_format(ctx, &ctx->dst_fmt); ++} ++ ++static const struct v4l2_ioctl_ops deinterlace_ioctl_ops = { ++ .vidioc_querycap = deinterlace_querycap, ++ ++ .vidioc_enum_framesizes = deinterlace_enum_framesizes, ++ ++ .vidioc_enum_fmt_vid_cap = deinterlace_enum_fmt, ++ .vidioc_g_fmt_vid_cap = deinterlace_g_fmt_vid_cap, ++ .vidioc_try_fmt_vid_cap = deinterlace_try_fmt_vid_cap, ++ .vidioc_s_fmt_vid_cap = deinterlace_s_fmt_vid_cap, ++ ++ .vidioc_enum_fmt_vid_out = deinterlace_enum_fmt, ++ .vidioc_g_fmt_vid_out = deinterlace_g_fmt_vid_out, ++ .vidioc_try_fmt_vid_out = deinterlace_try_fmt_vid_out, ++ .vidioc_s_fmt_vid_out = deinterlace_s_fmt_vid_out, ++ ++ .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, ++ .vidioc_querybuf = v4l2_m2m_ioctl_querybuf, ++ .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, ++ .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, ++ .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, ++ .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, ++ .vidioc_expbuf = v4l2_m2m_ioctl_expbuf, ++ ++ .vidioc_streamon = v4l2_m2m_ioctl_streamon, ++ .vidioc_streamoff = v4l2_m2m_ioctl_streamoff, ++}; ++ ++static int deinterlace_queue_setup(struct vb2_queue *vq, unsigned int *nbuffers, ++ unsigned int *nplanes, unsigned int sizes[], ++ struct device *alloc_devs[]) ++{ ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vq); ++ struct v4l2_pix_format *pix_fmt; ++ ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) ++ pix_fmt = &ctx->src_fmt; ++ else ++ pix_fmt = &ctx->dst_fmt; ++ ++ if (*nplanes) { ++ if (sizes[0] < pix_fmt->sizeimage) ++ return -EINVAL; ++ } else { ++ sizes[0] = pix_fmt->sizeimage; ++ *nplanes = 1; ++ } ++ ++ return 0; ++} ++ ++static int deinterlace_buf_prepare(struct vb2_buffer *vb) ++{ ++ struct vb2_queue *vq = vb->vb2_queue; ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vq); ++ struct v4l2_pix_format *pix_fmt; ++ ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) ++ pix_fmt = &ctx->src_fmt; ++ else ++ pix_fmt = &ctx->dst_fmt; ++ ++ if (vb2_plane_size(vb, 0) < pix_fmt->sizeimage) ++ return -EINVAL; ++ ++ vb2_set_plane_payload(vb, 0, pix_fmt->sizeimage); ++ ++ return 0; ++} ++ ++static void deinterlace_buf_queue(struct vb2_buffer *vb) ++{ ++ struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb); ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); ++ ++ v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vbuf); ++} ++ ++static void deinterlace_queue_cleanup(struct vb2_queue *vq, u32 state) ++{ ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vq); ++ struct vb2_v4l2_buffer *vbuf; ++ ++ do { ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) ++ vbuf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); ++ else ++ vbuf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); ++ ++ if (vbuf) ++ v4l2_m2m_buf_done(vbuf, state); ++ } while (vbuf); ++ ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) { ++ if (ctx->prev[0]) ++ v4l2_m2m_buf_done(ctx->prev[0], state); ++ if (ctx->prev[1]) ++ v4l2_m2m_buf_done(ctx->prev[1], state); ++ } ++} ++ ++static int deinterlace_start_streaming(struct vb2_queue *vq, unsigned int count) ++{ ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vq); ++ struct device *dev = ctx->dev->dev; ++ int ret; ++ ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) { ++ ret = pm_runtime_get_sync(dev); ++ if (ret < 0) { ++ dev_err(dev, "Failed to enable module\n"); ++ ++ goto err_runtime_get; ++ } ++ ++ ctx->first_field = ++ ctx->src_fmt.field == V4L2_FIELD_INTERLACED_BT; ++ ctx->field = ctx->first_field; ++ ++ ctx->prev[0] = NULL; ++ ctx->prev[1] = NULL; ++ ctx->aborting = 0; ++ ++ ctx->flag1_buf = dma_alloc_coherent(dev, FLAG_SIZE, ++ &ctx->flag1_buf_dma, ++ GFP_KERNEL); ++ if (!ctx->flag1_buf) { ++ ret = -ENOMEM; ++ ++ goto err_no_mem1; ++ } ++ ++ ctx->flag2_buf = dma_alloc_coherent(dev, FLAG_SIZE, ++ &ctx->flag2_buf_dma, ++ GFP_KERNEL); ++ if (!ctx->flag2_buf) { ++ ret = -ENOMEM; ++ ++ goto err_no_mem2; ++ } ++ } ++ ++ return 0; ++ ++err_no_mem2: ++ dma_free_coherent(dev, FLAG_SIZE, ctx->flag1_buf, ++ ctx->flag1_buf_dma); ++err_no_mem1: ++ pm_runtime_put(dev); ++err_runtime_get: ++ deinterlace_queue_cleanup(vq, VB2_BUF_STATE_QUEUED); ++ ++ return ret; ++} ++ ++static void deinterlace_stop_streaming(struct vb2_queue *vq) ++{ ++ struct deinterlace_ctx *ctx = vb2_get_drv_priv(vq); ++ ++ if (V4L2_TYPE_IS_OUTPUT(vq->type)) { ++ struct device *dev = ctx->dev->dev; ++ ++ dma_free_coherent(dev, FLAG_SIZE, ctx->flag1_buf, ++ ctx->flag1_buf_dma); ++ dma_free_coherent(dev, FLAG_SIZE, ctx->flag2_buf, ++ ctx->flag2_buf_dma); ++ ++ pm_runtime_put(dev); ++ } ++ ++ deinterlace_queue_cleanup(vq, VB2_BUF_STATE_ERROR); ++} ++ ++static const struct vb2_ops deinterlace_qops = { ++ .queue_setup = deinterlace_queue_setup, ++ .buf_prepare = deinterlace_buf_prepare, ++ .buf_queue = deinterlace_buf_queue, ++ .start_streaming = deinterlace_start_streaming, ++ .stop_streaming = deinterlace_stop_streaming, ++ .wait_prepare = vb2_ops_wait_prepare, ++ .wait_finish = vb2_ops_wait_finish, ++}; ++ ++static int deinterlace_queue_init(void *priv, struct vb2_queue *src_vq, ++ struct vb2_queue *dst_vq) ++{ ++ struct deinterlace_ctx *ctx = priv; ++ int ret; ++ ++ src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; ++ src_vq->io_modes = VB2_MMAP | VB2_DMABUF; ++ src_vq->drv_priv = ctx; ++ src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); ++ src_vq->min_buffers_needed = 1; ++ src_vq->ops = &deinterlace_qops; ++ src_vq->mem_ops = &vb2_dma_contig_memops; ++ src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; ++ src_vq->lock = &ctx->dev->dev_mutex; ++ src_vq->dev = ctx->dev->dev; ++ ++ ret = vb2_queue_init(src_vq); ++ if (ret) ++ return ret; ++ ++ dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ++ dst_vq->io_modes = VB2_MMAP | VB2_DMABUF; ++ dst_vq->drv_priv = ctx; ++ dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); ++ dst_vq->min_buffers_needed = 2; ++ dst_vq->ops = &deinterlace_qops; ++ dst_vq->mem_ops = &vb2_dma_contig_memops; ++ dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; ++ dst_vq->lock = &ctx->dev->dev_mutex; ++ dst_vq->dev = ctx->dev->dev; ++ ++ ret = vb2_queue_init(dst_vq); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int deinterlace_open(struct file *file) ++{ ++ struct deinterlace_dev *dev = video_drvdata(file); ++ struct deinterlace_ctx *ctx = NULL; ++ int ret; ++ ++ if (mutex_lock_interruptible(&dev->dev_mutex)) ++ return -ERESTARTSYS; ++ ++ ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); ++ if (!ctx) { ++ mutex_unlock(&dev->dev_mutex); ++ return -ENOMEM; ++ } ++ ++ /* default output format */ ++ ctx->src_fmt.pixelformat = deinterlace_formats[0]; ++ ctx->src_fmt.field = V4L2_FIELD_INTERLACED; ++ ctx->src_fmt.width = 640; ++ ctx->src_fmt.height = 480; ++ deinterlace_prepare_format(&ctx->src_fmt); ++ ++ /* default capture format */ ++ ctx->dst_fmt.pixelformat = deinterlace_formats[0]; ++ ctx->dst_fmt.field = V4L2_FIELD_NONE; ++ ctx->dst_fmt.width = 640; ++ ctx->dst_fmt.height = 480; ++ deinterlace_prepare_format(&ctx->dst_fmt); ++ ++ v4l2_fh_init(&ctx->fh, video_devdata(file)); ++ file->private_data = &ctx->fh; ++ ctx->dev = dev; ++ ++ ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, ++ &deinterlace_queue_init); ++ if (IS_ERR(ctx->fh.m2m_ctx)) { ++ ret = PTR_ERR(ctx->fh.m2m_ctx); ++ goto err_free; ++ } ++ ++ v4l2_fh_add(&ctx->fh); ++ ++ mutex_unlock(&dev->dev_mutex); ++ ++ return 0; ++ ++err_free: ++ kfree(ctx); ++ mutex_unlock(&dev->dev_mutex); ++ ++ return ret; ++} ++ ++static int deinterlace_release(struct file *file) ++{ ++ struct deinterlace_dev *dev = video_drvdata(file); ++ struct deinterlace_ctx *ctx = container_of(file->private_data, ++ struct deinterlace_ctx, fh); ++ ++ mutex_lock(&dev->dev_mutex); ++ ++ v4l2_fh_del(&ctx->fh); ++ v4l2_fh_exit(&ctx->fh); ++ v4l2_m2m_ctx_release(ctx->fh.m2m_ctx); ++ ++ kfree(ctx); ++ ++ mutex_unlock(&dev->dev_mutex); ++ ++ return 0; ++} ++ ++static const struct v4l2_file_operations deinterlace_fops = { ++ .owner = THIS_MODULE, ++ .open = deinterlace_open, ++ .release = deinterlace_release, ++ .poll = v4l2_m2m_fop_poll, ++ .unlocked_ioctl = video_ioctl2, ++ .mmap = v4l2_m2m_fop_mmap, ++}; ++ ++static const struct video_device deinterlace_video_device = { ++ .name = DEINTERLACE_NAME, ++ .vfl_dir = VFL_DIR_M2M, ++ .fops = &deinterlace_fops, ++ .ioctl_ops = &deinterlace_ioctl_ops, ++ .minor = -1, ++ .release = video_device_release_empty, ++ .device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING, ++}; ++ ++static const struct v4l2_m2m_ops deinterlace_m2m_ops = { ++ .device_run = deinterlace_device_run, ++ .job_ready = deinterlace_job_ready, ++ .job_abort = deinterlace_job_abort, ++}; ++ ++static int deinterlace_probe(struct platform_device *pdev) ++{ ++ struct deinterlace_dev *dev; ++ struct video_device *vfd; ++ struct resource *res; ++ int irq, ret; ++ ++ dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); ++ if (!dev) ++ return -ENOMEM; ++ ++ dev->vfd = deinterlace_video_device; ++ dev->dev = &pdev->dev; ++ ++ irq = platform_get_irq(pdev, 0); ++ if (irq <= 0) ++ return irq; ++ ++ ret = devm_request_irq(dev->dev, irq, deinterlace_irq, ++ 0, dev_name(dev->dev), dev); ++ if (ret) { ++ dev_err(dev->dev, "Failed to request IRQ\n"); ++ ++ return ret; ++ } ++ ++ ret = of_dma_configure(dev->dev, dev->dev->of_node, true); ++ if (ret) ++ return ret; ++ ++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ dev->base = devm_ioremap_resource(&pdev->dev, res); ++ if (IS_ERR(dev->base)) ++ return PTR_ERR(dev->base); ++ ++ dev->bus_clk = devm_clk_get(dev->dev, "bus"); ++ if (IS_ERR(dev->bus_clk)) { ++ dev_err(dev->dev, "Failed to get bus clock\n"); ++ ++ return PTR_ERR(dev->bus_clk); ++ } ++ ++ dev->mod_clk = devm_clk_get(dev->dev, "mod"); ++ if (IS_ERR(dev->mod_clk)) { ++ dev_err(dev->dev, "Failed to get mod clock\n"); ++ ++ return PTR_ERR(dev->mod_clk); ++ } ++ ++ dev->ram_clk = devm_clk_get(dev->dev, "ram"); ++ if (IS_ERR(dev->ram_clk)) { ++ dev_err(dev->dev, "Failed to get ram clock\n"); ++ ++ return PTR_ERR(dev->ram_clk); ++ } ++ ++ dev->rstc = devm_reset_control_get(dev->dev, NULL); ++ if (IS_ERR(dev->rstc)) { ++ dev_err(dev->dev, "Failed to get reset control\n"); ++ ++ return PTR_ERR(dev->rstc); ++ } ++ ++ mutex_init(&dev->dev_mutex); ++ ++ ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev); ++ if (ret) { ++ dev_err(dev->dev, "Failed to register V4L2 device\n"); ++ ++ return ret; ++ } ++ ++ vfd = &dev->vfd; ++ vfd->lock = &dev->dev_mutex; ++ vfd->v4l2_dev = &dev->v4l2_dev; ++ ++ snprintf(vfd->name, sizeof(vfd->name), "%s", ++ deinterlace_video_device.name); ++ video_set_drvdata(vfd, dev); ++ ++ ret = video_register_device(vfd, VFL_TYPE_VIDEO, 0); ++ if (ret) { ++ v4l2_err(&dev->v4l2_dev, "Failed to register video device\n"); ++ ++ goto err_v4l2; ++ } ++ ++ v4l2_info(&dev->v4l2_dev, ++ "Device registered as /dev/video%d\n", vfd->num); ++ ++ dev->m2m_dev = v4l2_m2m_init(&deinterlace_m2m_ops); ++ if (IS_ERR(dev->m2m_dev)) { ++ v4l2_err(&dev->v4l2_dev, ++ "Failed to initialize V4L2 M2M device\n"); ++ ret = PTR_ERR(dev->m2m_dev); ++ ++ goto err_video; ++ } ++ ++ platform_set_drvdata(pdev, dev); ++ ++ pm_runtime_enable(dev->dev); ++ ++ return 0; ++ ++err_video: ++ video_unregister_device(&dev->vfd); ++err_v4l2: ++ v4l2_device_unregister(&dev->v4l2_dev); ++ ++ return ret; ++} ++ ++static int deinterlace_remove(struct platform_device *pdev) ++{ ++ struct deinterlace_dev *dev = platform_get_drvdata(pdev); ++ ++ v4l2_m2m_release(dev->m2m_dev); ++ video_unregister_device(&dev->vfd); ++ v4l2_device_unregister(&dev->v4l2_dev); ++ ++ pm_runtime_force_suspend(&pdev->dev); ++ ++ return 0; ++} ++ ++static int deinterlace_runtime_resume(struct device *device) ++{ ++ struct deinterlace_dev *dev = dev_get_drvdata(device); ++ int ret; ++ ++ ret = clk_prepare_enable(dev->bus_clk); ++ if (ret) { ++ dev_err(dev->dev, "Failed to enable bus clock\n"); ++ ++ return ret; ++ } ++ ++ ret = clk_prepare_enable(dev->mod_clk); ++ if (ret) { ++ dev_err(dev->dev, "Failed to enable mod clock\n"); ++ ++ goto err_bus_clk; ++ } ++ ++ ret = clk_prepare_enable(dev->ram_clk); ++ if (ret) { ++ dev_err(dev->dev, "Failed to enable ram clock\n"); ++ ++ goto err_mod_clk; ++ } ++ ++ ret = reset_control_deassert(dev->rstc); ++ if (ret) { ++ dev_err(dev->dev, "Failed to apply reset\n"); ++ ++ goto err_ram_clk; ++ } ++ ++ deinterlace_init(dev); ++ ++ return 0; ++ ++err_ram_clk: ++ clk_disable_unprepare(dev->ram_clk); ++err_mod_clk: ++ clk_disable_unprepare(dev->mod_clk); ++err_bus_clk: ++ clk_disable_unprepare(dev->bus_clk); ++ ++ return ret; ++} ++ ++static int deinterlace_runtime_suspend(struct device *device) ++{ ++ struct deinterlace_dev *dev = dev_get_drvdata(device); ++ ++ reset_control_assert(dev->rstc); ++ ++ clk_disable_unprepare(dev->ram_clk); ++ clk_disable_unprepare(dev->mod_clk); ++ clk_disable_unprepare(dev->bus_clk); ++ ++ return 0; ++} ++ ++static const struct of_device_id deinterlace_dt_match[] = { ++ { .compatible = "allwinner,sun50i-h6-deinterlace" }, ++ { /* sentinel */ } ++}; ++MODULE_DEVICE_TABLE(of, deinterlace_dt_match); ++ ++static const struct dev_pm_ops deinterlace_pm_ops = { ++ .runtime_resume = deinterlace_runtime_resume, ++ .runtime_suspend = deinterlace_runtime_suspend, ++}; ++ ++static struct platform_driver deinterlace_driver = { ++ .probe = deinterlace_probe, ++ .remove = deinterlace_remove, ++ .driver = { ++ .name = DEINTERLACE_NAME, ++ .of_match_table = deinterlace_dt_match, ++ .pm = &deinterlace_pm_ops, ++ }, ++}; ++module_platform_driver(deinterlace_driver); ++ ++MODULE_LICENSE("GPL v2"); ++MODULE_AUTHOR("Jernej Skrabec <jernej.skrabec@siol.net>"); ++MODULE_DESCRIPTION("Allwinner Deinterlace driver"); +--- /dev/null ++++ b/drivers/media/platform/sunxi/sun50i-di/sun50i-di.h +@@ -0,0 +1,172 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ ++/* ++ * Allwinner Deinterlace driver ++ * ++ * Copyright (C) 2020 Jernej Skrabec <jernej.skrabec@siol.net> ++ */ ++ ++#ifndef _SUN8I_DEINTERLACE_H_ ++#define _SUN8I_DEINTERLACE_H_ ++ ++#include <media/v4l2-device.h> ++#include <media/v4l2-mem2mem.h> ++#include <media/videobuf2-v4l2.h> ++#include <media/videobuf2-dma-contig.h> ++ ++#include <linux/platform_device.h> ++ ++#define DEINTERLACE_NAME "sun50i-di" ++ ++#define DEINTERLACE_CTRL 0x00 ++#define DEINTERLACE_CTRL_START BIT(0) ++#define DEINTERLACE_CTRL_IOMMU_EN BIT(16) ++#define DEINTERLACE_CTRL_RESET BIT(31) ++ ++#define DEINTERLACE_INT_CTRL 0x04 ++#define DEINTERLACE_INT_EN BIT(0) ++ ++#define DEINTERLACE_STATUS 0x08 ++#define DEINTERLACE_STATUS_FINISHED BIT(0) ++#define DEINTERLACE_STATUS_BUSY BIT(8) ++ ++#define DEINTERLACE_SIZE 0x10 ++#define DEINTERLACE_SIZE_WIDTH(w) \ ++ (((w) - 1) & 0x7ff) ++#define DEINTERLACE_SIZE_HEIGHT(h) \ ++ ((((h) - 1) & 0x7ff) << 16) ++ ++#define DEINTERLACE_FORMAT 0x14 ++#define DEINTERLACE_FORMAT_YUV420P 0 ++#define DEINTERLACE_FORMAT_YUV420SP 1 ++#define DEINTERLACE_FORMAT_YUV422P 2 ++#define DEINTERLACE_FORMAT_YUV422SP 3 ++ ++#define DEINTERLACE_POLAR 0x18 ++#define DEINTERLACE_POLAR_FIELD(x) ((x) & 1) ++ ++/* all pitch registers accept 16-bit values */ ++#define DEINTERLACE_IN_PITCH0 0x20 ++#define DEINTERLACE_IN_PITCH1 0x24 ++#define DEINTERLACE_IN_PITCH2 0x28 ++#define DEINTERLACE_OUT_PITCH0 0x30 ++#define DEINTERLACE_OUT_PITCH1 0x34 ++#define DEINTERLACE_OUT_PITCH2 0x38 ++#define DEINTERLACE_FLAG_PITCH 0x40 ++#define DEINTERLACE_IN0_ADDR0 0x50 ++#define DEINTERLACE_IN0_ADDR1 0x54 ++#define DEINTERLACE_IN0_ADDR2 0x58 ++#define DEINTERLACE_IN0_ADDRH 0x5c ++#define DEINTERLACE_IN1_ADDR0 0x60 ++#define DEINTERLACE_IN1_ADDR1 0x64 ++#define DEINTERLACE_IN1_ADDR2 0x68 ++#define DEINTERLACE_IN1_ADDRH 0x6c ++#define DEINTERLACE_IN2_ADDR0 0x70 ++#define DEINTERLACE_IN2_ADDR1 0x74 ++#define DEINTERLACE_IN2_ADDR2 0x78 ++#define DEINTERLACE_IN2_ADDRH 0x7c ++#define DEINTERLACE_IN3_ADDR0 0x80 ++#define DEINTERLACE_IN3_ADDR1 0x84 ++#define DEINTERLACE_IN3_ADDR2 0x88 ++#define DEINTERLACE_IN3_ADDRH 0x8c ++#define DEINTERLACE_OUT_ADDR0 0x90 ++#define DEINTERLACE_OUT_ADDR1 0x94 ++#define DEINTERLACE_OUT_ADDR2 0x98 ++#define DEINTERLACE_OUT_ADDRH 0x9c ++#define DEINTERLACE_IN_FLAG_ADDR 0xa0 ++#define DEINTERLACE_OUT_FLAG_ADDR 0xa4 ++#define DEINTERLACE_FLAG_ADDRH 0xa8 ++ ++#define DEINTERLACE_ADDRH0(x) ((x) & 0xff) ++#define DEINTERLACE_ADDRH1(x) (((x) & 0xff) << 8) ++#define DEINTERLACE_ADDRH2(x) (((x) & 0xff) << 16) ++ ++#define DEINTERLACE_MODE 0xb0 ++#define DEINTERLACE_MODE_DEINT_LUMA BIT(0) ++#define DEINTERLACE_MODE_MOTION_EN BIT(4) ++#define DEINTERLACE_MODE_INTP_EN BIT(5) ++#define DEINTERLACE_MODE_AUTO_UPD_MODE(x) (((x) & 3) << 12) ++#define DEINTERLACE_MODE_DEINT_CHROMA BIT(16) ++#define DEINTERLACE_MODE_FIELD_MODE BIT(31) ++ ++#define DEINTERLACE_MD_PARAM0 0xb4 ++#define DEINTERLACE_MD_PARAM0_MIN_LUMA_TH(x) ((x) & 0xff) ++#define DEINTERLACE_MD_PARAM0_MAX_LUMA_TH(x) (((x) & 0xff) << 8) ++#define DEINTERLACE_MD_PARAM0_AVG_LUMA_SHIFT(x) (((x) & 0xf) << 16) ++#define DEINTERLACE_MD_PARAM0_TH_SHIFT(x) (((x) & 0xf) << 24) ++ ++#define DEINTERLACE_MD_PARAM1 0xb8 ++#define DEINTERLACE_MD_PARAM1_MOV_FAC_NONEDGE(x) (((x) & 0x3) << 28) ++ ++#define DEINTERLACE_MD_PARAM2 0xbc ++#define DEINTERLACE_MD_PARAM2_CHROMA_SPATIAL_TH(x) (((x) & 0xff) << 8) ++#define DEINTERLACE_MD_PARAM2_CHROMA_DIFF_TH(x) (((x) & 0xff) << 16) ++#define DEINTERLACE_MD_PARAM2_PIX_STATIC_TH(x) (((x) & 0x3) << 28) ++ ++#define DEINTERLACE_INTP_PARAM0 0xc0 ++#define DEINTERLACE_INTP_PARAM0_ANGLE_LIMIT(x) ((x) & 0x1f) ++#define DEINTERLACE_INTP_PARAM0_ANGLE_CONST_TH(x) (((x) & 7) << 8) ++#define DEINTERLACE_INTP_PARAM0_LUMA_CUR_FAC_MODE(x) (((x) & 7) << 16) ++#define DEINTERLACE_INTP_PARAM0_LUMA_CUR_FAC_MODE_MSK (7 << 16) ++#define DEINTERLACE_INTP_PARAM0_CHROMA_CUR_FAC_MODE(x) (((x) & 7) << 20) ++#define DEINTERLACE_INTP_PARAM0_CHROMA_CUR_FAC_MODE_MSK (7 << 20) ++ ++#define DEINTERLACE_MD_CH_PARAM 0xc4 ++#define DEINTERLACE_MD_CH_PARAM_BLEND_MODE(x) ((x) & 0xf) ++#define DEINTERLACE_MD_CH_PARAM_FONT_PRO_EN BIT(8) ++#define DEINTERLACE_MD_CH_PARAM_FONT_PRO_TH(x) (((x) & 0xff) << 16) ++#define DEINTERLACE_MD_CH_PARAM_FONT_PRO_FAC(x) (((x) & 0x1f) << 24) ++ ++#define DEINTERLACE_INTP_PARAM1 0xc8 ++#define DEINTERLACE_INTP_PARAM1_A(x) ((x) & 7) ++#define DEINTERLACE_INTP_PARAM1_EN BIT(3) ++#define DEINTERLACE_INTP_PARAM1_C(x) (((x) & 0xf) << 4) ++#define DEINTERLACE_INTP_PARAM1_CMAX(x) (((x) & 0xff) << 8) ++#define DEINTERLACE_INTP_PARAM1_MAXRAT(x) (((x) & 3) << 16) ++ ++#define DEINTERLACE_OUT_PATH 0x200 ++ ++#define DEINTERLACE_MIN_WIDTH 2U ++#define DEINTERLACE_MIN_HEIGHT 2U ++#define DEINTERLACE_MAX_WIDTH 2048U ++#define DEINTERLACE_MAX_HEIGHT 1100U ++ ++struct deinterlace_ctx { ++ struct v4l2_fh fh; ++ struct deinterlace_dev *dev; ++ ++ struct v4l2_pix_format src_fmt; ++ struct v4l2_pix_format dst_fmt; ++ ++ void *flag1_buf; ++ dma_addr_t flag1_buf_dma; ++ ++ void *flag2_buf; ++ dma_addr_t flag2_buf_dma; ++ ++ struct vb2_v4l2_buffer *prev[2]; ++ ++ unsigned int first_field; ++ unsigned int field; ++ ++ int aborting; ++}; ++ ++struct deinterlace_dev { ++ struct v4l2_device v4l2_dev; ++ struct video_device vfd; ++ struct device *dev; ++ struct v4l2_m2m_dev *m2m_dev; ++ ++ /* Device file mutex */ ++ struct mutex dev_mutex; ++ ++ void __iomem *base; ++ ++ struct clk *bus_clk; ++ struct clk *mod_clk; ++ struct clk *ram_clk; ++ ++ struct reset_control *rstc; ++}; ++ ++#endif diff --git a/0041-arm64-dts-h6-deinterlace.patch b/0041-arm64-dts-h6-deinterlace.patch new file mode 100644 index 000000000000..265437c41923 --- /dev/null +++ b/0041-arm64-dts-h6-deinterlace.patch @@ -0,0 +1,32 @@ +From c009b3b707bbde30fa6ff49ca3075160524ea7b9 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec <jernej.skrabec@siol.net> +Date: Tue, 26 May 2020 20:08:27 +0200 +Subject: [PATCH 41/44] arm64: dts: h6 deinterlace + +Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -153,6 +153,17 @@ + }; + }; + ++ deinterlace: deinterlace@1420000 { ++ compatible = "allwinner,sun50i-h6-deinterlace"; ++ reg = <0x01420000 0x2000>; ++ clocks = <&ccu CLK_BUS_DEINTERLACE>, ++ <&ccu CLK_DEINTERLACE>, ++ <&ccu CLK_MBUS_DEINTERLACE>; ++ clock-names = "bus", "mod", "ram"; ++ resets = <&ccu RST_BUS_DEINTERLACE>; ++ interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; ++ }; ++ + video-codec@1c0e000 { + compatible = "allwinner,sun50i-h6-video-engine"; + reg = <0x01c0e000 0x2000>; + + @@ -9,7 +9,7 @@ pkgbase=linux-tqc-a01 _srcname=linux-5.13 _kernelname=${pkgbase#linux} _desc="AArch64 kernel for TQC A01" -pkgver=5.13.9 +pkgver=5.13.10 pkgrel=1 arch=('aarch64') url="http://www.kernel.org/" @@ -30,6 +30,9 @@ source=("http://cdn.kernel.org/pub/linux/kernel/v5.x/${_srcname}.tar.xz" '0006-drm-sun4i-Add-GEM-allocator.patch' '0010-general-h6-add-dma-i2c-ir-spi-uart.patch' '0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch' + '0012-arm64-h6-gpu-devfreq-enable.patch' + '0040-wip-H6-deinterlace.patch' + '0041-arm64-dts-h6-deinterlace.patch' 'config' 'linux.preset' '60-linux.hook' @@ -51,12 +54,15 @@ md5sums=('76c60fb304510a7bbd9c838790bc5fe4' '335382823f6dc2aae2f6038b7aee339e' 'cb38b30491472097c3b9b475de39127f' 'bc65c0b9e4d6fb2fe3a81b8358886885' - '6637a33cfc563c8f1ccff00cfd5b39c5' - 'a5564b07e7a88dc6211d647c7949904d' + '74baf0cb243b3abd5e38f0131c95408f' + '05c4d9cbe622d5ff15e6b84b1c5c1a70' + 'd1543c205b4faf9be4552d4308228217' + 'e4ef0ae46cdfb23abb11d729452f68b2' + '75b51f71570f7ee1a7a18cfa05b67edd' '66e0ae63183426b28c0ec0c7e10b5e16' 'ce6c81ad1ad1f8b333fd6077d47abdaf' '3dc88030a8f2f5a5f97266d99b149f77' - '39a5d2b3ff92c000dc93f9fa2efb2c45') + '4d745d474d07277daee24107239c8902') prepare() { cd ${_srcname} @@ -83,6 +89,9 @@ prepare() { patch -p1 < ../0006-drm-sun4i-Add-GEM-allocator.patch patch -p1 < ../0010-general-h6-add-dma-i2c-ir-spi-uart.patch patch -p1 < ../0011-dts-h6-tqc-a01-cpu-opp-2ghz.patch + patch -p1 < ../0012-arm64-h6-gpu-devfreq-enable.patch + patch -p1 < ../0040-wip-H6-deinterlace.patch + patch -p1 < ../0041-arm64-dts-h6-deinterlace.patch cat "${srcdir}/config" > ./.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 5.13.9-1 Kernel Configuration +# Linux/arm64 5.13.10-1 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 10.2.0" CONFIG_CC_IS_GCC=y @@ -299,8 +299,8 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ARCH_SUNXI=y # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_APPLE is not set -CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_BCM4908=y +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM4908 is not set # CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_BITMAIN is not set @@ -310,28 +310,28 @@ CONFIG_ARCH_BCM4908=y # CONFIG_ARCH_K3 is not set CONFIG_ARCH_LAYERSCAPE=y # CONFIG_ARCH_LG1K is not set -CONFIG_ARCH_HISI=y +# CONFIG_ARCH_HISI is not set # CONFIG_ARCH_KEEMBAY is not set -CONFIG_ARCH_MEDIATEK=y -CONFIG_ARCH_MESON=y -CONFIG_ARCH_MVEBU=y -CONFIG_ARCH_MXC=y -CONFIG_ARCH_QCOM=y +# CONFIG_ARCH_MEDIATEK is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_REALTEK is not set # CONFIG_ARCH_RENESAS is not set -CONFIG_ARCH_ROCKCHIP=y +# CONFIG_ARCH_ROCKCHIP is not set # CONFIG_ARCH_S32 is not set -CONFIG_ARCH_SEATTLE=y +# CONFIG_ARCH_SEATTLE is not set # CONFIG_ARCH_INTEL_SOCFPGA is not set # CONFIG_ARCH_SYNQUACER is not set -CONFIG_ARCH_TEGRA=y +# CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_SPRD is not set # CONFIG_ARCH_THUNDER is not set # CONFIG_ARCH_THUNDER2 is not set # CONFIG_ARCH_UNIPHIER is not set CONFIG_ARCH_VEXPRESS=y # CONFIG_ARCH_VISCONTI is not set -CONFIG_ARCH_XGENE=y +# CONFIG_ARCH_XGENE is not set # CONFIG_ARCH_ZYNQMP is not set # end of Platform selection @@ -584,19 +584,8 @@ CONFIG_CPUFREQ_DT=y CONFIG_CPUFREQ_DT_PLATDEV=y CONFIG_ACPI_CPPC_CPUFREQ=y CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=y -CONFIG_ARM_ARMADA_37XX_CPUFREQ=y -CONFIG_ARM_ARMADA_8K_CPUFREQ=y CONFIG_ARM_SCPI_CPUFREQ=y -CONFIG_ARM_IMX_CPUFREQ_DT=y -# CONFIG_ARM_MEDIATEK_CPUFREQ is not set -CONFIG_ARM_QCOM_CPUFREQ_NVMEM=y -CONFIG_ARM_QCOM_CPUFREQ_HW=y -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y CONFIG_ARM_SCMI_CPUFREQ=y -CONFIG_ARM_TEGRA20_CPUFREQ=y -CONFIG_ARM_TEGRA124_CPUFREQ=y -CONFIG_ARM_TEGRA186_CPUFREQ=y -CONFIG_ARM_TEGRA194_CPUFREQ=y CONFIG_QORIQ_CPUFREQ=m # end of CPU Frequency scaling # end of CPU Power Management @@ -613,11 +602,7 @@ CONFIG_ARM_SCPI_POWER_DOMAIN=y CONFIG_DMIID=y CONFIG_DMI_SYSFS=y # CONFIG_ISCSI_IBFT is not set -CONFIG_RASPBERRYPI_FIRMWARE=y # CONFIG_FW_CFG_SYSFS is not set -CONFIG_QCOM_SCM=y -# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set -# CONFIG_TURRIS_MOX_RWTM is not set # CONFIG_GOOGLE_FIRMWARE is not set # @@ -640,10 +625,6 @@ CONFIG_EFI_BOOTLOADER_CONTROL=y CONFIG_EFI_EARLYCON=y CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y -# CONFIG_IMX_DSP is not set -CONFIG_IMX_SCU=y -CONFIG_IMX_SCU_PD=y -CONFIG_MESON_SM=y CONFIG_ARM_PSCI_FW=y # CONFIG_ARM_PSCI_CHECKER is not set CONFIG_HAVE_ARM_SMCCC=y @@ -653,8 +634,6 @@ CONFIG_ARM_SMCCC_SOC_ID=y # # Tegra firmware driver # -CONFIG_TEGRA_IVC=y -CONFIG_TEGRA_BPMP=y # end of Tegra firmware driver # end of Firmware Drivers @@ -1925,7 +1904,6 @@ CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m # CONFIG_BT_MTKSDIO is not set # CONFIG_BT_MTKUART is not set -CONFIG_BT_QCOMSMD=m CONFIG_BT_HCIRSI=m # CONFIG_BT_VIRTIO is not set # end of Bluetooth device drivers @@ -2032,7 +2010,6 @@ CONFIG_ETHTOOL_NETLINK=y # Device Drivers # CONFIG_ARM_AMBA=y -CONFIG_TEGRA_AHB=y CONFIG_HAVE_PCI=y CONFIG_PCI=y CONFIG_PCI_DOMAINS=y @@ -2060,7 +2037,6 @@ CONFIG_PCI_STUB=y # CONFIG_PCI_PF_STUB is not set CONFIG_PCI_ATS=y CONFIG_PCI_ECAM=y -CONFIG_PCI_BRIDGE_EMUL=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y @@ -2079,9 +2055,7 @@ CONFIG_HOTPLUG_PCI_ACPI=y # # PCI controller drivers # -CONFIG_PCI_AARDVARK=y # CONFIG_PCI_FTPCI100 is not set -CONFIG_PCI_TEGRA=y CONFIG_PCI_HOST_COMMON=y CONFIG_PCI_HOST_GENERIC=y # CONFIG_PCIE_XILINX is not set @@ -2090,11 +2064,6 @@ CONFIG_PCI_XGENE_MSI=y # CONFIG_PCIE_ALTERA is not set # CONFIG_PCI_HOST_THUNDER_PEM is not set # CONFIG_PCI_HOST_THUNDER_ECAM is not set -CONFIG_PCIE_ROCKCHIP=y -CONFIG_PCIE_ROCKCHIP_HOST=y -# CONFIG_PCIE_MEDIATEK is not set -# CONFIG_PCIE_MEDIATEK_GEN3 is not set -CONFIG_PCIE_BRCMSTB=m # CONFIG_PCIE_MICROCHIP_HOST is not set # @@ -2104,15 +2073,10 @@ CONFIG_PCIE_DW=y CONFIG_PCIE_DW_HOST=y CONFIG_PCIE_DW_PLAT=y CONFIG_PCIE_DW_PLAT_HOST=y -# CONFIG_PCI_IMX6 is not set CONFIG_PCI_LAYERSCAPE=y CONFIG_PCI_HISI=y -CONFIG_PCIE_QCOM=y -CONFIG_PCIE_ARMADA_8K=y # CONFIG_PCIE_KIRIN is not set -CONFIG_PCIE_HISI_STB=y CONFIG_PCI_MESON=y -# CONFIG_PCIE_TEGRA194_HOST is not set # CONFIG_PCIE_AL is not set # end of DesignWare PCI Core Support @@ -2196,14 +2160,9 @@ CONFIG_ARM_CCI=y CONFIG_ARM_CCI400_COMMON=y # CONFIG_BRCMSTB_GISB_ARB is not set # CONFIG_MOXTET is not set -# CONFIG_HISILICON_LPC is not set -# CONFIG_IMX_WEIM is not set -CONFIG_QCOM_EBI2=y CONFIG_SIMPLE_PM_BUS=y CONFIG_SUN50I_DE2_BUS=y CONFIG_SUNXI_RSB=y -CONFIG_TEGRA_ACONNECT=m -# CONFIG_TEGRA_GMI is not set CONFIG_VEXPRESS_CONFIG=y CONFIG_FSL_MC_BUS=y # CONFIG_FSL_MC_UAPI_SUPPORT is not set @@ -2226,11 +2185,8 @@ CONFIG_MTD=y # CONFIG_MTD_AR7_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set CONFIG_MTD_OF_PARTS=m -CONFIG_MTD_OF_PARTS_BCM4908=y -# CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set # CONFIG_MTD_AFS_PARTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_QCOMSMEM_PARTS is not set # end of Partition parsers # @@ -2314,23 +2270,15 @@ CONFIG_MTD_RAW_NAND=y # CONFIG_MTD_NAND_DENALI_PCI is not set # CONFIG_MTD_NAND_DENALI_DT is not set # CONFIG_MTD_NAND_CAFE is not set -CONFIG_MTD_NAND_MARVELL=y # CONFIG_MTD_NAND_BRCMNAND is not set # CONFIG_MTD_NAND_FSL_IFC is not set -# CONFIG_MTD_NAND_MXC is not set # CONFIG_MTD_NAND_SUNXI is not set -# CONFIG_MTD_NAND_HISI504 is not set -CONFIG_MTD_NAND_QCOM=y -# CONFIG_MTD_NAND_MTK is not set # CONFIG_MTD_NAND_MXIC is not set -# CONFIG_MTD_NAND_TEGRA is not set -# CONFIG_MTD_NAND_MESON is not set # CONFIG_MTD_NAND_GPIO is not set # CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_NAND_CADENCE is not set # CONFIG_MTD_NAND_ARASAN is not set # CONFIG_MTD_NAND_INTEL_LGM is not set -# CONFIG_MTD_NAND_ROCKCHIP is not set # # Misc @@ -2361,7 +2309,6 @@ CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y # CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y # CONFIG_MTD_SPI_NOR_SWP_KEEP is not set -CONFIG_SPI_HISI_SFC=m CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 @@ -2446,8 +2393,6 @@ CONFIG_TIFM_7XX1=m # CONFIG_ICS932S401 is not set CONFIG_ENCLOSURE_SERVICES=m # CONFIG_HP_ILO is not set -# CONFIG_QCOM_COINCELL is not set -# CONFIG_QCOM_FASTRPC is not set CONFIG_APDS9802ALS=m CONFIG_ISL29003=m CONFIG_ISL29020=m @@ -2577,9 +2522,6 @@ CONFIG_SCSI_UFSHCD_PCI=m CONFIG_SCSI_UFSHCD_PLATFORM=y # CONFIG_SCSI_UFS_CDNS_PLATFORM is not set # CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set -CONFIG_SCSI_UFS_QCOM=m -# CONFIG_SCSI_UFS_MEDIATEK is not set -CONFIG_SCSI_UFS_HISI=y # CONFIG_SCSI_UFS_BSG is not set CONFIG_SCSI_HPTIOP=m # CONFIG_SCSI_MYRB is not set @@ -2641,15 +2583,10 @@ CONFIG_SATA_PMP=y CONFIG_SATA_AHCI=y CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=y -# CONFIG_AHCI_IMX is not set # CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_MTK is not set -CONFIG_AHCI_MVEBU=y CONFIG_AHCI_SUNXI=y -# CONFIG_AHCI_TEGRA is not set CONFIG_AHCI_XGENE=y # CONFIG_AHCI_QORIQ is not set -CONFIG_SATA_AHCI_SEATTLE=y CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=y @@ -2694,7 +2631,6 @@ CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set -# CONFIG_PATA_IMX is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m @@ -2899,12 +2835,9 @@ CONFIG_AMD8111_ETH=m CONFIG_PCNET32=m CONFIG_AMD_XGBE=m # CONFIG_AMD_XGBE_DCB is not set -CONFIG_NET_XGENE=y -# CONFIG_NET_XGENE_V2 is not set CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_AQTION=m CONFIG_NET_VENDOR_ARC=y -# CONFIG_EMAC_ROCKCHIP is not set CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m @@ -2916,7 +2849,6 @@ CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y -CONFIG_BCM4908_ENET=y CONFIG_BCMGENET=m CONFIG_BNX2=m CONFIG_CNIC=m @@ -2945,7 +2877,6 @@ CONFIG_SUNDANCE=m # CONFIG_NET_VENDOR_EMULEX is not set # CONFIG_NET_VENDOR_EZCHIP is not set CONFIG_NET_VENDOR_FREESCALE=y -CONFIG_FEC=y CONFIG_FSL_FMAN=m CONFIG_DPAA_ERRATUM_A050385=y # CONFIG_FSL_PQ_MDIO is not set @@ -2998,9 +2929,6 @@ CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m -CONFIG_MVNETA=m -CONFIG_MVPP2=m -# CONFIG_MVPP2_PTP is not set CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -3009,9 +2937,6 @@ CONFIG_SKY2=m # CONFIG_OCTEONTX2_AF is not set # CONFIG_OCTEONTX2_PF is not set # CONFIG_PRESTERA is not set -CONFIG_NET_VENDOR_MEDIATEK=y -# CONFIG_NET_MEDIATEK_SOC is not set -# CONFIG_NET_MEDIATEK_STAR_EMAC is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_EN_DCB=y @@ -3106,14 +3031,8 @@ CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m CONFIG_DWMAC_DWC_QOS_ETH=m CONFIG_DWMAC_GENERIC=m -CONFIG_DWMAC_IPQ806X=m -# CONFIG_DWMAC_MEDIATEK is not set -CONFIG_DWMAC_MESON=m -CONFIG_DWMAC_QCOM_ETHQOS=m -CONFIG_DWMAC_ROCKCHIP=m CONFIG_DWMAC_SUNXI=m CONFIG_DWMAC_SUN8I=m -CONFIG_DWMAC_IMX8=m # CONFIG_DWMAC_INTEL_PLAT is not set # CONFIG_STMMAC_PCI is not set # CONFIG_NET_VENDOR_SUN is not set @@ -3135,7 +3054,6 @@ CONFIG_NET_VENDOR_XILINX=y # CONFIG_XILINX_LL_TEMAC is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_QCOM_IPA=m CONFIG_NET_SB1000=y CONFIG_PHYLINK=m CONFIG_PHYLIB=y @@ -3149,7 +3067,6 @@ CONFIG_SFP=m # CONFIG_AC200_PHY=y CONFIG_AMD_PHY=m -CONFIG_MESON_GXL_PHY=m # CONFIG_ADIN_PHY is not set # CONFIG_AQUANTIA_PHY is not set # CONFIG_AX88796B_PHY is not set @@ -3197,7 +3114,6 @@ CONFIG_MDIO_BUS=y CONFIG_OF_MDIO=y CONFIG_MDIO_DEVRES=y # CONFIG_MDIO_SUN4I is not set -CONFIG_MDIO_XGENE=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_BCM_UNIMAC=y # CONFIG_MDIO_GPIO is not set @@ -3214,7 +3130,6 @@ CONFIG_MDIO_I2C=m # MDIO Multiplexers # CONFIG_MDIO_BUS_MUX=m -CONFIG_MDIO_BUS_MUX_MESON_G12A=m CONFIG_MDIO_BUS_MUX_GPIO=m # CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set CONFIG_MDIO_BUS_MUX_MMIOREG=m @@ -3335,7 +3250,6 @@ CONFIG_ATH10K_PCI=m # CONFIG_ATH10K_AHB is not set # CONFIG_ATH10K_SDIO is not set # CONFIG_ATH10K_USB is not set -CONFIG_ATH10K_SNOC=m # CONFIG_ATH10K_DEBUG is not set CONFIG_ATH10K_DEBUGFS=y # CONFIG_ATH10K_SPECTRAL is not set @@ -3476,7 +3390,6 @@ CONFIG_MT76x2U=m CONFIG_MT7603E=m CONFIG_MT7615_COMMON=m CONFIG_MT7615E=m -CONFIG_MT7622_WMAC=y # CONFIG_MT7663U is not set # CONFIG_MT7663S is not set # CONFIG_MT7915E is not set @@ -3636,11 +3549,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=m # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set -CONFIG_KEYBOARD_SNVS_PWRKEY=m -# CONFIG_KEYBOARD_IMX is not set -CONFIG_KEYBOARD_IMX_SC_KEY=m # CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_TEGRA is not set # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set @@ -3762,7 +3671,6 @@ CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_EDT_FT5X06=m -CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m CONFIG_TOUCHSCREEN_TOUCHRIGHT=m CONFIG_TOUCHSCREEN_TOUCHWIN=m CONFIG_TOUCHSCREEN_PIXCIR=m @@ -3814,8 +3722,6 @@ CONFIG_INPUT_MISC=y # CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_BMA150 is not set CONFIG_INPUT_E3X0_BUTTON=m -CONFIG_INPUT_PM8941_PWRKEY=y -CONFIG_INPUT_PM8XXX_VIBRATOR=m CONFIG_INPUT_MMA8450=m # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_DECODER is not set @@ -3845,7 +3751,6 @@ CONFIG_INPUT_CMA3000_I2C=m # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set -CONFIG_INPUT_HISI_POWERKEY=y CONFIG_RMI4_CORE=m # CONFIG_RMI4_I2C is not set # CONFIG_RMI4_SPI is not set @@ -3917,12 +3822,9 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DWLIB=y -CONFIG_SERIAL_8250_BCM2835AUX=y CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set -# CONFIG_SERIAL_8250_MT6577 is not set -CONFIG_SERIAL_8250_TEGRA=y CONFIG_SERIAL_OF_PLATFORM=y # @@ -3933,23 +3835,13 @@ CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y # CONFIG_SERIAL_KGDB_NMI is not set -CONFIG_SERIAL_MESON=y -CONFIG_SERIAL_MESON_CONSOLE=y -CONFIG_SERIAL_TEGRA=y -# CONFIG_SERIAL_TEGRA_TCU is not set # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set -CONFIG_SERIAL_IMX=y -CONFIG_SERIAL_IMX_CONSOLE=y -# CONFIG_SERIAL_IMX_EARLYCON is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_CONSOLE_POLL=y CONFIG_SERIAL_JSM=m -CONFIG_SERIAL_MSM=y -CONFIG_SERIAL_MSM_CONSOLE=y -# CONFIG_SERIAL_QCOM_GENI is not set # CONFIG_SERIAL_SIFIVE is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set @@ -3966,8 +3858,6 @@ CONFIG_SERIAL_FSL_LINFLEXUART=y CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set # CONFIG_SERIAL_SPRD is not set -CONFIG_SERIAL_MVEBU_UART=y -CONFIG_SERIAL_MVEBU_CONSOLE=y # end of Serial drivers CONFIG_SERIAL_MCTRL_GPIO=y @@ -3998,15 +3888,8 @@ CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m # CONFIG_HW_RANDOM_BA431 is not set -CONFIG_HW_RANDOM_BCM2835=y -CONFIG_HW_RANDOM_IPROC_RNG200=y -CONFIG_HW_RANDOM_OMAP=y CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM_HISI=y -CONFIG_HW_RANDOM_XGENE=m -CONFIG_HW_RANDOM_MESON=y CONFIG_HW_RANDOM_CAVIUM=y -CONFIG_HW_RANDOM_MTK=y # CONFIG_HW_RANDOM_CCTRNG is not set # CONFIG_HW_RANDOM_XIPHERA is not set # CONFIG_APPLICOM is not set @@ -4077,7 +3960,6 @@ CONFIG_I2C_ALGOPCA=m # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_AMD_MP2 is not set -# CONFIG_I2C_HIX5HD2 is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_ISCH is not set # CONFIG_I2C_PIIX4 is not set @@ -4097,8 +3979,6 @@ CONFIG_I2C_SCMI=y # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_BCM2835=m -CONFIG_I2C_BRCMSTB=m # CONFIG_I2C_CADENCE is not set # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=y @@ -4110,22 +3990,12 @@ CONFIG_I2C_GPIO=m # CONFIG_I2C_GPIO_FAULT_INJECTOR is not set # CONFIG_I2C_HISI is not set CONFIG_I2C_IMX=y -CONFIG_I2C_IMX_LPI2C=y -CONFIG_I2C_MESON=y -CONFIG_I2C_MT65XX=y CONFIG_I2C_MV64XXX=y # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_PXA=y -# CONFIG_I2C_PXA_SLAVE is not set -CONFIG_I2C_QCOM_CCI=m -CONFIG_I2C_QCOM_GENI=m -CONFIG_I2C_QUP=y CONFIG_I2C_RK3X=y CONFIG_I2C_SIMTEC=m -CONFIG_I2C_TEGRA=m -CONFIG_I2C_TEGRA_BPMP=m CONFIG_I2C_VERSATILE=m # CONFIG_I2C_THUNDERX is not set # CONFIG_I2C_XILINX is not set @@ -4144,7 +4014,6 @@ CONFIG_I2C_VIPERBOARD=m # Other I2C/SMBus bus drivers # CONFIG_I2C_CROS_EC_TUNNEL=y -CONFIG_I2C_XGENE_SLIMPRO=m # end of I2C Hardware Bus support CONFIG_I2C_STUB=m @@ -4166,44 +4035,27 @@ CONFIG_SPI_MEM=y # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set -CONFIG_SPI_ARMADA_3700=y # CONFIG_SPI_AXI_SPI_ENGINE is not set -CONFIG_SPI_BCM2835=m -CONFIG_SPI_BCM2835AUX=m CONFIG_SPI_BITBANG=y # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_CADENCE_QUADSPI is not set # CONFIG_SPI_DESIGNWARE is not set -# CONFIG_SPI_FSL_LPSPI is not set # CONFIG_SPI_FSL_QUADSPI is not set # CONFIG_SPI_HISI_KUNPENG is not set # CONFIG_SPI_HISI_SFC_V3XX is not set CONFIG_SPI_NXP_FLEXSPI=y CONFIG_SPI_GPIO=y -CONFIG_SPI_IMX=m # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_FSL_DSPI is not set -CONFIG_SPI_MESON_SPICC=m -CONFIG_SPI_MESON_SPIFC=m -CONFIG_SPI_MT65XX=y -# CONFIG_SPI_MTK_NOR is not set # CONFIG_SPI_OC_TINY is not set -CONFIG_SPI_ORION=y CONFIG_SPI_PL022=y # CONFIG_SPI_PXA2XX is not set CONFIG_SPI_ROCKCHIP=y -CONFIG_SPI_QCOM_QSPI=m -CONFIG_SPI_QUP=y -CONFIG_SPI_QCOM_GENI=m # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SUN4I is not set CONFIG_SPI_SUN6I=y # CONFIG_SPI_MXIC is not set -# CONFIG_SPI_TEGRA210_QUAD is not set -# CONFIG_SPI_TEGRA114 is not set -# CONFIG_SPI_TEGRA20_SFLASH is not set -# CONFIG_SPI_TEGRA20_SLINK is not set # CONFIG_SPI_THUNDERX is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set @@ -4224,7 +4076,6 @@ CONFIG_SPI_SPIDEV=m # CONFIG_SPI_SLAVE is not set CONFIG_SPI_DYNAMIC=y CONFIG_SPMI=y -CONFIG_SPMI_MSM_PMIC_ARB=y # CONFIG_HSI is not set CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set @@ -4263,7 +4114,6 @@ CONFIG_GENERIC_PINCONF=y CONFIG_PINCTRL_AXP209=y CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_MCP23S08 is not set -CONFIG_PINCTRL_ROCKCHIP=y CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINCTRL_STMFX is not set @@ -4271,52 +4121,6 @@ CONFIG_PINCTRL_MAX77620=y CONFIG_PINCTRL_RK805=y # CONFIG_PINCTRL_OCELOT is not set # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set -CONFIG_PINCTRL_BCM2835=y -CONFIG_PINCTRL_IMX=y -CONFIG_PINCTRL_IMX_SCU=y -CONFIG_PINCTRL_IMX8MM=y -CONFIG_PINCTRL_IMX8MN=y -CONFIG_PINCTRL_IMX8MP=y -CONFIG_PINCTRL_IMX8MQ=y -# CONFIG_PINCTRL_IMX8QM is not set -CONFIG_PINCTRL_IMX8QXP=y -CONFIG_PINCTRL_IMX8DXL=y -CONFIG_PINCTRL_MVEBU=y -CONFIG_PINCTRL_ARMADA_AP806=y -CONFIG_PINCTRL_ARMADA_CP110=y -CONFIG_PINCTRL_ARMADA_37XX=y -CONFIG_PINCTRL_MSM=y -CONFIG_PINCTRL_APQ8064=y -# CONFIG_PINCTRL_APQ8084 is not set -# CONFIG_PINCTRL_IPQ4019 is not set -# CONFIG_PINCTRL_IPQ8064 is not set -# CONFIG_PINCTRL_IPQ8074 is not set -CONFIG_PINCTRL_IPQ6018=y -# CONFIG_PINCTRL_MSM8226 is not set -# CONFIG_PINCTRL_MSM8660 is not set -# CONFIG_PINCTRL_MSM8960 is not set -# CONFIG_PINCTRL_MDM9615 is not set -# CONFIG_PINCTRL_MSM8X74 is not set -CONFIG_PINCTRL_MSM8916=y -# CONFIG_PINCTRL_MSM8953 is not set -# CONFIG_PINCTRL_MSM8976 is not set -CONFIG_PINCTRL_MSM8994=y -CONFIG_PINCTRL_MSM8996=y -# CONFIG_PINCTRL_MSM8998 is not set -# CONFIG_PINCTRL_QCS404 is not set -# CONFIG_PINCTRL_QDF2XXX is not set -CONFIG_PINCTRL_QCOM_SPMI_PMIC=y -CONFIG_PINCTRL_QCOM_SSBI_PMIC=y -CONFIG_PINCTRL_SC7180=y -# CONFIG_PINCTRL_SC7280 is not set -# CONFIG_PINCTRL_SC8180X is not set -# CONFIG_PINCTRL_SDM660 is not set -CONFIG_PINCTRL_SDM845=y -# CONFIG_PINCTRL_SDX55 is not set -CONFIG_PINCTRL_SM8150=y -CONFIG_PINCTRL_SM8250=y -# CONFIG_PINCTRL_SM8350 is not set -# CONFIG_PINCTRL_LPASS_LPI is not set # # Renesas pinctrl drivers @@ -4347,41 +4151,6 @@ CONFIG_PINCTRL_SUN50I_H6=y CONFIG_PINCTRL_SUN50I_H6_R=y CONFIG_PINCTRL_SUN50I_H616=y CONFIG_PINCTRL_SUN50I_H616_R=y -CONFIG_PINCTRL_TEGRA=y -CONFIG_PINCTRL_TEGRA124=y -CONFIG_PINCTRL_TEGRA210=y -CONFIG_PINCTRL_TEGRA194=y -CONFIG_PINCTRL_TEGRA_XUSB=y - -# -# MediaTek pinctrl drivers -# -CONFIG_EINT_MTK=y -CONFIG_PINCTRL_MTK=y -CONFIG_PINCTRL_MTK_V2=y -CONFIG_PINCTRL_MTK_MOORE=y -CONFIG_PINCTRL_MTK_PARIS=y -CONFIG_PINCTRL_MT2712=y -CONFIG_PINCTRL_MT6765=y -CONFIG_PINCTRL_MT6779=y -CONFIG_PINCTRL_MT6797=y -CONFIG_PINCTRL_MT7622=y -CONFIG_PINCTRL_MT8167=y -CONFIG_PINCTRL_MT8173=y -CONFIG_PINCTRL_MT8183=y -CONFIG_PINCTRL_MT8192=y -# CONFIG_PINCTRL_MT8195 is not set -CONFIG_PINCTRL_MT8516=y -# end of MediaTek pinctrl drivers - -CONFIG_PINCTRL_MESON=y -CONFIG_PINCTRL_MESON_GXBB=y -CONFIG_PINCTRL_MESON_GXL=y -CONFIG_PINCTRL_MESON8_PMX=y -CONFIG_PINCTRL_MESON_AXG=y -CONFIG_PINCTRL_MESON_AXG_PMX=y -CONFIG_PINCTRL_MESON_G12A=y -CONFIG_PINCTRL_MESON_A1=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_OF_GPIO=y @@ -4400,7 +4169,6 @@ CONFIG_GPIO_REGMAP=m # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y # CONFIG_GPIO_CADENCE is not set CONFIG_GPIO_DWAPB=y # CONFIG_GPIO_EXAR is not set @@ -4412,17 +4180,12 @@ CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_LOGICVC is not set # CONFIG_GPIO_MB86S7X is not set CONFIG_GPIO_MPC8XXX=y -CONFIG_GPIO_MVEBU=y -CONFIG_GPIO_MXC=y CONFIG_GPIO_PL061=y # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SIFIVE is not set CONFIG_GPIO_SYSCON=y -CONFIG_GPIO_TEGRA=y -CONFIG_GPIO_TEGRA186=y CONFIG_GPIO_WCD934X=m CONFIG_GPIO_XGENE=y -CONFIG_GPIO_XGENE_SB=m # CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_AMD_FCH is not set # end of Memory mapped GPIO drivers @@ -4491,7 +4254,6 @@ CONFIG_W1_CON=y # CONFIG_W1_MASTER_MATROX is not set CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m -# CONFIG_W1_MASTER_MXC is not set CONFIG_W1_MASTER_DS1WM=m # CONFIG_W1_MASTER_GPIO is not set # CONFIG_W1_MASTER_SGI is not set @@ -4525,10 +4287,6 @@ CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_BRCMSTB is not set CONFIG_POWER_RESET_GPIO=y CONFIG_POWER_RESET_GPIO_RESTART=y -CONFIG_POWER_RESET_HISI=y -# CONFIG_POWER_RESET_LINKSTATION is not set -CONFIG_POWER_RESET_MSM=y -CONFIG_POWER_RESET_QCOM_PON=m # CONFIG_POWER_RESET_LTC2952 is not set # CONFIG_POWER_RESET_REGULATOR is not set CONFIG_POWER_RESET_RESTART=y @@ -4570,7 +4328,6 @@ CONFIG_BATTERY_MAX17042=m # CONFIG_CHARGER_LT3651 is not set # CONFIG_CHARGER_LTC4162L is not set # CONFIG_CHARGER_DETECTOR_MAX14656 is not set -CONFIG_CHARGER_QCOM_SMBB=m # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set @@ -4737,7 +4494,6 @@ CONFIG_SENSORS_UCD9200=m # CONFIG_SENSORS_XDPE122 is not set CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_PWM_FAN=m -CONFIG_SENSORS_RASPBERRYPI_HWMON=m CONFIG_SENSORS_SL28CPLD=m # CONFIG_SENSORS_SBTSI is not set CONFIG_SENSORS_SHT15=m @@ -4814,42 +4570,10 @@ CONFIG_CPU_FREQ_THERMAL=y CONFIG_DEVFREQ_THERMAL=y CONFIG_THERMAL_EMULATION=y # CONFIG_THERMAL_MMIO is not set -CONFIG_HISI_THERMAL=m -# CONFIG_IMX_THERMAL is not set -CONFIG_IMX_SC_THERMAL=m -CONFIG_IMX8MM_THERMAL=m CONFIG_MAX77620_THERMAL=m # CONFIG_QORIQ_THERMAL is not set CONFIG_SUN8I_THERMAL=m -CONFIG_ROCKCHIP_THERMAL=m -CONFIG_ARMADA_THERMAL=m -CONFIG_MTK_THERMAL=m -CONFIG_AMLOGIC_THERMAL=y - -# -# Broadcom thermal drivers -# -CONFIG_BCM2711_THERMAL=m -CONFIG_BCM2835_THERMAL=m -# end of Broadcom thermal drivers - -# -# NVIDIA Tegra thermal drivers -# -CONFIG_TEGRA_SOCTHERM=m -CONFIG_TEGRA_BPMP_THERMAL=m -# end of NVIDIA Tegra thermal drivers - CONFIG_GENERIC_ADC_THERMAL=m - -# -# Qualcomm thermal drivers -# -CONFIG_QCOM_TSENS=m -# CONFIG_QCOM_SPMI_ADC_TM5 is not set -CONFIG_QCOM_SPMI_TEMP_ALARM=m -# end of Qualcomm thermal drivers - CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set @@ -4873,25 +4597,15 @@ CONFIG_GPIO_WATCHDOG=m CONFIG_SL28CPLD_WATCHDOG=m CONFIG_ARM_SP805_WATCHDOG=m CONFIG_ARM_SBSA_WATCHDOG=m -CONFIG_ARMADA_37XX_WATCHDOG=m # CONFIG_CADENCE_WATCHDOG is not set CONFIG_DW_WATCHDOG=m CONFIG_SUNXI_WATCHDOG=m # CONFIG_MAX63XX_WATCHDOG is not set CONFIG_MAX77620_WATCHDOG=m CONFIG_IMX2_WDT=m -CONFIG_IMX_SC_WDT=m -# CONFIG_IMX7ULP_WDT is not set -# CONFIG_TEGRA_WATCHDOG is not set -CONFIG_QCOM_WDT=m -CONFIG_MESON_GXBB_WATCHDOG=m -CONFIG_MESON_WATCHDOG=m -CONFIG_MEDIATEK_WATCHDOG=m CONFIG_ARM_SMC_WATCHDOG=y -# CONFIG_PM8916_WATCHDOG is not set CONFIG_ALIM7101_WDT=m CONFIG_I6300ESB_WDT=m -CONFIG_BCM2835_WDT=m # CONFIG_MEN_A21_WDT is not set # @@ -4961,7 +4675,6 @@ CONFIG_MFD_CROS_EC_DEV=y # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_MFD_MP2629 is not set # CONFIG_MFD_HI6421_PMIC is not set -CONFIG_MFD_HI655X_PMIC=y # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_LPC_ICH is not set @@ -4993,8 +4706,6 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_UCB1400_CORE is not set -CONFIG_MFD_QCOM_RPM=y -CONFIG_MFD_SPMI_PMIC=y # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set @@ -5053,7 +4764,6 @@ CONFIG_MFD_ROHM_BD718XX=y # CONFIG_MFD_STMFX is not set CONFIG_MFD_WCD934X=m # CONFIG_MFD_ATC260X_I2C is not set -# CONFIG_MFD_KHADAS_MCU is not set CONFIG_MFD_VEXPRESS_SYSREG=y # CONFIG_RAVE_SP_CORE is not set # CONFIG_MFD_INTEL_M10_BMC is not set @@ -5067,7 +4777,6 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_88PG86X is not set # CONFIG_REGULATOR_ACT8865 is not set # CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_ANATOP is not set # CONFIG_REGULATOR_ARM_SCMI is not set CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_BD718XX=y @@ -5078,7 +4787,6 @@ CONFIG_REGULATOR_BD718XX=y CONFIG_REGULATOR_FAN53555=y # CONFIG_REGULATOR_FAN53880 is not set CONFIG_REGULATOR_GPIO=y -CONFIG_REGULATOR_HI655X=y # CONFIG_REGULATOR_ISL9305 is not set # CONFIG_REGULATOR_ISL6271A is not set # CONFIG_REGULATOR_LP3971 is not set @@ -5101,7 +4809,6 @@ CONFIG_REGULATOR_MAX77620=y # CONFIG_REGULATOR_MPQ7920 is not set # CONFIG_REGULATOR_MT6311 is not set # CONFIG_REGULATOR_MT6315 is not set -# CONFIG_REGULATOR_MT6380 is not set CONFIG_REGULATOR_PCA9450=y # CONFIG_REGULATOR_PF8X00 is not set CONFIG_REGULATOR_PFUZE100=y @@ -5109,9 +4816,6 @@ CONFIG_REGULATOR_PFUZE100=y # CONFIG_REGULATOR_PV88080 is not set # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y -CONFIG_REGULATOR_QCOM_RPM=y -# CONFIG_REGULATOR_QCOM_RPMH is not set -CONFIG_REGULATOR_QCOM_SMD_RPM=y CONFIG_REGULATOR_QCOM_SPMI=y # CONFIG_REGULATOR_QCOM_USB_VBUS is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set @@ -5134,7 +4838,6 @@ CONFIG_REGULATOR_TPS65132=m # CONFIG_REGULATOR_TPS6524X is not set CONFIG_REGULATOR_VCTRL=y CONFIG_REGULATOR_VEXPRESS=y -# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set # CONFIG_REGULATOR_QCOM_LABIBB is not set CONFIG_RC_CORE=m CONFIG_RC_MAP=m @@ -5160,8 +4863,6 @@ CONFIG_IR_IMON_RAW=m CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m -CONFIG_IR_MESON=m -CONFIG_IR_MTK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_SPI=m @@ -5187,9 +4888,6 @@ CONFIG_MEDIA_CEC_RC=y CONFIG_MEDIA_CEC_SUPPORT=y CONFIG_CEC_CH7322=m CONFIG_CEC_CROS_EC=m -CONFIG_CEC_MESON_AO=m -CONFIG_CEC_MESON_G12A_AO=m -CONFIG_CEC_TEGRA=m CONFIG_USB_PULSE8_CEC=m CONFIG_USB_RAINSHADOW_CEC=m CONFIG_MEDIA_SUPPORT=m @@ -5225,7 +4923,6 @@ CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m -CONFIG_V4L2_H264=m CONFIG_V4L2_MEM2MEM_DEV=m # CONFIG_V4L2_FLASH_LED_CLASS is not set CONFIG_V4L2_FWNODE=m @@ -5541,24 +5238,12 @@ CONFIG_V4L_PLATFORM_DRIVERS=y # CONFIG_VIDEO_CADENCE is not set # CONFIG_VIDEO_ASPEED is not set # CONFIG_VIDEO_MUX is not set -CONFIG_VIDEO_QCOM_CAMSS=m -CONFIG_VIDEO_ROCKCHIP_ISP1=m # CONFIG_VIDEO_XILINX is not set # CONFIG_VIDEO_SUN4I_CSI is not set CONFIG_VIDEO_SUN6I_CSI=m CONFIG_V4L_MEM2MEM_DRIVERS=y -# CONFIG_VIDEO_CODA is not set -# CONFIG_VIDEO_IMX_PXP is not set -# CONFIG_VIDEO_IMX8_JPEG is not set -# CONFIG_VIDEO_MEDIATEK_JPEG is not set -CONFIG_VIDEO_MEDIATEK_VPU=m -CONFIG_VIDEO_MEDIATEK_MDP=m -CONFIG_VIDEO_MEDIATEK_VCODEC=m -CONFIG_VIDEO_MEDIATEK_VCODEC_VPU=y # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -# CONFIG_VIDEO_MESON_GE2D is not set -CONFIG_VIDEO_ROCKCHIP_RGA=m -CONFIG_VIDEO_QCOM_VENUS=m +CONFIG_VIDEO_SUN50I_DEINTERLACE=m CONFIG_VIDEO_SUN8I_DEINTERLACE=m # CONFIG_VIDEO_SUN8I_ROTATE is not set # CONFIG_DVB_PLATFORM_DRIVERS is not set @@ -5997,8 +5682,6 @@ CONFIG_DVB_DUMMY_FE=m # CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_TEGRA_HOST1X=m -CONFIG_TEGRA_HOST1X_FIREWALL=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set @@ -6039,46 +5722,10 @@ CONFIG_DRM_MALI_DISPLAY=m CONFIG_DRM_RADEON=m CONFIG_DRM_RADEON_USERPTR=y -CONFIG_DRM_AMDGPU=m -# CONFIG_DRM_AMDGPU_SI is not set -# CONFIG_DRM_AMDGPU_CIK is not set -# CONFIG_DRM_AMDGPU_USERPTR is not set - -# -# ACP (Audio CoProcessor) Configuration -# -# CONFIG_DRM_AMD_ACP is not set -# end of ACP (Audio CoProcessor) Configuration - -# -# Display Engine Configuration -# -CONFIG_DRM_AMD_DC=y -# CONFIG_DRM_AMD_DC_HDCP is not set -# CONFIG_DRM_AMD_DC_SI is not set -# CONFIG_DEBUG_KERNEL_DC is not set -# end of Display Engine Configuration - -# CONFIG_HSA_AMD is not set -CONFIG_DRM_NOUVEAU=m -CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y -CONFIG_NOUVEAU_PLATFORM_DRIVER=y -CONFIG_NOUVEAU_DEBUG=5 -CONFIG_NOUVEAU_DEBUG_DEFAULT=3 -# CONFIG_NOUVEAU_DEBUG_MMU is not set -# CONFIG_NOUVEAU_DEBUG_PUSH is not set -CONFIG_DRM_NOUVEAU_BACKLIGHT=y +# CONFIG_DRM_AMDGPU is not set +# CONFIG_DRM_NOUVEAU is not set CONFIG_DRM_VGEM=m # CONFIG_DRM_VKMS is not set -CONFIG_DRM_ROCKCHIP=m -CONFIG_ROCKCHIP_ANALOGIX_DP=y -CONFIG_ROCKCHIP_CDN_DP=y -CONFIG_ROCKCHIP_DW_HDMI=y -CONFIG_ROCKCHIP_DW_MIPI_DSI=y -CONFIG_ROCKCHIP_INNO_HDMI=y -CONFIG_ROCKCHIP_LVDS=y -CONFIG_ROCKCHIP_RGB=y -# CONFIG_ROCKCHIP_RK3066_HDMI is not set CONFIG_DRM_UDL=m CONFIG_DRM_AST=m CONFIG_DRM_MGAG200=m @@ -6095,22 +5742,6 @@ CONFIG_DRM_SUN8I_TCON_TOP=m CONFIG_DRM_QXL=m CONFIG_DRM_BOCHS=m CONFIG_DRM_VIRTIO_GPU=m -CONFIG_DRM_MSM=m -CONFIG_DRM_MSM_GPU_STATE=y -# CONFIG_DRM_MSM_REGISTER_LOGGING is not set -# CONFIG_DRM_MSM_GPU_SUDO is not set -CONFIG_DRM_MSM_HDMI_HDCP=y -CONFIG_DRM_MSM_DP=y -CONFIG_DRM_MSM_DSI=y -CONFIG_DRM_MSM_DSI_28NM_PHY=y -CONFIG_DRM_MSM_DSI_20NM_PHY=y -CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y -CONFIG_DRM_MSM_DSI_14NM_PHY=y -CONFIG_DRM_MSM_DSI_10NM_PHY=y -CONFIG_DRM_MSM_DSI_7NM_PHY=y -CONFIG_DRM_TEGRA=m -# CONFIG_DRM_TEGRA_DEBUG is not set -CONFIG_DRM_TEGRA_STAGING=y CONFIG_DRM_PANEL=y # @@ -6220,22 +5851,14 @@ CONFIG_DRM_DW_HDMI=m # CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI_CEC=m -CONFIG_DRM_DW_MIPI_DSI=m # end of Display Interface Bridges -CONFIG_DRM_IMX_DCSS=m -CONFIG_DRM_VC4=m -CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_ETNAVIV=m CONFIG_DRM_ETNAVIV_THERMAL=y # CONFIG_DRM_HISI_HIBMC is not set -CONFIG_DRM_HISI_KIRIN=m -CONFIG_DRM_MEDIATEK=m -CONFIG_DRM_MEDIATEK_HDMI=m +# CONFIG_DRM_HISI_KIRIN is not set CONFIG_DRM_MXS=y CONFIG_DRM_MXSFB=m -CONFIG_DRM_MESON=m -CONFIG_DRM_MESON_DW_HDMI=m # CONFIG_DRM_ARCPGU is not set CONFIG_DRM_CIRRUS_QEMU=m # CONFIG_DRM_GM12U320 is not set @@ -6286,7 +5909,6 @@ CONFIG_FB_TILEBLITTING=y # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_IMX is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set @@ -6320,7 +5942,6 @@ CONFIG_FB_UDL=m CONFIG_FB_VIRTUAL=m # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set -CONFIG_FB_MX3=y CONFIG_FB_SIMPLE=y CONFIG_FB_SSD1307=m # CONFIG_FB_SM712 is not set @@ -6391,7 +6012,6 @@ CONFIG_SND_DMAENGINE_PCM=y CONFIG_SND_HWDEP=m CONFIG_SND_SEQ_DEVICE=m CONFIG_SND_RAWMIDI=m -CONFIG_SND_COMPRESS_OFFLOAD=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y @@ -6505,7 +6125,6 @@ CONFIG_SND_YMFPCI=m CONFIG_SND_HDA=m CONFIG_SND_HDA_GENERIC_LEDS=y CONFIG_SND_HDA_INTEL=m -CONFIG_SND_HDA_TEGRA=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y @@ -6530,8 +6149,6 @@ CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_CORE=m CONFIG_SND_HDA_DSP_LOADER=y -CONFIG_SND_HDA_ALIGNED_MMIO=y -CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_INTEL_NHLT=y CONFIG_SND_INTEL_DSP_CONFIG=m @@ -6553,13 +6170,11 @@ CONFIG_SND_USB_TONEPORT=m CONFIG_SND_USB_VARIAX=m CONFIG_SND_SOC=y CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -CONFIG_SND_SOC_COMPRESS=y # CONFIG_SND_SOC_ADI is not set CONFIG_SND_SOC_AMD_ACP=m # CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH is not set # CONFIG_SND_SOC_AMD_CZ_RT5645_MACH is not set # CONFIG_SND_ATMEL_SOC is not set -CONFIG_SND_BCM2835_SOC_I2S=m # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set # CONFIG_SND_DESIGNWARE_I2S is not set @@ -6580,90 +6195,13 @@ CONFIG_SND_SOC_FSL_SPDIF=m CONFIG_SND_SOC_FSL_MICFIL=m CONFIG_SND_SOC_FSL_EASRC=m # CONFIG_SND_SOC_FSL_XCVR is not set -# CONFIG_SND_SOC_FSL_AUD2HTX is not set # CONFIG_SND_SOC_FSL_RPMSG is not set -CONFIG_SND_SOC_IMX_PCM_DMA=m # CONFIG_SND_SOC_IMX_AUDMUX is not set -CONFIG_SND_IMX_SOC=m - -# -# SoC Audio support for Freescale i.MX boards: -# -# CONFIG_SND_SOC_IMX_ES8328 is not set -# CONFIG_SND_SOC_IMX_SGTL5000 is not set -CONFIG_SND_SOC_IMX_SPDIF=m -# CONFIG_SND_SOC_FSL_ASOC_CARD is not set -CONFIG_SND_SOC_IMX_AUDMIX=m -# CONFIG_SND_SOC_IMX_HDMI is not set -# CONFIG_SND_SOC_IMX_RPMSG is not set # end of SoC Audio for Freescale CPUs CONFIG_SND_I2S_HI6210_I2S=m -# CONFIG_SND_KIRKWOOD_SOC is not set # CONFIG_SND_SOC_IMG is not set -CONFIG_SND_SOC_MEDIATEK=m -# CONFIG_SND_SOC_MT2701 is not set -# CONFIG_SND_SOC_MT6797 is not set -CONFIG_SND_SOC_MT8173=m -CONFIG_SND_SOC_MT8173_MAX98090=m -CONFIG_SND_SOC_MT8173_RT5650=m -CONFIG_SND_SOC_MT8173_RT5650_RT5514=m -CONFIG_SND_SOC_MT8173_RT5650_RT5676=m -# CONFIG_SND_SOC_MT8183 is not set # CONFIG_SND_SOC_MTK_BTCVSD is not set -# CONFIG_SND_SOC_MT8192 is not set - -# -# ASoC support for Amlogic platforms -# -CONFIG_SND_MESON_AIU=m -# CONFIG_SND_MESON_AXG_FRDDR is not set -# CONFIG_SND_MESON_AXG_TODDR is not set -CONFIG_SND_MESON_AXG_TDM_FORMATTER=m -CONFIG_SND_MESON_AXG_TDM_INTERFACE=m -# CONFIG_SND_MESON_AXG_TDMIN is not set -# CONFIG_SND_MESON_AXG_TDMOUT is not set -CONFIG_SND_MESON_AXG_SOUND_CARD=m -# CONFIG_SND_MESON_AXG_SPDIFOUT is not set -# CONFIG_SND_MESON_AXG_SPDIFIN is not set -# CONFIG_SND_MESON_AXG_PDM is not set -CONFIG_SND_MESON_CARD_UTILS=m -CONFIG_SND_MESON_CODEC_GLUE=m -CONFIG_SND_MESON_GX_SOUND_CARD=m -# CONFIG_SND_MESON_G12A_TOACODEC is not set -CONFIG_SND_MESON_G12A_TOHDMITX=m -CONFIG_SND_SOC_MESON_T9015=m -# end of ASoC support for Amlogic platforms - -CONFIG_SND_SOC_QCOM=m -CONFIG_SND_SOC_LPASS_CPU=m -CONFIG_SND_SOC_LPASS_PLATFORM=m -CONFIG_SND_SOC_LPASS_APQ8016=m -# CONFIG_SND_SOC_STORM is not set -CONFIG_SND_SOC_APQ8016_SBC=m -CONFIG_SND_SOC_QCOM_COMMON=m -CONFIG_SND_SOC_QDSP6_COMMON=m -CONFIG_SND_SOC_QDSP6_CORE=m -CONFIG_SND_SOC_QDSP6_AFE=m -CONFIG_SND_SOC_QDSP6_AFE_DAI=m -CONFIG_SND_SOC_QDSP6_AFE_CLOCKS=m -CONFIG_SND_SOC_QDSP6_ADM=m -CONFIG_SND_SOC_QDSP6_ROUTING=m -CONFIG_SND_SOC_QDSP6_ASM=m -CONFIG_SND_SOC_QDSP6_ASM_DAI=m -CONFIG_SND_SOC_QDSP6=m -CONFIG_SND_SOC_MSM8996=m -CONFIG_SND_SOC_SDM845=m -# CONFIG_SND_SOC_SM8250 is not set -# CONFIG_SND_SOC_SC7180 is not set -CONFIG_SND_SOC_ROCKCHIP=m -CONFIG_SND_SOC_ROCKCHIP_I2S=m -CONFIG_SND_SOC_ROCKCHIP_PDM=m -CONFIG_SND_SOC_ROCKCHIP_SPDIF=m -CONFIG_SND_SOC_ROCKCHIP_MAX98090=m -CONFIG_SND_SOC_ROCKCHIP_RT5645=m -CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m -CONFIG_SND_SOC_RK3399_GRU_SOUND=m # CONFIG_SND_SOC_SOF_TOPLEVEL is not set # @@ -6683,28 +6221,6 @@ CONFIG_SND_SUN4I_SPDIF=m CONFIG_SND_SUN8I_ADDA_PR_REGMAP=m # end of Allwinner SoC Audio support -CONFIG_SND_SOC_TEGRA=m -# CONFIG_SND_SOC_TEGRA20_AC97 is not set -# CONFIG_SND_SOC_TEGRA20_DAS is not set -# CONFIG_SND_SOC_TEGRA20_I2S is not set -# CONFIG_SND_SOC_TEGRA20_SPDIF is not set -# CONFIG_SND_SOC_TEGRA30_AHUB is not set -# CONFIG_SND_SOC_TEGRA30_I2S is not set -CONFIG_SND_SOC_TEGRA210_AHUB=m -CONFIG_SND_SOC_TEGRA210_DMIC=m -CONFIG_SND_SOC_TEGRA210_I2S=m -CONFIG_SND_SOC_TEGRA186_DSPK=m -CONFIG_SND_SOC_TEGRA210_ADMAIF=m -# CONFIG_SND_SOC_TEGRA_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_SOC_TEGRA_RT5640 is not set -# CONFIG_SND_SOC_TEGRA_WM8753 is not set -# CONFIG_SND_SOC_TEGRA_WM8903 is not set -# CONFIG_SND_SOC_TEGRA_WM9712 is not set -# CONFIG_SND_SOC_TEGRA_TRIMSLICE is not set -# CONFIG_SND_SOC_TEGRA_ALC5632 is not set -# CONFIG_SND_SOC_TEGRA_MAX98090 is not set -# CONFIG_SND_SOC_TEGRA_RT5677 is not set -# CONFIG_SND_SOC_TEGRA_SGTL5000 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 @@ -6757,7 +6273,6 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m # CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_CX2072X is not set # CONFIG_SND_SOC_DA7213 is not set -CONFIG_SND_SOC_DA7219=m CONFIG_SND_SOC_DMIC=m CONFIG_SND_SOC_HDMI_CODEC=m # CONFIG_SND_SOC_ES7134 is not set @@ -6769,7 +6284,6 @@ CONFIG_SND_SOC_ES8328_SPI=m # CONFIG_SND_SOC_GTM601 is not set # CONFIG_SND_SOC_INNO_RK3036 is not set # CONFIG_SND_SOC_MAX98088 is not set -CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9867 is not set @@ -6795,18 +6309,11 @@ CONFIG_SND_SOC_PCM3168A_I2C=m # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set CONFIG_SND_SOC_RK3328=m -CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT1308_SDW is not set # CONFIG_SND_SOC_RT1316_SDW is not set -CONFIG_SND_SOC_RT5514=m -CONFIG_SND_SOC_RT5514_SPI=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set -CONFIG_SND_SOC_RT5645=m # CONFIG_SND_SOC_RT5659 is not set -CONFIG_SND_SOC_RT5663=m -CONFIG_SND_SOC_RT5677=m -CONFIG_SND_SOC_RT5677_SPI=m # CONFIG_SND_SOC_RT5682_SDW is not set # CONFIG_SND_SOC_RT700_SDW is not set # CONFIG_SND_SOC_RT711_SDW is not set @@ -6877,8 +6384,6 @@ CONFIG_SND_SOC_WSA881X=m # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set # CONFIG_SND_SOC_MT6358 is not set -# CONFIG_SND_SOC_MT6359 is not set -# CONFIG_SND_SOC_MT6359_ACCDET is not set # CONFIG_SND_SOC_MT6660 is not set # CONFIG_SND_SOC_NAU8315 is not set # CONFIG_SND_SOC_NAU8540 is not set @@ -7077,17 +6582,11 @@ CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PCI=y # CONFIG_USB_XHCI_PCI_RENESAS is not set CONFIG_USB_XHCI_PLATFORM=y -# CONFIG_USB_XHCI_HISTB is not set -CONFIG_USB_XHCI_MTK=y -CONFIG_USB_XHCI_MVEBU=y -CONFIG_USB_XHCI_TEGRA=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_FSL is not set -CONFIG_USB_EHCI_HCD_ORION=y -CONFIG_USB_EHCI_TEGRA=y CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set @@ -7151,7 +6650,6 @@ CONFIG_USBIP_HOST=m CONFIG_USBIP_VUDC=m # CONFIG_USBIP_DEBUG is not set # CONFIG_USB_CDNS_SUPPORT is not set -# CONFIG_USB_MTU3 is not set CONFIG_USB_MUSB_HDRC=y # CONFIG_USB_MUSB_HOST is not set # CONFIG_USB_MUSB_GADGET is not set @@ -7161,7 +6659,6 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # Platform Glue Layer # CONFIG_USB_MUSB_SUNXI=y -# CONFIG_USB_MUSB_MEDIATEK is not set # # MUSB DMA mode @@ -7178,10 +6675,7 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_HAPS=y -CONFIG_USB_DWC3_MESON_G12A=y CONFIG_USB_DWC3_OF_SIMPLE=y -CONFIG_USB_DWC3_QCOM=y -CONFIG_USB_DWC3_IMX8MP=y CONFIG_USB_DWC2=y # CONFIG_USB_DWC2_HOST is not set @@ -7310,8 +6804,6 @@ CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y CONFIG_USB_GPIO_VBUS=y CONFIG_USB_ISP1301=y -# CONFIG_USB_MXS_PHY is not set -CONFIG_USB_TEGRA_PHY=y CONFIG_USB_ULPI=y CONFIG_USB_ULPI_VIEWPORT=y # end of USB Physical Layer drivers @@ -7343,7 +6835,6 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # CONFIG_USB_EG20T is not set # CONFIG_USB_GADGET_XILINX is not set # CONFIG_USB_MAX3420_UDC is not set -CONFIG_USB_TEGRA_XUDC=m # CONFIG_USB_DUMMY_HCD is not set # end of USB Peripheral Controller @@ -7432,7 +6923,6 @@ CONFIG_TYPEC_FUSB302=y CONFIG_TYPEC_TPS6598X=m CONFIG_TYPEC_HD3SS3220=m # CONFIG_TYPEC_STUSB160X is not set -# CONFIG_TYPEC_QCOM_PMIC is not set # # USB Type-C Multiplexer/DeMultiplexer Switch support @@ -7461,7 +6951,6 @@ CONFIG_SDIO_UART=m # # CONFIG_MMC_DEBUG is not set CONFIG_MMC_ARMMMCI=y -CONFIG_MMC_QCOM_DML=y # CONFIG_MMC_STM32_SDMMC is not set CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_IO_ACCESSORS=y @@ -7475,16 +6964,8 @@ CONFIG_MMC_SDHCI_OF_AT91=y # CONFIG_MMC_SDHCI_OF_ESDHC is not set # CONFIG_MMC_SDHCI_OF_DWCMSHC is not set CONFIG_MMC_SDHCI_CADENCE=y -CONFIG_MMC_SDHCI_ESDHC_IMX=y -CONFIG_MMC_SDHCI_TEGRA=y -CONFIG_MMC_SDHCI_PXAV3=y CONFIG_MMC_SDHCI_F_SDH30=y # CONFIG_MMC_SDHCI_MILBEAUT is not set -CONFIG_MMC_SDHCI_IPROC=y -CONFIG_MMC_MESON_GX=y -# CONFIG_MMC_MESON_MX_SDIO is not set -CONFIG_MMC_SDHCI_MSM=y -# CONFIG_MMC_MXC is not set CONFIG_MMC_TIFM_SD=y CONFIG_MMC_SPI=y CONFIG_MMC_CB710=y @@ -7496,7 +6977,6 @@ CONFIG_MMC_DW_EXYNOS=y # CONFIG_MMC_DW_HI3798CV200 is not set CONFIG_MMC_DW_K3=y CONFIG_MMC_DW_PCI=y -CONFIG_MMC_DW_ROCKCHIP=y CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m CONFIG_MMC_USDHI6ROL0=y @@ -7504,7 +6984,6 @@ CONFIG_MMC_SUNXI=y CONFIG_MMC_CQHCI=y # CONFIG_MMC_HSQ is not set CONFIG_MMC_TOSHIBA_PCI=y -CONFIG_MMC_BCM2835=y CONFIG_MMC_MTK=y CONFIG_MMC_SDHCI_XENON=y # CONFIG_MMC_SDHCI_OMAP is not set @@ -7744,25 +7223,12 @@ CONFIG_RTC_DRV_CROS_EC=y # # on-CPU RTC drivers # -# CONFIG_RTC_DRV_IMXDI is not set CONFIG_RTC_DRV_FSL_FTM_ALARM=m -CONFIG_RTC_DRV_MESON_VRTC=m # CONFIG_RTC_DRV_PL030 is not set CONFIG_RTC_DRV_PL031=y CONFIG_RTC_DRV_SUN6I=y -# CONFIG_RTC_DRV_MV is not set -CONFIG_RTC_DRV_ARMADA38X=y # CONFIG_RTC_DRV_CADENCE is not set # CONFIG_RTC_DRV_FTRTC010 is not set -CONFIG_RTC_DRV_PM8XXX=y -# CONFIG_RTC_DRV_TEGRA is not set -# CONFIG_RTC_DRV_MXC is not set -# CONFIG_RTC_DRV_MXC_V2 is not set -CONFIG_RTC_DRV_SNVS=m -CONFIG_RTC_DRV_IMX_SC=y -# CONFIG_RTC_DRV_MT2712 is not set -CONFIG_RTC_DRV_MT7622=y -CONFIG_RTC_DRV_XGENE=m # CONFIG_RTC_DRV_R7301 is not set # @@ -7784,33 +7250,18 @@ CONFIG_DMA_OF=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_AMBA_PL08X is not set # CONFIG_BCM_SBA_RAID is not set -CONFIG_DMA_BCM2835=y CONFIG_DMA_SUN6I=y # CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_QDMA is not set # CONFIG_HISI_DMA is not set -# CONFIG_IMX_DMA is not set -CONFIG_IMX_SDMA=y # CONFIG_INTEL_IDMA64 is not set -# CONFIG_K3_DMA is not set -CONFIG_MV_XOR=y CONFIG_MV_XOR_V2=y -# CONFIG_MXS_DMA is not set -CONFIG_MX3_IPU=y -CONFIG_MX3_IPU_IRQS=4 CONFIG_PL330_DMA=y # CONFIG_PLX_DMA is not set -CONFIG_TEGRA20_APB_DMA=y -CONFIG_TEGRA210_ADMA=m -CONFIG_XGENE_DMA=m # CONFIG_XILINX_DMA is not set # CONFIG_XILINX_ZYNQMP_DMA is not set # CONFIG_XILINX_ZYNQMP_DPDMA is not set -# CONFIG_MTK_HSDMA is not set -# CONFIG_MTK_CQDMA is not set -CONFIG_QCOM_BAM_DMA=y -# CONFIG_QCOM_GPI_DMA is not set CONFIG_QCOM_HIDMA_MGMT=y CONFIG_QCOM_HIDMA=y CONFIG_DW_DMAC_CORE=m @@ -7976,19 +7427,10 @@ CONFIG_AD2S1210=m # end of IIO staging drivers # CONFIG_FB_SM750 is not set -# CONFIG_MFD_NVEC is not set CONFIG_STAGING_MEDIA=y -CONFIG_VIDEO_HANTRO=m -CONFIG_VIDEO_HANTRO_IMX8M=y -CONFIG_VIDEO_HANTRO_ROCKCHIP=y -# CONFIG_VIDEO_IMX_MEDIA is not set -CONFIG_VIDEO_MESON_VDEC=m -CONFIG_VIDEO_ROCKCHIP_VDEC=m CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_SUNXI_CEDRUS=m -# CONFIG_TEGRA_VDE is not set # CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_TEGRA is not set # # Android @@ -8033,18 +7475,12 @@ CONFIG_FB_TFT_UC1701=m CONFIG_FB_TFT_UPD161704=m CONFIG_FB_TFT_WATTEROTT=m # CONFIG_KS7010 is not set -CONFIG_BCM_VIDEOCORE=y -CONFIG_BCM2835_VCHIQ=y -CONFIG_SND_BCM2835=m -CONFIG_VIDEO_BCM2835=m -CONFIG_BCM2835_VCHIQ_MMAL=m # CONFIG_PI433 is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_FIELDBUS_DEV is not set # CONFIG_KPC2000 is not set # CONFIG_QLGE is not set # CONFIG_WFX is not set -# CONFIG_PHY_HI3670_USB is not set # CONFIG_SPMI_HISI3670 is not set # CONFIG_MFD_HI6421_SPMI is not set # CONFIG_GOLDFISH is not set @@ -8083,7 +7519,6 @@ CONFIG_CLK_VEXPRESS_OSC=y # CONFIG_COMMON_CLK_MAX77686 is not set # CONFIG_COMMON_CLK_MAX9485 is not set CONFIG_COMMON_CLK_RK808=y -# CONFIG_COMMON_CLK_HI655X is not set CONFIG_COMMON_CLK_SCMI=y CONFIG_COMMON_CLK_SCPI=y # CONFIG_COMMON_CLK_SI5341 is not set @@ -8105,193 +7540,6 @@ CONFIG_COMMON_CLK_PWM=y # CONFIG_COMMON_CLK_VC5 is not set CONFIG_COMMON_CLK_BD718XX=m # CONFIG_COMMON_CLK_FIXED_MMIO is not set -CONFIG_CLK_BCM2711_DVP=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y -CONFIG_COMMON_CLK_HI3516CV300=y -CONFIG_COMMON_CLK_HI3519=y -CONFIG_COMMON_CLK_HI3660=y -CONFIG_COMMON_CLK_HI3670=y -CONFIG_COMMON_CLK_HI3798CV200=y -CONFIG_COMMON_CLK_HI6220=y -CONFIG_RESET_HISI=y -CONFIG_STUB_CLK_HI6220=y -# CONFIG_STUB_CLK_HI3660 is not set -CONFIG_MXC_CLK=y -CONFIG_MXC_CLK_SCU=y -CONFIG_CLK_IMX8MM=y -CONFIG_CLK_IMX8MN=y -CONFIG_CLK_IMX8MP=y -CONFIG_CLK_IMX8MQ=y -CONFIG_CLK_IMX8QXP=y - -# -# Clock driver for MediaTek SoC -# -CONFIG_COMMON_CLK_MEDIATEK=y -CONFIG_COMMON_CLK_MT2712=y -# CONFIG_COMMON_CLK_MT2712_BDPSYS is not set -# CONFIG_COMMON_CLK_MT2712_IMGSYS is not set -# CONFIG_COMMON_CLK_MT2712_JPGDECSYS is not set -# CONFIG_COMMON_CLK_MT2712_MFGCFG is not set -# CONFIG_COMMON_CLK_MT2712_MMSYS is not set -# CONFIG_COMMON_CLK_MT2712_VDECSYS is not set -# CONFIG_COMMON_CLK_MT2712_VENCSYS is not set -CONFIG_COMMON_CLK_MT6765=y -# CONFIG_COMMON_CLK_MT6765_AUDIOSYS is not set -# CONFIG_COMMON_CLK_MT6765_CAMSYS is not set -# CONFIG_COMMON_CLK_MT6765_GCESYS is not set -# CONFIG_COMMON_CLK_MT6765_MMSYS is not set -# CONFIG_COMMON_CLK_MT6765_IMGSYS is not set -# CONFIG_COMMON_CLK_MT6765_VCODECSYS is not set -# CONFIG_COMMON_CLK_MT6765_MFGSYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI0ASYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI0BSYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI1ASYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI1BSYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI2ASYS is not set -# CONFIG_COMMON_CLK_MT6765_MIPI2BSYS is not set -CONFIG_COMMON_CLK_MT6779=y -# CONFIG_COMMON_CLK_MT6779_MMSYS is not set -# CONFIG_COMMON_CLK_MT6779_IMGSYS is not set -# CONFIG_COMMON_CLK_MT6779_IPESYS is not set -# CONFIG_COMMON_CLK_MT6779_CAMSYS is not set -# CONFIG_COMMON_CLK_MT6779_VDECSYS is not set -# CONFIG_COMMON_CLK_MT6779_VENCSYS is not set -# CONFIG_COMMON_CLK_MT6779_MFGCFG is not set -# CONFIG_COMMON_CLK_MT6779_AUDSYS is not set -CONFIG_COMMON_CLK_MT6797=y -# CONFIG_COMMON_CLK_MT6797_MMSYS is not set -# CONFIG_COMMON_CLK_MT6797_IMGSYS is not set -# CONFIG_COMMON_CLK_MT6797_VDECSYS is not set -# CONFIG_COMMON_CLK_MT6797_VENCSYS is not set -CONFIG_COMMON_CLK_MT7622=y -# CONFIG_COMMON_CLK_MT7622_ETHSYS is not set -# CONFIG_COMMON_CLK_MT7622_HIFSYS is not set -# CONFIG_COMMON_CLK_MT7622_AUDSYS is not set -CONFIG_COMMON_CLK_MT8167=y -CONFIG_COMMON_CLK_MT8167_AUDSYS=y -CONFIG_COMMON_CLK_MT8167_IMGSYS=y -CONFIG_COMMON_CLK_MT8167_MFGCFG=y -CONFIG_COMMON_CLK_MT8167_MMSYS=y -CONFIG_COMMON_CLK_MT8167_VDECSYS=y -CONFIG_COMMON_CLK_MT8173=y -CONFIG_COMMON_CLK_MT8173_MMSYS=y -CONFIG_COMMON_CLK_MT8183=y -# CONFIG_COMMON_CLK_MT8183_AUDIOSYS is not set -# CONFIG_COMMON_CLK_MT8183_CAMSYS is not set -# CONFIG_COMMON_CLK_MT8183_IMGSYS is not set -# CONFIG_COMMON_CLK_MT8183_IPU_CORE0 is not set -# CONFIG_COMMON_CLK_MT8183_IPU_CORE1 is not set -# CONFIG_COMMON_CLK_MT8183_IPU_ADL is not set -# CONFIG_COMMON_CLK_MT8183_IPU_CONN is not set -# CONFIG_COMMON_CLK_MT8183_MFGCFG is not set -# CONFIG_COMMON_CLK_MT8183_MMSYS is not set -# CONFIG_COMMON_CLK_MT8183_VDECSYS is not set -# CONFIG_COMMON_CLK_MT8183_VENCSYS is not set -CONFIG_COMMON_CLK_MT8516=y -# CONFIG_COMMON_CLK_MT8516_AUDSYS is not set -# end of Clock driver for MediaTek SoC - -# -# Clock support for Amlogic platforms -# -CONFIG_COMMON_CLK_MESON_REGMAP=y -CONFIG_COMMON_CLK_MESON_DUALDIV=y -CONFIG_COMMON_CLK_MESON_MPLL=y -CONFIG_COMMON_CLK_MESON_PLL=y -CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y -CONFIG_COMMON_CLK_MESON_AO_CLKC=y -CONFIG_COMMON_CLK_MESON_EE_CLKC=y -CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y -CONFIG_COMMON_CLK_GXBB=y -CONFIG_COMMON_CLK_AXG=y -# CONFIG_COMMON_CLK_AXG_AUDIO is not set -CONFIG_COMMON_CLK_G12A=y -# end of Clock support for Amlogic platforms - -CONFIG_ARMADA_AP_CP_HELPER=y -CONFIG_ARMADA_37XX_CLK=y -CONFIG_ARMADA_AP806_SYSCON=y -CONFIG_ARMADA_AP_CPU_CLK=y -CONFIG_ARMADA_CP110_SYSCON=y -CONFIG_QCOM_GDSC=y -CONFIG_QCOM_RPMCC=y -CONFIG_COMMON_CLK_QCOM=y -CONFIG_QCOM_A53PLL=y -# CONFIG_QCOM_A7PLL is not set -CONFIG_QCOM_CLK_APCS_MSM8916=y -# CONFIG_QCOM_CLK_APCC_MSM8996 is not set -# CONFIG_QCOM_CLK_APCS_SDX55 is not set -CONFIG_QCOM_CLK_RPM=y -CONFIG_QCOM_CLK_SMD_RPM=y -# CONFIG_QCOM_CLK_RPMH is not set -# CONFIG_APQ_GCC_8084 is not set -# CONFIG_APQ_MMCC_8084 is not set -# CONFIG_IPQ_APSS_PLL is not set -# CONFIG_IPQ_APSS_6018 is not set -# CONFIG_IPQ_GCC_4019 is not set -CONFIG_IPQ_GCC_6018=y -# CONFIG_IPQ_GCC_806X is not set -# CONFIG_IPQ_LCC_806X is not set -# CONFIG_IPQ_GCC_8074 is not set -# CONFIG_MSM_GCC_8660 is not set -CONFIG_MSM_GCC_8916=y -# CONFIG_MSM_GCC_8939 is not set -CONFIG_MSM_GCC_8960=y -CONFIG_MSM_LCC_8960=y -# CONFIG_MDM_GCC_9615 is not set -# CONFIG_MDM_LCC_9615 is not set -# CONFIG_MSM_MMCC_8960 is not set -# CONFIG_MSM_GCC_8974 is not set -# CONFIG_MSM_MMCC_8974 is not set -CONFIG_MSM_GCC_8994=y -CONFIG_MSM_GCC_8996=y -CONFIG_MSM_MMCC_8996=y -# CONFIG_MSM_GCC_8998 is not set -# CONFIG_MSM_GPUCC_8998 is not set -# CONFIG_MSM_MMCC_8998 is not set -# CONFIG_QCS_GCC_404 is not set -# CONFIG_SC_CAMCC_7180 is not set -# CONFIG_SC_DISPCC_7180 is not set -CONFIG_SC_GCC_7180=y -# CONFIG_SC_GCC_7280 is not set -# CONFIG_SC_GCC_8180X is not set -# CONFIG_SC_LPASS_CORECC_7180 is not set -# CONFIG_SC_GPUCC_7180 is not set -# CONFIG_SC_MSS_7180 is not set -# CONFIG_SC_VIDEOCC_7180 is not set -CONFIG_SDM_CAMCC_845=m -# CONFIG_SDM_GCC_660 is not set -# CONFIG_SDM_MMCC_660 is not set -# CONFIG_SDM_GPUCC_660 is not set -# CONFIG_QCS_TURING_404 is not set -# CONFIG_QCS_Q6SSTOP_404 is not set -CONFIG_SDM_GCC_845=y -CONFIG_SDM_GPUCC_845=y -CONFIG_SDM_VIDEOCC_845=y -CONFIG_SDM_DISPCC_845=y -# CONFIG_SDM_LPASSCC_845 is not set -# CONFIG_SDX_GCC_55 is not set -# CONFIG_SM_DISPCC_8250 is not set -CONFIG_SM_GCC_8150=y -CONFIG_SM_GCC_8250=y -# CONFIG_SM_GCC_8350 is not set -CONFIG_SM_GPUCC_8150=y -CONFIG_SM_GPUCC_8250=y -# CONFIG_SM_VIDEOCC_8150 is not set -# CONFIG_SM_VIDEOCC_8250 is not set -CONFIG_SPMI_PMIC_CLKDIV=y -CONFIG_QCOM_HFPLL=y -# CONFIG_KPSS_XCC is not set -# CONFIG_CLK_GFM_LPASS_SM8250 is not set -CONFIG_COMMON_CLK_ROCKCHIP=y -CONFIG_CLK_PX30=y -CONFIG_CLK_RK3308=y -CONFIG_CLK_RK3328=y -CONFIG_CLK_RK3368=y -CONFIG_CLK_RK3399=y -# CONFIG_CLK_RK3568 is not set CONFIG_CLK_SUNXI=y CONFIG_CLK_SUNXI_CLOCKS=y CONFIG_CLK_SUNXI_PRCM_SUN6I=y @@ -8308,11 +7556,8 @@ CONFIG_SUN50I_H6_R_CCU=y CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_R_CCU=y -CONFIG_CLK_TEGRA_BPMP=y -CONFIG_TEGRA_CLK_DFLL=y # CONFIG_XILINX_VCU is not set CONFIG_HWSPINLOCK=y -CONFIG_HWSPINLOCK_QCOM=y # # Clock Source drivers @@ -8320,9 +7565,6 @@ CONFIG_HWSPINLOCK_QCOM=y CONFIG_TIMER_OF=y CONFIG_TIMER_ACPI=y CONFIG_TIMER_PROBE=y -CONFIG_CLKSRC_MMIO=y -CONFIG_ROCKCHIP_TIMER=y -CONFIG_TEGRA_TIMER=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y @@ -8330,32 +7572,18 @@ CONFIG_FSL_ERRATUM_A008585=y CONFIG_HISILICON_ERRATUM_161010101=y CONFIG_ARM64_ERRATUM_858921=y CONFIG_SUN50I_ERRATUM_UNKNOWN1=y -CONFIG_ARM_TIMER_SP804=y -CONFIG_MTK_TIMER=y -CONFIG_TIMER_IMX_SYS_CTR=y # CONFIG_MICROCHIP_PIT64B is not set # end of Clock Source drivers CONFIG_MAILBOX=y CONFIG_ARM_MHU=y # CONFIG_ARM_MHU_V2 is not set -CONFIG_IMX_MBOX=y CONFIG_PLATFORM_MHU=y # CONFIG_PL320_MBOX is not set -CONFIG_ARMADA_37XX_RWTM_MBOX=y -CONFIG_ROCKCHIP_MBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set -CONFIG_BCM2835_MBOX=y -CONFIG_HI3660_MBOX=y -CONFIG_HI6220_MBOX=y # CONFIG_MAILBOX_TEST is not set -CONFIG_QCOM_APCS_IPC=y -CONFIG_TEGRA_HSP_MBOX=y -# CONFIG_XGENE_SLIMPRO_MBOX is not set -# CONFIG_MTK_CMDQ_MBOX is not set CONFIG_SUN6I_MSGBOX=y -CONFIG_QCOM_IPCC=y CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -8374,16 +7602,12 @@ CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_OF_IOMMU=y CONFIG_IOMMU_DMA=y -CONFIG_ROCKCHIP_IOMMU=y # CONFIG_SUN50I_IOMMU is not set -CONFIG_TEGRA_IOMMU_SMMU=y CONFIG_ARM_SMMU=y # CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y CONFIG_ARM_SMMU_V3=y # CONFIG_ARM_SMMU_V3_SVA is not set -CONFIG_MTK_IOMMU=y -CONFIG_QCOM_IOMMU=y # CONFIG_VIRTIO_IOMMU is not set # @@ -8391,17 +7615,6 @@ CONFIG_QCOM_IOMMU=y # CONFIG_REMOTEPROC=y # CONFIG_REMOTEPROC_CDEV is not set -# CONFIG_IMX_REMOTEPROC is not set -# CONFIG_MTK_SCP is not set -CONFIG_QCOM_PIL_INFO=m -CONFIG_QCOM_RPROC_COMMON=m -CONFIG_QCOM_Q6V5_COMMON=m -# CONFIG_QCOM_Q6V5_ADSP is not set -CONFIG_QCOM_Q6V5_MSS=m -CONFIG_QCOM_Q6V5_PAS=m -# CONFIG_QCOM_Q6V5_WCSS is not set -CONFIG_QCOM_SYSMON=m -CONFIG_QCOM_WCNSS_PIL=m # end of Remoteproc drivers # @@ -8412,8 +7625,6 @@ CONFIG_RPMSG_CHAR=y # CONFIG_RPMSG_NS is not set CONFIG_RPMSG_QCOM_GLINK=y CONFIG_RPMSG_QCOM_GLINK_RPM=y -CONFIG_RPMSG_QCOM_GLINK_SMEM=y -CONFIG_RPMSG_QCOM_SMD=y # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -8432,21 +7643,12 @@ CONFIG_SOUNDWIRE_QCOM=m # # Amlogic SoC drivers # -CONFIG_MESON_CANVAS=m -CONFIG_MESON_CLK_MEASURE=y -CONFIG_MESON_GX_SOCINFO=y -CONFIG_MESON_GX_PM_DOMAINS=y -CONFIG_MESON_EE_PM_DOMAINS=y -CONFIG_MESON_SECURE_PM_DOMAINS=y # end of Amlogic SoC drivers # # Broadcom SoC drivers # -CONFIG_BCM2835_POWER=y -CONFIG_RASPBERRYPI_POWER=y # CONFIG_SOC_BRCMSTB is not set -CONFIG_BCM_PMB=y # end of Broadcom SoC drivers # @@ -8465,8 +7667,6 @@ CONFIG_DPAA2_CONSOLE=m # # i.MX SoC drivers # -CONFIG_IMX_GPCV2_PM_DOMAINS=y -CONFIG_SOC_IMX8M=y # end of i.MX SoC drivers # @@ -8476,59 +7676,12 @@ CONFIG_SOC_IMX8M=y # end of Enable LiteX SoC Builder specific drivers # -# MediaTek SoC drivers -# -# CONFIG_MTK_CMDQ is not set -# CONFIG_MTK_DEVAPC is not set -CONFIG_MTK_INFRACFG=y -CONFIG_MTK_PMIC_WRAP=y -CONFIG_MTK_SCPSYS=y -CONFIG_MTK_SCPSYS_PM_DOMAINS=y -CONFIG_MTK_MMSYS=y -# end of MediaTek SoC drivers - -# # Qualcomm SoC drivers # -CONFIG_QCOM_AOSS_QMP=y -CONFIG_QCOM_COMMAND_DB=y -CONFIG_QCOM_CPR=y -CONFIG_QCOM_GENI_SE=m -CONFIG_QCOM_GSBI=y -# CONFIG_QCOM_LLCC is not set -CONFIG_QCOM_KRYO_L2_ACCESSORS=y -CONFIG_QCOM_MDT_LOADER=m -# CONFIG_QCOM_OCMEM is not set -CONFIG_QCOM_PDR_HELPERS=m -CONFIG_QCOM_QMI_HELPERS=m -CONFIG_QCOM_RMTFS_MEM=y -CONFIG_QCOM_RPMH=y -CONFIG_QCOM_RPMHPD=y -CONFIG_QCOM_RPMPD=y -CONFIG_QCOM_SMEM=y -CONFIG_QCOM_SMD_RPM=y -CONFIG_QCOM_SMEM_STATE=y -CONFIG_QCOM_SMP2P=y -CONFIG_QCOM_SMSM=y -CONFIG_QCOM_SOCINFO=m -CONFIG_QCOM_WCNSS_CTRL=y -CONFIG_QCOM_APR=m # end of Qualcomm SoC drivers -CONFIG_ROCKCHIP_GRF=y -CONFIG_ROCKCHIP_IODOMAIN=y -CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_SUNXI_MBUS=y CONFIG_SUNXI_SRAM=y -CONFIG_ARCH_TEGRA_132_SOC=y -CONFIG_ARCH_TEGRA_210_SOC=y -CONFIG_ARCH_TEGRA_186_SOC=y -CONFIG_ARCH_TEGRA_194_SOC=y -CONFIG_ARCH_TEGRA_234_SOC=y -CONFIG_SOC_TEGRA_FUSE=y -CONFIG_SOC_TEGRA_FLOWCTRL=y -CONFIG_SOC_TEGRA_PMC=y -CONFIG_SOC_TEGRA_POWERGATE_BPMP=y # CONFIG_SOC_TI is not set # @@ -8543,20 +7696,15 @@ CONFIG_PM_DEVFREQ=y # DEVFREQ Governors # CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set -# CONFIG_DEVFREQ_GOV_POWERSAVE is not set -# CONFIG_DEVFREQ_GOV_USERSPACE is not set -# CONFIG_DEVFREQ_GOV_PASSIVE is not set +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y +CONFIG_DEVFREQ_GOV_PASSIVE=y # # DEVFREQ Drivers # -# CONFIG_ARM_IMX_BUS_DEVFREQ is not set -# CONFIG_ARM_IMX8M_DDRC_DEVFREQ is not set -# CONFIG_ARM_TEGRA_DEVFREQ is not set -CONFIG_ARM_RK3399_DMC_DEVFREQ=y CONFIG_PM_DEVFREQ_EVENT=y -CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y CONFIG_EXTCON=y # @@ -8567,7 +7715,6 @@ CONFIG_EXTCON_ADC_JACK=m CONFIG_EXTCON_GPIO=y # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_PTN5150 is not set -CONFIG_EXTCON_QCOM_SPMI_MISC=y # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=y @@ -8575,9 +7722,6 @@ CONFIG_EXTCON_USBC_CROS_EC=y # CONFIG_EXTCON_USBC_TUSB320 is not set CONFIG_MEMORY=y # CONFIG_ARM_PL172_MPMC is not set -CONFIG_MTK_SMI=y -CONFIG_TEGRA_MC=y -# CONFIG_TEGRA210_EMC is not set CONFIG_IIO=y CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=y @@ -8676,7 +7820,6 @@ CONFIG_ENVELOPE_DETECTOR=m CONFIG_HI8435=m CONFIG_HX711=m CONFIG_INA2XX_ADC=m -CONFIG_IMX7D_ADC=m CONFIG_LTC2471=m CONFIG_LTC2485=m CONFIG_LTC2496=m @@ -8690,14 +7833,11 @@ CONFIG_MAX9611=m CONFIG_MCP320X=m CONFIG_MCP3422=m CONFIG_MCP3911=m -CONFIG_MEDIATEK_MT6577_AUXADC=m -CONFIG_MESON_SARADC=y CONFIG_NAU7802=m CONFIG_QCOM_VADC_COMMON=y CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=y CONFIG_QCOM_SPMI_ADC5=m -CONFIG_ROCKCHIP_SARADC=m CONFIG_SD_ADC_MODULATOR=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m @@ -9144,30 +8284,18 @@ CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set # CONFIG_PWM_ATMEL_TCB is not set -CONFIG_PWM_BCM2835=m CONFIG_PWM_CROS_EC=m # CONFIG_PWM_DWC is not set # CONFIG_PWM_FSL_FTM is not set -# CONFIG_PWM_HIBVT is not set -# CONFIG_PWM_IMX1 is not set -# CONFIG_PWM_IMX27 is not set -# CONFIG_PWM_IMX_TPM is not set -CONFIG_PWM_MESON=y -CONFIG_PWM_MTK_DISP=m -CONFIG_PWM_MEDIATEK=m # CONFIG_PWM_PCA9685 is not set -# CONFIG_PWM_RASPBERRYPI_POE is not set -CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_SL28CPLD=m CONFIG_PWM_SUN4I=y -# CONFIG_PWM_TEGRA is not set # # IRQ chip support # CONFIG_IRQCHIP=y CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_PM=y CONFIG_ARM_GIC_MAX_NR=1 CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y @@ -9175,41 +8303,18 @@ CONFIG_ARM_GIC_V3_ITS=y CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_GIC_V3_ITS_FSL_MC=y # CONFIG_AL_FIC is not set -CONFIG_BRCMSTB_L2_IRQ=y -CONFIG_HISILICON_IRQ_MBIGEN=y -CONFIG_IMX_GPCV2=y -CONFIG_MVEBU_GICP=y -CONFIG_MVEBU_ICU=y -CONFIG_MVEBU_ODMI=y -CONFIG_MVEBU_PIC=y -CONFIG_MVEBU_SEI=y CONFIG_LS_EXTIRQ=y CONFIG_LS_SCFG_MSI=y CONFIG_PARTITION_PERCPU=y -CONFIG_QCOM_IRQ_COMBINER=y -CONFIG_MESON_IRQ_GPIO=y -CONFIG_QCOM_PDC=y -CONFIG_IMX_IRQSTEER=y -CONFIG_IMX_INTMUX=y -CONFIG_MST_IRQ=y # end of IRQ chip support # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y -CONFIG_RESET_IMX7=y -CONFIG_RESET_MESON=y -# CONFIG_RESET_MESON_AUDIO_ARB is not set -CONFIG_RESET_QCOM_AOSS=y -CONFIG_RESET_QCOM_PDC=m -CONFIG_RESET_RASPBERRYPI=y CONFIG_RESET_SCMI=y CONFIG_RESET_SIMPLE=y CONFIG_RESET_SUNXI=y # CONFIG_RESET_TI_SYSCON is not set -CONFIG_COMMON_RESET_HI3660=y -CONFIG_COMMON_RESET_HI6220=y -CONFIG_RESET_TEGRA_BPMP=y # # PHY Subsystem @@ -9221,64 +8326,21 @@ CONFIG_PHY_SUN4I_USB=y CONFIG_PHY_SUN6I_MIPI_DPHY=m # CONFIG_PHY_SUN9I_USB is not set CONFIG_PHY_SUN50I_USB3=y -CONFIG_PHY_MESON8B_USB2=y -CONFIG_PHY_MESON_GXL_USB2=y -CONFIG_PHY_MESON_G12A_USB2=y -CONFIG_PHY_MESON_G12A_USB3_PCIE=y -CONFIG_PHY_MESON_AXG_PCIE=y -CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y -CONFIG_PHY_MESON_AXG_MIPI_DPHY=y # CONFIG_BCM_KONA_USB2_PHY is not set -CONFIG_PHY_BRCM_USB=y # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_PHY_CADENCE_DPHY is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_SALVO is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set CONFIG_PHY_MIXEL_MIPI_DPHY=m -CONFIG_PHY_HI6220_USB=y -# CONFIG_PHY_HI3660_USB is not set -# CONFIG_PHY_HISTB_COMBPHY is not set -# CONFIG_PHY_HISI_INNO_USB2 is not set -CONFIG_PHY_MVEBU_A3700_COMPHY=y -CONFIG_PHY_MVEBU_A3700_UTMI=y -# CONFIG_PHY_MVEBU_A38X_COMPHY is not set -CONFIG_PHY_MVEBU_CP110_COMPHY=y -# CONFIG_PHY_MVEBU_CP110_UTMI is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_MTK_TPHY is not set -# CONFIG_PHY_MTK_UFS is not set -# CONFIG_PHY_MTK_XSPHY is not set -CONFIG_PHY_MTK_HDMI=m -CONFIG_PHY_MTK_MIPI_DSI=m # CONFIG_PHY_CPCAP_USB is not set # CONFIG_PHY_MAPPHONE_MDM6600 is not set # CONFIG_PHY_OCELOT_SERDES is not set -# CONFIG_PHY_QCOM_APQ8064_SATA is not set -# CONFIG_PHY_QCOM_IPQ4019_USB is not set -# CONFIG_PHY_QCOM_IPQ806X_SATA is not set -# CONFIG_PHY_QCOM_PCIE2 is not set -CONFIG_PHY_QCOM_QMP=y -CONFIG_PHY_QCOM_QUSB2=y CONFIG_PHY_QCOM_USB_HS=y -CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y CONFIG_PHY_QCOM_USB_HSIC=y -# CONFIG_PHY_QCOM_USB_HS_28NM is not set -# CONFIG_PHY_QCOM_USB_SS is not set -# CONFIG_PHY_QCOM_IPQ806X_USB is not set -CONFIG_PHY_ROCKCHIP_DP=y -CONFIG_PHY_ROCKCHIP_DPHY_RX0=m -CONFIG_PHY_ROCKCHIP_EMMC=y -CONFIG_PHY_ROCKCHIP_INNO_HDMI=y -CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m -CONFIG_PHY_ROCKCHIP_PCIE=y -CONFIG_PHY_ROCKCHIP_TYPEC=y -# CONFIG_PHY_ROCKCHIP_USB is not set # CONFIG_PHY_SAMSUNG_USB2 is not set -CONFIG_PHY_TEGRA_XUSB=y -# CONFIG_PHY_TEGRA194_P2U is not set # CONFIG_PHY_TUSB1210 is not set # end of PHY Subsystem @@ -9299,10 +8361,6 @@ CONFIG_ARM_PMU=y CONFIG_ARM_PMU_ACPI=y # CONFIG_ARM_SMMU_V3_PMU is not set # CONFIG_ARM_DSU_PMU is not set -CONFIG_FSL_IMX8_DDR_PMU=m -CONFIG_QCOM_L2_PMU=y -CONFIG_QCOM_L3_PMU=y -# CONFIG_XGENE_PMU is not set # CONFIG_ARM_SPE_PMU is not set # CONFIG_ARM_DMC620_PMU is not set CONFIG_HISI_PMU=y @@ -9329,18 +8387,8 @@ CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y -# CONFIG_NVMEM_IMX_IIM is not set -CONFIG_NVMEM_IMX_OCOTP=y -CONFIG_NVMEM_IMX_OCOTP_SCU=y -CONFIG_MTK_EFUSE=m -CONFIG_QCOM_QFPROM=y # CONFIG_NVMEM_SPMI_SDAM is not set -CONFIG_ROCKCHIP_EFUSE=y -# CONFIG_ROCKCHIP_OTP is not set CONFIG_NVMEM_SUNXI_SID=y -CONFIG_MESON_EFUSE=m -# CONFIG_MESON_MX_EFUSE is not set -# CONFIG_NVMEM_SNVS_LPGPR is not set # CONFIG_NVMEM_RMEM is not set # @@ -9368,26 +8416,7 @@ CONFIG_PM_OPP=y # CONFIG_SIOX is not set CONFIG_SLIMBUS=m CONFIG_SLIM_QCOM_CTRL=m -CONFIG_SLIM_QCOM_NGD_CTRL=m CONFIG_INTERCONNECT=y -# CONFIG_INTERCONNECT_IMX is not set -CONFIG_INTERCONNECT_QCOM=y -CONFIG_INTERCONNECT_QCOM_BCM_VOTER=m -CONFIG_INTERCONNECT_QCOM_MSM8916=m -# CONFIG_INTERCONNECT_QCOM_MSM8939 is not set -# CONFIG_INTERCONNECT_QCOM_MSM8974 is not set -CONFIG_INTERCONNECT_QCOM_OSM_L3=m -# CONFIG_INTERCONNECT_QCOM_QCS404 is not set -CONFIG_INTERCONNECT_QCOM_RPMH_POSSIBLE=y -CONFIG_INTERCONNECT_QCOM_RPMH=m -# CONFIG_INTERCONNECT_QCOM_SC7180 is not set -# CONFIG_INTERCONNECT_QCOM_SDM660 is not set -CONFIG_INTERCONNECT_QCOM_SDM845=m -# CONFIG_INTERCONNECT_QCOM_SDX55 is not set -CONFIG_INTERCONNECT_QCOM_SM8150=m -CONFIG_INTERCONNECT_QCOM_SM8250=m -# CONFIG_INTERCONNECT_QCOM_SM8350 is not set -CONFIG_INTERCONNECT_QCOM_SMD_RPM=m # CONFIG_COUNTER is not set # CONFIG_MOST is not set # end of Device Drivers @@ -10005,7 +9034,6 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m -# CONFIG_CRYPTO_DEV_SAHARA is not set # CONFIG_CRYPTO_DEV_ATMEL_ECC is not set # CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set CONFIG_CRYPTO_DEV_CCP=y @@ -10013,20 +9041,8 @@ CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_SP_CCP=y CONFIG_CRYPTO_DEV_CCP_CRYPTO=m # CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set -# CONFIG_CRYPTO_DEV_MXS_DCP is not set # CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set -CONFIG_CRYPTO_DEV_MARVELL=m -CONFIG_CRYPTO_DEV_MARVELL_CESA=m # CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set -CONFIG_CRYPTO_DEV_QCE=m -CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y -CONFIG_CRYPTO_DEV_QCE_SHA=y -CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y -# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set -# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set -CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 -CONFIG_CRYPTO_DEV_QCOM_RNG=m -CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_SAFEXCEL=m CONFIG_CRYPTO_DEV_CCREE=m |