From 69d550b99c910f53b56308337c9fe77a4822adb0 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 18 Apr 2019 23:37:46 +0200 Subject: [PATCH 1/3] gpu-sunxi: Fix building with Linux 5.1 --- .../gpu-sunxi/patches/fix-building-with-5.1.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 packages/linux-drivers/gpu-sunxi/patches/fix-building-with-5.1.patch diff --git a/packages/linux-drivers/gpu-sunxi/patches/fix-building-with-5.1.patch b/packages/linux-drivers/gpu-sunxi/patches/fix-building-with-5.1.patch new file mode 100644 index 00000000000..2d726cb3820 --- /dev/null +++ b/packages/linux-drivers/gpu-sunxi/patches/fix-building-with-5.1.patch @@ -0,0 +1,14 @@ +diff -Nur a/driver/src/devicedrv/mali/linux/mali_memory.c b/driver/src/devicedrv/mali/linux/mali_memory.c +--- a/driver/src/devicedrv/mali/linux/mali_memory.c 2018-09-13 08:52:20.000000000 +0200 ++++ b/driver/src/devicedrv/mali/linux/mali_memory.c 2019-04-18 19:58:27.389785486 +0200 +@@ -70,7 +70,9 @@ + } + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) ++static vm_fault_t mali_mem_vma_fault(struct vm_fault *vmf) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + static int mali_mem_vma_fault(struct vm_fault *vmf) + #else + static int mali_mem_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) From d36571f635beef72eff9014c696f85313a72e0b3 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 18 Apr 2019 23:37:17 +0200 Subject: [PATCH 2/3] gpu-sunxi-midgard: Fix building with 5.1 --- .../patches/09-fix-building-with-5.1.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 packages/linux-drivers/gpu-sunxi-midgard/patches/09-fix-building-with-5.1.patch diff --git a/packages/linux-drivers/gpu-sunxi-midgard/patches/09-fix-building-with-5.1.patch b/packages/linux-drivers/gpu-sunxi-midgard/patches/09-fix-building-with-5.1.patch new file mode 100644 index 00000000000..b5ba219bbbf --- /dev/null +++ b/packages/linux-drivers/gpu-sunxi-midgard/patches/09-fix-building-with-5.1.patch @@ -0,0 +1,15 @@ +diff -Nur a/driver/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c b/driver/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c +--- a/driver/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c 2019-04-18 22:11:29.000000000 +0200 ++++ b/driver/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem_linux.c 2019-04-18 22:15:09.982940904 +0200 +@@ -1661,7 +1661,11 @@ + static int kbase_cpu_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) + { + #else ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)) + static int kbase_cpu_vm_fault(struct vm_fault *vmf) ++#else ++static vm_fault_t kbase_cpu_vm_fault(struct vm_fault *vmf) ++#endif + { + struct vm_area_struct *vma = vmf->vma; + #endif From f0c2057b866ccabf35b6ebb4b88546bd8380fdc3 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 18 Apr 2019 23:39:27 +0200 Subject: [PATCH 3/3] Allwinner: Update to Linux 5.1 --- .../patches/linux/01-increase-bt-speed.patch | 12 + .../devices/H6/patches/linux/03-VPU.patch | 75 - projects/Allwinner/linux/linux.aarch64.conf | 155 +- projects/Allwinner/linux/linux.arm.conf | 139 +- .../linux/0001-hdmi-sound-improvements.patch | 2 +- .../patches/linux/0002-fixes-from-5.1.patch | 1571 ----------------- ...a-vb2-keep-track-of-timestamp-status.patch | 91 + 7 files changed, 300 insertions(+), 1745 deletions(-) create mode 100644 projects/Allwinner/devices/H3/patches/linux/01-increase-bt-speed.patch delete mode 100644 projects/Allwinner/patches/linux/0002-fixes-from-5.1.patch create mode 100644 projects/Allwinner/patches/linux/0012-Revert-media-vb2-keep-track-of-timestamp-status.patch diff --git a/projects/Allwinner/devices/H3/patches/linux/01-increase-bt-speed.patch b/projects/Allwinner/devices/H3/patches/linux/01-increase-bt-speed.patch new file mode 100644 index 00000000000..c96395e739d --- /dev/null +++ b/projects/Allwinner/devices/H3/patches/linux/01-increase-bt-speed.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi +index 39263e74fbb5..0ec6109ec625 100644 +--- a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi ++++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi +@@ -219,6 +219,7 @@ + + bluetooth { + compatible = "brcm,bcm43438-bt"; ++ max-speed = <1500000>; + clocks = <&rtc 1>; + clock-names = "lpo"; + vbat-supply = <®_vcc3v3>; diff --git a/projects/Allwinner/devices/H6/patches/linux/03-VPU.patch b/projects/Allwinner/devices/H6/patches/linux/03-VPU.patch index 53eb2a04630..a5a1bc9825e 100644 --- a/projects/Allwinner/devices/H6/patches/linux/03-VPU.patch +++ b/projects/Allwinner/devices/H6/patches/linux/03-VPU.patch @@ -125,81 +125,6 @@ index ff11cbeba205..b98add3cdedd 100644 2.20.1 -From b4ca53c594950b80d71ac320b3505a303e7f6092 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 28 Jan 2019 20:05:47 +0100 -Subject: [PATCH 4/6] dt-bindings: sram: sunxi: Add compatible for the H6 SRAM - C1 - -This introduces a new compatible for the H6 SRAM C1 section, that is -compatible with the SRAM C1 section as found on the A10. - -Signed-off-by: Jernej Skrabec ---- - Documentation/devicetree/bindings/sram/sunxi-sram.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/sram/sunxi-sram.txt b/Documentation/devicetree/bindings/sram/sunxi-sram.txt -index ab5a70bb9a64..380246a805f2 100644 ---- a/Documentation/devicetree/bindings/sram/sunxi-sram.txt -+++ b/Documentation/devicetree/bindings/sram/sunxi-sram.txt -@@ -63,6 +63,7 @@ The valid sections compatible for H5 are: - - The valid sections compatible for H6 are: - - allwinner,sun50i-h6-sram-c, allwinner,sun50i-a64-sram-c -+ - allwinner,sun50i-h6-sram-c1, allwinner,sun4i-a10-sram-c1 - - The valid sections compatible for F1C100s are: - - allwinner,suniv-f1c100s-sram-d, allwinner,sun4i-a10-sram-d --- -2.20.1 - - -From 6a505c910b90581b2a980e52f9b6fcb03d234cb7 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 28 Jan 2019 19:53:30 +0100 -Subject: [PATCH 5/6] arm64: dts: allwinner: h6: Add support for the SRAM C1 - section - -Add a node for H6 SRAM C1 section. - -Manual calls it VE SRAM, but for consistency with older SoCs, SRAM C1 -name is used. - -Signed-off-by: Jernej Skrabec ---- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index d93a7add67e7..247dc0a5ce89 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -167,6 +167,20 @@ - reg = <0x0000 0x1e000>; - }; - }; -+ -+ sram_c1: sram@1a00000 { -+ compatible = "mmio-sram"; -+ reg = <0x01a00000 0x200000>; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ ranges = <0 0x01a00000 0x200000>; -+ -+ ve_sram: sram-section@0 { -+ compatible = "allwinner,sun50i-h6-sram-c1", -+ "allwinner,sun4i-a10-sram-c1"; -+ reg = <0x000000 0x200000>; -+ }; -+ }; - }; - - ccu: clock@3001000 { --- -2.20.1 - - From c1b3128ac98c05c0afde4e6e065d6b1f2ae1dfa7 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Mon, 28 Jan 2019 19:59:27 +0100 diff --git a/projects/Allwinner/linux/linux.aarch64.conf b/projects/Allwinner/linux/linux.aarch64.conf index e20e60ca54e..3aca300a6cc 100644 --- a/projects/Allwinner/linux/linux.aarch64.conf +++ b/projects/Allwinner/linux/linux.aarch64.conf @@ -1,15 +1,16 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 5.0.8 Kernel Configuration +# Linux/arm64 5.1.0 Kernel Configuration # # -# Compiler: gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 +# Compiler: aarch64-linux-gnu-gcc.real (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=70200 +CONFIG_GCC_VERSION=80300 CONFIG_CLANG_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -180,6 +181,7 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y @@ -247,6 +249,7 @@ CONFIG_ARCH_SUNXI=y # CONFIG_ARCH_BCM2835 is not set # CONFIG_ARCH_BCM_IPROC is not set # CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_BITMAIN is not set # CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_K3 is not set @@ -305,6 +308,7 @@ CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_HISILICON_ERRATUM_161600802=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y +CONFIG_FUJITSU_ERRATUM_010001=y CONFIG_ARM64_4K_PAGES=y # CONFIG_ARM64_16K_PAGES is not set # CONFIG_ARM64_64K_PAGES is not set @@ -377,6 +381,7 @@ CONFIG_ARM64_CNP=y CONFIG_ARM64_PTR_AUTH=y CONFIG_ARM64_SVE=y CONFIG_ARM64_MODULE_PLTS=y +# CONFIG_ARM64_PSEUDO_NMI is not set # CONFIG_RANDOMIZE_BASE is not set # @@ -389,6 +394,7 @@ CONFIG_EFI=y CONFIG_DMI=y CONFIG_COMPAT=y CONFIG_SYSVIPC_COMPAT=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y # # Power management options @@ -426,6 +432,7 @@ CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set CONFIG_DT_IDLE_STATES=y # @@ -472,7 +479,6 @@ CONFIG_ARM_SCPI_POWER_DOMAIN=y # CONFIG_ARM_SDE_INTERFACE is not set CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set -# CONFIG_INTEL_STRATIX10_SERVICE is not set CONFIG_HAVE_ARM_SMCCC=y # CONFIG_GOOGLE_FIRMWARE is not set @@ -488,6 +494,7 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y CONFIG_EFI_CAPSULE_LOADER=y # CONFIG_EFI_TEST is not set # CONFIG_RESET_ATTACK_MITIGATION is not set +CONFIG_EFI_EARLYCON=y # # Tegra firmware driver @@ -580,6 +587,7 @@ CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_REFCOUNT_FULL=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y # # GCOV-based kernel profiling @@ -588,6 +596,7 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="" CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y @@ -707,6 +716,7 @@ CONFIG_SKB_EXTENSIONS=y CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y +CONFIG_UNIX_SCM=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set CONFIG_XFRM=y @@ -818,6 +828,7 @@ CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=m @@ -959,8 +970,6 @@ CONFIG_NF_DEFRAG_IPV4=m # CONFIG_NF_LOG_ARP is not set CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m -CONFIG_NF_NAT_IPV4=m -CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_IP_NF_IPTABLES=m # CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_ECN is not set @@ -989,8 +998,6 @@ CONFIG_IP_NF_MANGLE=m # CONFIG_NF_DUP_IPV6 is not set CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m -CONFIG_NF_NAT_IPV6=m -CONFIG_NF_NAT_MASQUERADE_IPV6=y CONFIG_IP6_NF_IPTABLES=m # CONFIG_IP6_NF_MATCH_AH is not set # CONFIG_IP6_NF_MATCH_EUI64 is not set @@ -1213,7 +1220,6 @@ CONFIG_NET_9P=y CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set -CONFIG_MAY_USE_DEVLINK=y CONFIG_FAILOVER=y CONFIG_HAVE_EBPF_JIT=y @@ -1257,17 +1263,6 @@ CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set -CONFIG_DMA_CMA=y - -# -# Default contiguous memory area size: -# -CONFIG_CMA_SIZE_MBYTES=256 -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_ALIGNMENT=8 CONFIG_GENERIC_ARCH_TOPOLOGY=y # @@ -1363,9 +1358,9 @@ CONFIG_MTD_NAND_DENALI_DT=y # # CONFIG_MTD_LPDDR is not set CONFIG_MTD_SPI_NOR=y -# CONFIG_MTD_MT81xx_NOR is not set CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y # CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_MTK_QUADSPI is not set # CONFIG_MTD_UBI is not set CONFIG_DTC=y CONFIG_OF=y @@ -1458,6 +1453,7 @@ CONFIG_EEPROM_AT25=m # # VOP Bus Driver # +# CONFIG_VOP_BUS is not set # # Intel MIC Host Driver @@ -1525,7 +1521,6 @@ CONFIG_SCSI_UFSHCD_PLATFORM=m # CONFIG_SCSI_UFS_BSG is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set CONFIG_HAVE_PATA_PLATFORM=y CONFIG_ATA=y CONFIG_ATA_VERBOSE_ERROR=y @@ -1602,6 +1597,7 @@ CONFIG_DUMMY=m # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=m CONFIG_MACVTAP=m +CONFIG_IPVLAN_L3S=y CONFIG_IPVLAN=m # CONFIG_IPVTAP is not set CONFIG_VXLAN=m @@ -1714,6 +1710,7 @@ CONFIG_MDIO_BITBANG=y CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_BUS_MUX_GPIO is not set CONFIG_MDIO_BUS_MUX_MMIOREG=y +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set # CONFIG_MDIO_MSCC_MIIM is not set @@ -1938,7 +1935,6 @@ CONFIG_KEYBOARD_GPIO=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set # CONFIG_KEYBOARD_XTKBD is not set -CONFIG_KEYBOARD_CROS_EC=y # CONFIG_KEYBOARD_CAP11XX is not set # CONFIG_KEYBOARD_BCM is not set # CONFIG_INPUT_MOUSE is not set @@ -2015,6 +2011,7 @@ CONFIG_INPUT_MISC=y # CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MSM_VIBRATOR is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set @@ -2200,7 +2197,6 @@ CONFIG_I2C_RK3X=y # # Other I2C/SMBus bus drivers # -CONFIG_I2C_CROS_EC_TUNNEL=y # CONFIG_I2C_STUB is not set CONFIG_I2C_SLAVE=y # CONFIG_I2C_SLAVE_EEPROM is not set @@ -2221,12 +2217,14 @@ CONFIG_SPI_MEM=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PL022=y CONFIG_SPI_ROCKCHIP=y # CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SUN4I is not set # CONFIG_SPI_SUN6I is not set # CONFIG_SPI_MXIC is not set @@ -2313,12 +2311,14 @@ CONFIG_GPIO_PL061=y # CONFIG_GPIO_SYSCON is not set CONFIG_GPIO_XGENE=y # CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_AMD_FCH is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set CONFIG_GPIO_PCA953X=y @@ -2329,7 +2329,6 @@ CONFIG_GPIO_PCA953X_IRQ=y # # MFD GPIO expanders # -# CONFIG_GPIO_BD9571MWV is not set CONFIG_GPIO_MAX77620=y # @@ -2394,7 +2393,6 @@ CONFIG_AXP20X_POWER=y # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set -# CONFIG_CHARGER_CROS_USBPD is not set CONFIG_HWMON=y # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2601,13 +2599,12 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_ATMEL_FLEXCOM is not set # CONFIG_MFD_ATMEL_HLCDC is not set # CONFIG_MFD_BCM590XX is not set -CONFIG_MFD_BD9571MWV=y +# CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AC100 is not set CONFIG_MFD_AXP20X=y CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=y -CONFIG_MFD_CROS_EC=y -CONFIG_MFD_CROS_EC_CHARDEV=m +# CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_MADERA is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set @@ -2679,6 +2676,8 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set # CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set @@ -2687,6 +2686,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_STPMIC1 is not set CONFIG_MFD_VEXPRESS_SYSREG=y # CONFIG_RAVE_SP_CORE is not set CONFIG_REGULATOR=y @@ -2699,7 +2699,6 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AXP20X=y -CONFIG_REGULATOR_BD9571MWV=y # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set CONFIG_REGULATOR_FAN53555=y @@ -3066,10 +3065,6 @@ CONFIG_VIDEO_MT9V011=m # Miscellaneous helper chips # -# -# Sensors used on soc_camera driver -# - # # Media SPI Adapters # @@ -3259,8 +3254,13 @@ CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_NXP_TDA9950 is not set + +# +# ARM devices +# # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set # # ACP (Audio CoProcessor) Configuration @@ -3297,6 +3297,7 @@ CONFIG_DRM_PANEL_SIMPLE=m # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set # CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +# CONFIG_DRM_PANEL_TPO_TPG110 is not set CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y @@ -3323,6 +3324,7 @@ CONFIG_DRM_DW_HDMI=y # CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set CONFIG_DRM_DW_HDMI_I2S_AUDIO=y CONFIG_DRM_DW_HDMI_CEC=y +# CONFIG_DRM_ETNAVIV is not set # CONFIG_DRM_ARCPGU is not set # CONFIG_DRM_HISI_KIRIN is not set # CONFIG_DRM_MXSFB is not set @@ -3467,9 +3469,11 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set # CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set # # STMicroelectronics STM32 SOC audio support @@ -3486,6 +3490,8 @@ CONFIG_SND_SUN4I_I2S=y CONFIG_SND_SUN4I_SPDIF=y CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y # CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set # CONFIG_ZX_TDM is not set CONFIG_SND_SOC_I2C_AND_SPI=y @@ -3513,6 +3519,7 @@ CONFIG_SND_SOC_AK4613=m # CONFIG_SND_SOC_CS35L33 is not set # CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set # CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set @@ -3524,6 +3531,7 @@ CONFIG_SND_SOC_AK4613=m # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_DMIC is not set @@ -3555,6 +3563,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RK3328 is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_SGTL5000 is not set @@ -3601,6 +3610,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set # CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8974 is not set @@ -3609,6 +3619,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8822 is not set @@ -3616,9 +3627,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y -# CONFIG_SND_SIMPLE_SCU_CARD is not set CONFIG_SND_AUDIO_GRAPH_CARD=y -# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # # HID support @@ -3658,12 +3667,12 @@ CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set # CONFIG_HID_HOLTEK is not set -# CONFIG_HID_GOOGLE_HAMMER is not set # CONFIG_HID_GT683R is not set # CONFIG_HID_KEYTOUCH is not set # CONFIG_HID_KYE is not set # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set # CONFIG_HID_GYRATION is not set # CONFIG_HID_ICADE is not set CONFIG_HID_ITE=y @@ -3680,6 +3689,7 @@ CONFIG_HID_LOGITECH=y # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set # CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set # CONFIG_HID_MAYFLASH is not set CONFIG_HID_REDRAGON=y CONFIG_HID_MICROSOFT=y @@ -3748,6 +3758,7 @@ CONFIG_USB_OTG=y # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_OTG_FSM is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 # CONFIG_USB_MON is not set # CONFIG_USB_WUSB_CBAF is not set @@ -3761,6 +3772,7 @@ CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set @@ -4066,6 +4078,7 @@ CONFIG_RTC_INTF_DEV=y # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set # CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set @@ -4092,8 +4105,10 @@ CONFIG_RTC_DRV_RK808=m # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set # CONFIG_RTC_DRV_RV8803 is not set CONFIG_RTC_DRV_S5M=y +# CONFIG_RTC_DRV_SD3078 is not set # # SPI RTC drivers @@ -4142,7 +4157,6 @@ CONFIG_RTC_DRV_EFI=y # CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_V3020 is not set # CONFIG_RTC_DRV_ZYNQMP is not set -CONFIG_RTC_DRV_CROS_EC=y # # on-CPU RTC drivers @@ -4150,6 +4164,7 @@ CONFIG_RTC_DRV_CROS_EC=y # CONFIG_RTC_DRV_PL030 is not set CONFIG_RTC_DRV_PL031=y CONFIG_RTC_DRV_SUN6I=y +# CONFIG_RTC_DRV_CADENCE is not set # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_R7301 is not set @@ -4157,7 +4172,6 @@ CONFIG_RTC_DRV_SUN6I=y # # HID Sensor RTC drivers # -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -4174,6 +4188,7 @@ CONFIG_BCM_SBA_RAID=m CONFIG_DMA_SUN6I=y # CONFIG_DW_AXI_DMAC is not set # CONFIG_FSL_EDMA is not set +# CONFIG_FSL_QDMA is not set # CONFIG_INTEL_IDMA64 is not set CONFIG_MV_XOR_V2=y CONFIG_PL330_DMA=y @@ -4226,7 +4241,6 @@ CONFIG_RTL8723BS=m # # Analog to digital converters # -# CONFIG_AD7606 is not set # CONFIG_AD7780 is not set # CONFIG_AD7816 is not set # CONFIG_AD7192 is not set @@ -4241,7 +4255,6 @@ CONFIG_RTL8723BS=m # Capacitance to digital converters # # CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set # CONFIG_AD7746 is not set # @@ -4273,6 +4286,10 @@ CONFIG_STAGING_MEDIA=y CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_SUNXI_CEDRUS=y +# +# soc_camera sensor drivers +# + # # Android # @@ -4288,7 +4305,6 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # CONFIG_PI433 is not set -# CONFIG_MTK_MMC is not set # # Gasket devices @@ -4296,11 +4312,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_EROFS_FS is not set # CONFIG_GOLDFISH is not set -CONFIG_CHROME_PLATFORMS=y -CONFIG_CROS_EC_CTL=m -CONFIG_CROS_EC_I2C=y -CONFIG_CROS_EC_SPI=y -CONFIG_CROS_EC_PROTO=y +# CONFIG_CHROME_PLATFORMS is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -4326,6 +4338,7 @@ CONFIG_COMMON_CLK_SCPI=y # CONFIG_COMMON_CLK_XGENE is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set CONFIG_SUNXI_CCU=y CONFIG_SUN50I_A64_CCU=y CONFIG_SUN50I_H6_CCU=y @@ -4428,10 +4441,10 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_MAX3355 is not set +# CONFIG_EXTCON_PTN5150 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=y -CONFIG_EXTCON_USBC_CROS_EC=y CONFIG_MEMORY=y # CONFIG_ARM_PL172_MPMC is not set CONFIG_IIO=y @@ -4439,7 +4452,6 @@ CONFIG_IIO_BUFFER=y # CONFIG_IIO_BUFFER_CB is not set # CONFIG_IIO_BUFFER_HW_CONSUMER is not set CONFIG_IIO_KFIFO_BUF=m -CONFIG_IIO_TRIGGERED_BUFFER=m # CONFIG_IIO_CONFIGFS is not set CONFIG_IIO_TRIGGER=y CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 @@ -4488,7 +4500,10 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_AD7291 is not set # CONFIG_AD7298 is not set # CONFIG_AD7476 is not set +# CONFIG_AD7606_IFACE_PARALLEL is not set +# CONFIG_AD7606_IFACE_SPI is not set # CONFIG_AD7766 is not set +# CONFIG_AD7768_1 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set @@ -4528,6 +4543,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set +# CONFIG_TI_ADS124S08 is not set # CONFIG_TI_TLC4541 is not set # CONFIG_VF610_ADC is not set @@ -4548,9 +4564,10 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_BME680 is not set # CONFIG_CCS811 is not set # CONFIG_IAQCORE is not set +# CONFIG_PMS7003 is not set +# CONFIG_SENSIRION_SGP30 is not set +# CONFIG_SPS30 is not set # CONFIG_VZ89X is not set -CONFIG_IIO_CROS_EC_SENSORS_CORE=m -CONFIG_IIO_CROS_EC_SENSORS=m # # Hid Sensor IIO Common @@ -4599,6 +4616,7 @@ CONFIG_IIO_CROS_EC_SENSORS=m # CONFIG_TI_DAC082S085 is not set # CONFIG_TI_DAC5571 is not set # CONFIG_TI_DAC7311 is not set +# CONFIG_TI_DAC7612 is not set # CONFIG_VF610_DAC is not set # @@ -4681,7 +4699,6 @@ CONFIG_IIO_CROS_EC_SENSORS=m # CONFIG_CM3323 is not set # CONFIG_CM3605 is not set # CONFIG_CM36651 is not set -CONFIG_IIO_CROS_EC_LIGHT_PROX=m # CONFIG_GP2AP020A00F is not set # CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29028 is not set @@ -4691,6 +4708,7 @@ CONFIG_IIO_CROS_EC_LIGHT_PROX=m # CONFIG_LTR501 is not set # CONFIG_LV0104CS is not set # CONFIG_MAX44000 is not set +# CONFIG_MAX44009 is not set # CONFIG_OPT3001 is not set # CONFIG_PA12203001 is not set # CONFIG_SI1133 is not set @@ -4764,7 +4782,6 @@ CONFIG_IIO_CROS_EC_LIGHT_PROX=m # # CONFIG_ABP060MG is not set # CONFIG_BMP280 is not set -CONFIG_IIO_CROS_EC_BARO=m # CONFIG_HP03 is not set # CONFIG_MPL115_I2C is not set # CONFIG_MPL115_SPI is not set @@ -4810,7 +4827,6 @@ CONFIG_IIO_CROS_EC_BARO=m # CONFIG_TSYS02D is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y -CONFIG_PWM_CROS_EC=m # CONFIG_PWM_FSL_FTM is not set # CONFIG_PWM_PCA9685 is not set # CONFIG_PWM_SUN4I is not set @@ -4838,9 +4854,11 @@ CONFIG_RESET_SUNXI=y CONFIG_GENERIC_PHY=y CONFIG_PHY_XGENE=y CONFIG_PHY_SUN4I_USB=y +# CONFIG_PHY_SUN6I_MIPI_DPHY is not set # CONFIG_PHY_SUN9I_USB is not set # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_CADENCE_DP is not set +# CONFIG_PHY_CADENCE_DPHY is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_PXA_28NM_HSIC is not set @@ -4885,11 +4903,13 @@ CONFIG_NVMEM=y CONFIG_PM_OPP=y # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_VALIDATE_FS_PARSER=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set @@ -4897,7 +4917,6 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set @@ -4927,7 +4946,6 @@ CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y # CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FS_ENCRYPTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y @@ -5162,13 +5180,14 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_SECURITY_APPARMOR is not set # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_YAMA is not set +# CONFIG_SECURITY_SAFESETID is not set CONFIG_INTEGRITY=y # CONFIG_INTEGRITY_SIGNATURE is not set CONFIG_INTEGRITY_AUDIT=y # CONFIG_IMA is not set # CONFIG_EVM is not set CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" +CONFIG_LSM="yama,loadpin,safesetid,integrity" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y @@ -5399,7 +5418,8 @@ CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y @@ -5407,6 +5427,18 @@ CONFIG_ARCH_HAS_DMA_MMAP_PGPROT=y CONFIG_SWIOTLB=y CONFIG_DMA_REMAP=y CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -5437,6 +5469,7 @@ CONFIG_SBITMAP=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -5456,7 +5489,6 @@ CONFIG_FRAME_WARN=2048 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set @@ -5474,6 +5506,7 @@ CONFIG_DEBUG_KERNEL=y # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set @@ -5562,7 +5595,6 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set @@ -5585,6 +5617,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_VMALLOC is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set # CONFIG_FIND_BIT_BENCHMARK is not set @@ -5594,6 +5627,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_STATIC_KEYS is not set # CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set CONFIG_MEMTEST=y # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set @@ -5601,6 +5635,7 @@ CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set +CONFIG_UBSAN_ALIGNMENT=y CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set diff --git a/projects/Allwinner/linux/linux.arm.conf b/projects/Allwinner/linux/linux.arm.conf index e1ca80ee0dd..a68fd1f7096 100644 --- a/projects/Allwinner/linux/linux.arm.conf +++ b/projects/Allwinner/linux/linux.arm.conf @@ -1,15 +1,16 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.0.8 Kernel Configuration +# Linux/arm 5.1.0 Kernel Configuration # # -# Compiler: gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 +# Compiler: armv7ve-libreelec-linux-gnueabi-gcc-8.3.0 (GCC) 8.3.0 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=70200 +CONFIG_GCC_VERSION=80300 CONFIG_CLANG_VERSION=0 CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y @@ -178,6 +179,7 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y @@ -278,6 +280,7 @@ CONFIG_ARCH_MULTI_V6_V7=y # CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MILBEAUT is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_NPCM is not set @@ -488,6 +491,7 @@ CONFIG_CPUFREQ_DT_PLATDEV=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set # # ARM CPU Idle Drivers @@ -536,7 +540,6 @@ CONFIG_ARM_PSCI_FW=y # CONFIG_ARM_PSCI_CHECKER is not set # CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_FW_CFG_SYSFS is not set -# CONFIG_INTEL_STRATIX10_SERVICE is not set CONFIG_HAVE_ARM_SMCCC=y # CONFIG_GOOGLE_FIRMWARE is not set @@ -569,6 +572,7 @@ CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_32BIT_OFF_T=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y CONFIG_HAVE_CLK=y @@ -594,6 +598,7 @@ CONFIG_ARCH_MMAP_RND_BITS=8 CONFIG_CLONE_BACKWARDS=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -608,8 +613,9 @@ CONFIG_REFCOUNT_FULL=y # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_PLUGIN_HOSTCC="" +CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y @@ -730,6 +736,7 @@ CONFIG_SKB_EXTENSIONS=y CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y +CONFIG_UNIX_SCM=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set CONFIG_XFRM=y @@ -837,6 +844,7 @@ CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y # CONFIG_NF_TABLES is not set CONFIG_NETFILTER_XTABLES=m @@ -972,8 +980,6 @@ CONFIG_NF_DEFRAG_IPV4=m # CONFIG_NF_LOG_ARP is not set # CONFIG_NF_LOG_IPV4 is not set # CONFIG_NF_REJECT_IPV4 is not set -CONFIG_NF_NAT_IPV4=m -CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_IP_NF_IPTABLES=m # CONFIG_IP_NF_MATCH_AH is not set # CONFIG_IP_NF_MATCH_ECN is not set @@ -997,7 +1003,6 @@ CONFIG_IP_NF_TARGET_REDIRECT=m # CONFIG_NF_DUP_IPV6 is not set # CONFIG_NF_REJECT_IPV6 is not set # CONFIG_NF_LOG_IPV6 is not set -# CONFIG_NF_NAT_IPV6 is not set # CONFIG_IP6_NF_IPTABLES is not set CONFIG_NF_DEFRAG_IPV6=m # CONFIG_BRIDGE_NF_EBTABLES is not set @@ -1170,16 +1175,23 @@ CONFIG_BT_LEDS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m +CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m # CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_SERDEV=y CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_NOKIA is not set CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIUART_AG6XX=y CONFIG_BT_HCIUART_MRVL=y CONFIG_BT_HCIBCM203X=m @@ -1189,6 +1201,7 @@ CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m CONFIG_BT_ATH3K=m +CONFIG_BT_MTKUART=m # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_WIRELESS=y @@ -1229,7 +1242,6 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y # CONFIG_NET_DEVLINK is not set -CONFIG_MAY_USE_DEVLINK=y # CONFIG_FAILOVER is not set CONFIG_HAVE_EBPF_JIT=y @@ -1271,17 +1283,6 @@ CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set -CONFIG_DMA_CMA=y - -# -# Default contiguous memory area size: -# -CONFIG_CMA_SIZE_MBYTES=256 -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_ALIGNMENT=8 CONFIG_GENERIC_ARCH_TOPOLOGY=y # @@ -1390,6 +1391,7 @@ CONFIG_EEPROM_93CX6=m # # VOP Bus Driver # +# CONFIG_VOP_BUS is not set # # Intel MIC Host Driver @@ -1450,7 +1452,6 @@ CONFIG_SCSI_LOWLEVEL=y # CONFIG_SCSI_UFSHCD is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set CONFIG_ATA=y CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y @@ -1524,6 +1525,7 @@ CONFIG_DUMMY=m # CONFIG_NET_TEAM is not set CONFIG_MACVLAN=m # CONFIG_MACVTAP is not set +CONFIG_IPVLAN_L3S=y CONFIG_IPVLAN=m # CONFIG_IPVTAP is not set CONFIG_VXLAN=m @@ -1587,6 +1589,7 @@ CONFIG_NET_VENDOR_NI=y # CONFIG_ETHOC is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCA7000_SPI is not set +# CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set CONFIG_NET_VENDOR_RENESAS=y @@ -1614,6 +1617,7 @@ CONFIG_MDIO_BUS=y CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_BUS_MUX_GPIO is not set # CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set # CONFIG_MDIO_HISI_FEMAC is not set # CONFIG_MDIO_MSCC_MIIM is not set CONFIG_MDIO_SUN4I=y @@ -1909,6 +1913,7 @@ CONFIG_INPUT_MISC=y # CONFIG_INPUT_ATMEL_CAPTOUCH is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MSM_VIBRATOR is not set # CONFIG_INPUT_MMA8450 is not set # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set @@ -2010,7 +2015,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set # CONFIG_SERIAL_ST_ASC is not set -# CONFIG_SERIAL_DEV_BUS is not set +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y # CONFIG_TTY_PRINTK is not set # CONFIG_HVC_DCC is not set # CONFIG_IPMI_HANDLER is not set @@ -2093,11 +2099,13 @@ CONFIG_SPI_MASTER=y # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_CADENCE is not set # CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_NXP_FLEXSPI is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_FSL_SPI is not set # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SIFIVE is not set CONFIG_SPI_SUN4I=y CONFIG_SPI_SUN6I=y # CONFIG_SPI_MXIC is not set @@ -2182,12 +2190,14 @@ CONFIG_GPIO_SYSFS=y # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_ZEVIO is not set +# CONFIG_GPIO_AMD_FCH is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set @@ -2540,6 +2550,8 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_LOCHNAGAR is not set # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set @@ -2548,6 +2560,8 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_STPMIC1 is not set +# CONFIG_RAVE_SP_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y @@ -2901,10 +2915,6 @@ CONFIG_VIDEO_OV7640=m # Miscellaneous helper chips # -# -# Sensors used on soc_camera driver -# - # # Media SPI Adapters # @@ -3087,8 +3097,13 @@ CONFIG_DRM_KMS_CMA_HELPER=y # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_NXP_TDA9950 is not set + +# +# ARM devices +# # CONFIG_DRM_HDLCD is not set # CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set # # ACP (Audio CoProcessor) Configuration @@ -3157,6 +3172,7 @@ CONFIG_DRM_DW_HDMI=y CONFIG_DRM_DW_HDMI_I2S_AUDIO=y CONFIG_DRM_DW_HDMI_CEC=y # CONFIG_DRM_STI is not set +# CONFIG_DRM_ETNAVIV is not set # CONFIG_DRM_ARCPGU is not set # CONFIG_DRM_MXSFB is not set # CONFIG_DRM_TINYDRM is not set @@ -3272,9 +3288,11 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_FSL_SSI is not set # CONFIG_SND_SOC_FSL_SPDIF is not set # CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set # CONFIG_SND_SOC_IMX_AUDMUX is not set # CONFIG_SND_I2S_HI6210_I2S is not set # CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set # # STMicroelectronics STM32 SOC audio support @@ -3290,6 +3308,8 @@ CONFIG_SND_SUN4I_I2S=y CONFIG_SND_SUN4I_SPDIF=y CONFIG_SND_SUN8I_ADDA_PR_REGMAP=y # CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set # CONFIG_SND_SOC_XTFPGA_I2S is not set # CONFIG_ZX_TDM is not set CONFIG_SND_SOC_I2C_AND_SPI=y @@ -3317,6 +3337,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS35L33 is not set # CONFIG_SND_SOC_CS35L34 is not set # CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set # CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set @@ -3328,6 +3349,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_CS4271_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set # CONFIG_SND_SOC_DMIC is not set @@ -3358,6 +3380,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM512x_I2C is not set # CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RK3328 is not set # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set # CONFIG_SND_SOC_SGTL5000 is not set @@ -3404,6 +3427,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_WM8804_I2C is not set # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set # CONFIG_SND_SOC_WM8960 is not set # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8974 is not set @@ -3412,6 +3436,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_ZX_AUD96P22 is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set # CONFIG_SND_SOC_NAU8540 is not set # CONFIG_SND_SOC_NAU8810 is not set # CONFIG_SND_SOC_NAU8822 is not set @@ -3419,9 +3444,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y # CONFIG_SND_SOC_TPA6130A2 is not set CONFIG_SND_SIMPLE_CARD_UTILS=y CONFIG_SND_SIMPLE_CARD=y -CONFIG_SND_SIMPLE_SCU_CARD=y CONFIG_SND_AUDIO_GRAPH_CARD=y -CONFIG_SND_AUDIO_GRAPH_SCU_CARD=y # # HID support @@ -3466,6 +3489,7 @@ CONFIG_HID_EZKEY=y # CONFIG_HID_KYE is not set # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set # CONFIG_HID_GYRATION is not set # CONFIG_HID_ICADE is not set # CONFIG_HID_ITE is not set @@ -3482,6 +3506,7 @@ CONFIG_HID_LOGITECH=y # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set # CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set # CONFIG_HID_MAYFLASH is not set # CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y @@ -3549,6 +3574,7 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 CONFIG_USB_MON=m # CONFIG_USB_WUSB_CBAF is not set @@ -3560,6 +3586,7 @@ CONFIG_USB_MON=m CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_ROOT_HUB_TT is not set CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_EHCI_FSL is not set CONFIG_USB_EHCI_HCD_PLATFORM=y # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set @@ -3871,6 +3898,7 @@ CONFIG_RTC_INTF_DEV=y # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set # CONFIG_RTC_DRV_ABX80X is not set # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set @@ -3895,7 +3923,9 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set # CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set # # SPI RTC drivers @@ -3948,6 +3978,7 @@ CONFIG_RTC_I2C_AND_SPI=y # on-CPU RTC drivers # CONFIG_RTC_DRV_SUN6I=y +# CONFIG_RTC_DRV_CADENCE is not set # CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_R7301 is not set @@ -3955,7 +3986,6 @@ CONFIG_RTC_DRV_SUN6I=y # # HID Sensor RTC drivers # -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -3969,6 +3999,7 @@ CONFIG_DMA_OF=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_INTEL_IDMA64 is not set # CONFIG_NBPFAXI_DMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4017,7 +4048,6 @@ CONFIG_STAGING=y # # Analog to digital converters # -# CONFIG_AD7606 is not set # CONFIG_AD7780 is not set # CONFIG_AD7816 is not set # CONFIG_AD7192 is not set @@ -4032,7 +4062,6 @@ CONFIG_STAGING=y # Capacitance to digital converters # # CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set # CONFIG_AD7746 is not set # @@ -4064,6 +4093,10 @@ CONFIG_STAGING_MEDIA=y CONFIG_VIDEO_SUNXI=y CONFIG_VIDEO_SUNXI_CEDRUS=y +# +# soc_camera sensor drivers +# + # # Android # @@ -4079,7 +4112,6 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # CONFIG_PI433 is not set -# CONFIG_MTK_MMC is not set # # Gasket devices @@ -4108,6 +4140,7 @@ CONFIG_COMMON_CLK=y # CONFIG_CLK_QORIQ is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set CONFIG_SUNXI_CCU=y CONFIG_SUN8I_A23_CCU=y CONFIG_SUN8I_A33_CCU=y @@ -4197,6 +4230,7 @@ CONFIG_EXTCON=y # CONFIG_EXTCON_ADC_JACK is not set # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_MAX3355 is not set +# CONFIG_EXTCON_PTN5150 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set @@ -4253,7 +4287,10 @@ CONFIG_IIO_SW_TRIGGER=y # CONFIG_AD7291 is not set # CONFIG_AD7298 is not set # CONFIG_AD7476 is not set +# CONFIG_AD7606_IFACE_PARALLEL is not set +# CONFIG_AD7606_IFACE_SPI is not set # CONFIG_AD7766 is not set +# CONFIG_AD7768_1 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set @@ -4291,6 +4328,7 @@ CONFIG_SUN4I_GPADC=y # CONFIG_TI_ADS1015 is not set # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set +# CONFIG_TI_ADS124S08 is not set # CONFIG_TI_TLC4541 is not set # CONFIG_VF610_ADC is not set @@ -4311,6 +4349,9 @@ CONFIG_SUN4I_GPADC=y # CONFIG_BME680 is not set # CONFIG_CCS811 is not set # CONFIG_IAQCORE is not set +# CONFIG_PMS7003 is not set +# CONFIG_SENSIRION_SGP30 is not set +# CONFIG_SPS30 is not set # CONFIG_VZ89X is not set # @@ -4360,6 +4401,7 @@ CONFIG_SUN4I_GPADC=y # CONFIG_TI_DAC082S085 is not set # CONFIG_TI_DAC5571 is not set # CONFIG_TI_DAC7311 is not set +# CONFIG_TI_DAC7612 is not set # CONFIG_VF610_DAC is not set # @@ -4451,6 +4493,7 @@ CONFIG_SUN4I_GPADC=y # CONFIG_LTR501 is not set # CONFIG_LV0104CS is not set # CONFIG_MAX44000 is not set +# CONFIG_MAX44009 is not set # CONFIG_OPT3001 is not set # CONFIG_PA12203001 is not set # CONFIG_SI1133 is not set @@ -4585,10 +4628,13 @@ CONFIG_RESET_SUNXI=y # PHY Subsystem # CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PHY_MIPI_DPHY=y CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_SUN6I_MIPI_DPHY=y CONFIG_PHY_SUN9I_USB=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_CADENCE_DP is not set +# CONFIG_PHY_CADENCE_DPHY is not set # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_FSL_IMX8MQ_USB is not set # CONFIG_PHY_PXA_28NM_HSIC is not set @@ -4626,11 +4672,13 @@ CONFIG_NVMEM_SUNXI_SID=y CONFIG_PM_OPP=y # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_VALIDATE_FS_PARSER=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set @@ -4638,7 +4686,6 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_ENCRYPTION is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set @@ -4669,7 +4716,6 @@ CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y # CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FS_ENCRYPTION is not set # CONFIG_F2FS_FAULT_INJECTION is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y @@ -4868,7 +4914,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" +CONFIG_LSM="yama,loadpin,safesetid,integrity" CONFIG_CRYPTO=y # @@ -5084,8 +5130,22 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y +CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y CONFIG_DMA_REMAP=y +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=256 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y @@ -5115,6 +5175,7 @@ CONFIG_SBITMAP=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -5130,7 +5191,6 @@ CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set @@ -5146,6 +5206,7 @@ CONFIG_DEBUG_KERNEL=y # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_OBJECTS is not set @@ -5230,7 +5291,6 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set -# CONFIG_DMA_API_DEBUG is not set CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_LKDTM is not set # CONFIG_TEST_LIST_SORT is not set @@ -5253,6 +5313,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set # CONFIG_TEST_LKM is not set +# CONFIG_TEST_VMALLOC is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set # CONFIG_FIND_BIT_BENCHMARK is not set @@ -5262,12 +5323,14 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_STATIC_KEYS is not set # CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set # CONFIG_UBSAN is not set +CONFIG_UBSAN_ALIGNMENT=y CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_PTDUMP_DEBUGFS is not set diff --git a/projects/Allwinner/patches/linux/0001-hdmi-sound-improvements.patch b/projects/Allwinner/patches/linux/0001-hdmi-sound-improvements.patch index d62f69510e3..105944ec2ac 100644 --- a/projects/Allwinner/patches/linux/0001-hdmi-sound-improvements.patch +++ b/projects/Allwinner/patches/linux/0001-hdmi-sound-improvements.patch @@ -401,9 +401,9 @@ index ccb5aa8468e0..e78be449e763 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -156,6 +156,8 @@ void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense); - void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate); void dw_hdmi_audio_enable(struct dw_hdmi *hdmi); void dw_hdmi_audio_disable(struct dw_hdmi *hdmi); + void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi); +void dw_hdmi_set_update_eld(struct dw_hdmi *hdmi, + void (*update_eld)(struct device *dev, u8 *eld)); diff --git a/projects/Allwinner/patches/linux/0002-fixes-from-5.1.patch b/projects/Allwinner/patches/linux/0002-fixes-from-5.1.patch deleted file mode 100644 index 0744eecd7a4..00000000000 --- a/projects/Allwinner/patches/linux/0002-fixes-from-5.1.patch +++ /dev/null @@ -1,1571 +0,0 @@ -From e2d8ffe2e76028457759988ba6216fd13eeea01b Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Tue, 13 Nov 2018 03:52:18 -0500 -Subject: [PATCH] media: v4l2-mem2mem: add v4l2_m2m_buf_copy_data helper - function - -Memory-to-memory devices should copy various parts of -struct v4l2_buffer from the output buffer to the capture buffer. - -Add a helper function that does that to simplify the driver code. - -Signed-off-by: Hans Verkuil -Reviewed-by: Paul Kocialkowski -Reviewed-by: Alexandre Courbot -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/v4l2-core/v4l2-mem2mem.c | 20 ++++++++++++++++++++ - include/media/v4l2-mem2mem.h | 20 ++++++++++++++++++++ - 2 files changed, 40 insertions(+) - -diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c -index 5bbdec55b7d7..631f4e2aa942 100644 ---- a/drivers/media/v4l2-core/v4l2-mem2mem.c -+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c -@@ -975,6 +975,26 @@ void v4l2_m2m_buf_queue(struct v4l2_m2m_ctx *m2m_ctx, - } - EXPORT_SYMBOL_GPL(v4l2_m2m_buf_queue); - -+void v4l2_m2m_buf_copy_data(const struct vb2_v4l2_buffer *out_vb, -+ struct vb2_v4l2_buffer *cap_vb, -+ bool copy_frame_flags) -+{ -+ u32 mask = V4L2_BUF_FLAG_TIMECODE | V4L2_BUF_FLAG_TSTAMP_SRC_MASK; -+ -+ if (copy_frame_flags) -+ mask |= V4L2_BUF_FLAG_KEYFRAME | V4L2_BUF_FLAG_PFRAME | -+ V4L2_BUF_FLAG_BFRAME; -+ -+ cap_vb->vb2_buf.timestamp = out_vb->vb2_buf.timestamp; -+ -+ if (out_vb->flags & V4L2_BUF_FLAG_TIMECODE) -+ cap_vb->timecode = out_vb->timecode; -+ cap_vb->field = out_vb->field; -+ cap_vb->flags &= ~mask; -+ cap_vb->flags |= out_vb->flags & mask; -+} -+EXPORT_SYMBOL_GPL(v4l2_m2m_buf_copy_data); -+ - void v4l2_m2m_request_queue(struct media_request *req) - { - struct media_request_object *obj, *obj_safe; -diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h -index 5467264771ec..43e447dcf69d 100644 ---- a/include/media/v4l2-mem2mem.h -+++ b/include/media/v4l2-mem2mem.h -@@ -622,6 +622,26 @@ v4l2_m2m_dst_buf_remove_by_idx(struct v4l2_m2m_ctx *m2m_ctx, unsigned int idx) - return v4l2_m2m_buf_remove_by_idx(&m2m_ctx->cap_q_ctx, idx); - } - -+/** -+ * v4l2_m2m_buf_copy_data() - copy buffer data from the output buffer to the -+ * capture buffer -+ * -+ * @out_vb: the output buffer that is the source of the data. -+ * @cap_vb: the capture buffer that will receive the data. -+ * @copy_frame_flags: copy the KEY/B/PFRAME flags as well. -+ * -+ * This helper function copies the timestamp, timecode (if the TIMECODE -+ * buffer flag was set), field and the TIMECODE, KEYFRAME, BFRAME, PFRAME -+ * and TSTAMP_SRC_MASK flags from @out_vb to @cap_vb. -+ * -+ * If @copy_frame_flags is false, then the KEYFRAME, BFRAME and PFRAME -+ * flags are not copied. This is typically needed for encoders that -+ * set this bits explicitly. -+ */ -+void v4l2_m2m_buf_copy_data(const struct vb2_v4l2_buffer *out_vb, -+ struct vb2_v4l2_buffer *cap_vb, -+ bool copy_frame_flags); -+ - /* v4l2 request helper */ - - void v4l2_m2m_request_queue(struct media_request *req); --- -2.20.1 - -From c2eb8effb265ac5cdd960d8e61ecb931e9c767cd Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Wed, 24 Oct 2018 06:50:34 -0400 -Subject: [PATCH] media: videodev2.h: add v4l2_timeval_to_ns inline function - -We want to be able to uniquely identify buffers for stateless -codecs. The internal timestamp (a u64) as stored internally in the -kernel is a suitable candidate for that, but in struct v4l2_buffer -it is represented as a struct timeval. - -Add a v4l2_timeval_to_ns() function that converts the struct timeval -into a u64 in the same way that the kernel does. This makes it possible -to use this u64 elsewhere as a unique identifier of the buffer. - -Since timestamps are also copied from the output buffer to the -corresponding capture buffer(s) by M2M devices, the u64 can be -used to refer to both output and capture buffers. - -The plan is that in the future we redesign struct v4l2_buffer and use -u64 for the timestamp instead of a struct timeval (which has lots of -problems with 32 vs 64 bit and y2038 layout changes), and then there -is no more need to use this function. - -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - include/uapi/linux/videodev2.h | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index b5671ce2724f..d6eed479c3a6 100644 ---- a/include/uapi/linux/videodev2.h -+++ b/include/uapi/linux/videodev2.h -@@ -973,6 +973,18 @@ struct v4l2_buffer { - }; - }; - -+/** -+ * v4l2_timeval_to_ns - Convert timeval to nanoseconds -+ * @ts: pointer to the timeval variable to be converted -+ * -+ * Returns the scalar nanosecond representation of the timeval -+ * parameter. -+ */ -+static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) -+{ -+ return (__u64)tv->tv_sec * 1000000000ULL + tv->tv_usec * 1000; -+} -+ - /* Flags for 'flags' field */ - /* Buffer is mapped (flag) */ - #define V4L2_BUF_FLAG_MAPPED 0x00000001 --- -2.20.1 - -From 245ede423b43a6e081e94e0e5d4e895bd1f31228 Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Wed, 24 Oct 2018 06:51:01 -0400 -Subject: [PATCH] media: vb2: add vb2_find_timestamp() - -Use v4l2_timeval_to_ns instead of timeval_to_ns to ensure that -both kernelspace and userspace will use the same conversion -function. - -Next add a new vb2_find_timestamp() function to find buffers -with a specific timestamp. - -This function will only look at DEQUEUED and DONE buffers, i.e. -buffers that are already processed. - -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - .../media/common/videobuf2/videobuf2-v4l2.c | 19 ++++++++++++++++++- - include/media/videobuf2-v4l2.h | 17 +++++++++++++++++ - 2 files changed, 35 insertions(+), 1 deletion(-) - -diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c -index 3a0ca2f9854f..75ea90e795d8 100644 ---- a/drivers/media/common/videobuf2/videobuf2-v4l2.c -+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c -@@ -143,7 +143,7 @@ static void __copy_timestamp(struct vb2_buffer *vb, const void *pb) - * and the timecode field and flag if needed. - */ - if (q->copy_timestamp) -- vb->timestamp = timeval_to_ns(&b->timestamp); -+ vb->timestamp = v4l2_timeval_to_ns(&b->timestamp); - vbuf->flags |= b->flags & V4L2_BUF_FLAG_TIMECODE; - if (b->flags & V4L2_BUF_FLAG_TIMECODE) - vbuf->timecode = b->timecode; -@@ -589,6 +589,23 @@ static const struct vb2_buf_ops v4l2_buf_ops = { - .copy_timestamp = __copy_timestamp, - }; - -+int vb2_find_timestamp(const struct vb2_queue *q, u64 timestamp, -+ unsigned int start_idx) -+{ -+ unsigned int i; -+ -+ for (i = start_idx; i < q->num_buffers; i++) { -+ struct vb2_buffer *vb = q->bufs[i]; -+ -+ if ((vb->state == VB2_BUF_STATE_DEQUEUED || -+ vb->state == VB2_BUF_STATE_DONE) && -+ vb->timestamp == timestamp) -+ return i; -+ } -+ return -1; -+} -+EXPORT_SYMBOL_GPL(vb2_find_timestamp); -+ - /* - * vb2_querybuf() - query video buffer information - * @q: videobuf queue -diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h -index 727855463838..a9961bc776dc 100644 ---- a/include/media/videobuf2-v4l2.h -+++ b/include/media/videobuf2-v4l2.h -@@ -55,6 +55,23 @@ struct vb2_v4l2_buffer { - #define to_vb2_v4l2_buffer(vb) \ - container_of(vb, struct vb2_v4l2_buffer, vb2_buf) - -+/** -+ * vb2_find_timestamp() - Find buffer with given timestamp in the queue -+ * -+ * @q: pointer to &struct vb2_queue with videobuf2 queue. -+ * @timestamp: the timestamp to find. Only buffers in state DEQUEUED or DONE -+ * are considered. -+ * @start_idx: the start index (usually 0) in the buffer array to start -+ * searching from. Note that there may be multiple buffers -+ * with the same timestamp value, so you can restart the search -+ * by setting @start_idx to the previously found index + 1. -+ * -+ * Returns the buffer index of the buffer with the given @timestamp, or -+ * -1 if no buffer with @timestamp was found. -+ */ -+int vb2_find_timestamp(const struct vb2_queue *q, u64 timestamp, -+ unsigned int start_idx); -+ - int vb2_querybuf(struct vb2_queue *q, struct v4l2_buffer *b); - - /** --- -2.20.1 - -From d998e03e322fc497454f584adfc35743713a44c5 Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Fri, 9 Nov 2018 04:16:21 -0500 -Subject: [PATCH] media: cedrus: identify buffers by timestamp - -Use the new v4l2_m2m_buf_copy_data helper function and use -timestamps to refer to reference frames instead of using -buffer indices. - -Also remove the padding fields in the structs, that's a bad -idea. Just use the right types to keep everything aligned. - -Signed-off-by: Hans Verkuil -Tested-by: Paul Kocialkowski -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/v4l2-core/v4l2-ctrls.c | 9 -------- - drivers/staging/media/sunxi/cedrus/cedrus.h | 9 +++++--- - .../staging/media/sunxi/cedrus/cedrus_dec.c | 2 ++ - .../staging/media/sunxi/cedrus/cedrus_mpeg2.c | 23 +++++++++---------- - include/media/mpeg2-ctrls.h | 14 ++++------- - 5 files changed, 24 insertions(+), 33 deletions(-) - -diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index 5e3806feb5d7..e3bd441fa29a 100644 ---- a/drivers/media/v4l2-core/v4l2-ctrls.c -+++ b/drivers/media/v4l2-core/v4l2-ctrls.c -@@ -1661,15 +1661,6 @@ static int std_validate(const struct v4l2_ctrl *ctrl, u32 idx, - return -EINVAL; - } - -- if (p_mpeg2_slice_params->backward_ref_index >= VIDEO_MAX_FRAME || -- p_mpeg2_slice_params->forward_ref_index >= VIDEO_MAX_FRAME) -- return -EINVAL; -- -- if (p_mpeg2_slice_params->pad || -- p_mpeg2_slice_params->picture.pad || -- p_mpeg2_slice_params->sequence.pad) -- return -EINVAL; -- - return 0; - - case V4L2_CTRL_TYPE_MPEG2_QUANTIZATION: -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h -index 3acfdcf83691..4aedd24a9848 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus.h -+++ b/drivers/staging/media/sunxi/cedrus/cedrus.h -@@ -140,11 +140,14 @@ static inline dma_addr_t cedrus_buf_addr(struct vb2_buffer *buf, - } - - static inline dma_addr_t cedrus_dst_buf_addr(struct cedrus_ctx *ctx, -- unsigned int index, -- unsigned int plane) -+ int index, unsigned int plane) - { -- struct vb2_buffer *buf = ctx->dst_bufs[index]; -+ struct vb2_buffer *buf; - -+ if (index < 0) -+ return 0; -+ -+ buf = ctx->dst_bufs[index]; - return buf ? cedrus_buf_addr(buf, &ctx->dst_fmt, plane) : 0; - } - -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -index 591d191d4286..443fb037e1cf 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -@@ -50,6 +50,8 @@ void cedrus_device_run(void *priv) - break; - } - -+ v4l2_m2m_buf_copy_data(run.src, run.dst, true); -+ - dev->dec_ops[ctx->current_codec]->setup(ctx, &run); - - /* Complete request(s) controls if needed. */ -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c -index 9abd39cae38c..cb45fda9aaeb 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_mpeg2.c -@@ -82,7 +82,10 @@ static void cedrus_mpeg2_setup(struct cedrus_ctx *ctx, struct cedrus_run *run) - dma_addr_t fwd_luma_addr, fwd_chroma_addr; - dma_addr_t bwd_luma_addr, bwd_chroma_addr; - struct cedrus_dev *dev = ctx->dev; -+ struct vb2_queue *cap_q = &ctx->fh.m2m_ctx->cap_q_ctx.q; - const u8 *matrix; -+ int forward_idx; -+ int backward_idx; - unsigned int i; - u32 reg; - -@@ -156,23 +159,19 @@ static void cedrus_mpeg2_setup(struct cedrus_ctx *ctx, struct cedrus_run *run) - cedrus_write(dev, VE_DEC_MPEG_PICBOUNDSIZE, reg); - - /* Forward and backward prediction reference buffers. */ -+ forward_idx = vb2_find_timestamp(cap_q, -+ slice_params->forward_ref_ts, 0); - -- fwd_luma_addr = cedrus_dst_buf_addr(ctx, -- slice_params->forward_ref_index, -- 0); -- fwd_chroma_addr = cedrus_dst_buf_addr(ctx, -- slice_params->forward_ref_index, -- 1); -+ fwd_luma_addr = cedrus_dst_buf_addr(ctx, forward_idx, 0); -+ fwd_chroma_addr = cedrus_dst_buf_addr(ctx, forward_idx, 1); - - cedrus_write(dev, VE_DEC_MPEG_FWD_REF_LUMA_ADDR, fwd_luma_addr); - cedrus_write(dev, VE_DEC_MPEG_FWD_REF_CHROMA_ADDR, fwd_chroma_addr); - -- bwd_luma_addr = cedrus_dst_buf_addr(ctx, -- slice_params->backward_ref_index, -- 0); -- bwd_chroma_addr = cedrus_dst_buf_addr(ctx, -- slice_params->backward_ref_index, -- 1); -+ backward_idx = vb2_find_timestamp(cap_q, -+ slice_params->backward_ref_ts, 0); -+ bwd_luma_addr = cedrus_dst_buf_addr(ctx, backward_idx, 0); -+ bwd_chroma_addr = cedrus_dst_buf_addr(ctx, backward_idx, 1); - - cedrus_write(dev, VE_DEC_MPEG_BWD_REF_LUMA_ADDR, bwd_luma_addr); - cedrus_write(dev, VE_DEC_MPEG_BWD_REF_CHROMA_ADDR, bwd_chroma_addr); -diff --git a/include/media/mpeg2-ctrls.h b/include/media/mpeg2-ctrls.h -index d21f40edc09e..6601455b3d5e 100644 ---- a/include/media/mpeg2-ctrls.h -+++ b/include/media/mpeg2-ctrls.h -@@ -30,10 +30,9 @@ struct v4l2_mpeg2_sequence { - __u32 vbv_buffer_size; - - /* ISO/IEC 13818-2, ITU-T Rec. H.262: Sequence extension */ -- __u8 profile_and_level_indication; -+ __u16 profile_and_level_indication; - __u8 progressive_sequence; - __u8 chroma_format; -- __u8 pad; - }; - - struct v4l2_mpeg2_picture { -@@ -51,23 +50,20 @@ struct v4l2_mpeg2_picture { - __u8 intra_vlc_format; - __u8 alternate_scan; - __u8 repeat_first_field; -- __u8 progressive_frame; -- __u8 pad; -+ __u16 progressive_frame; - }; - - struct v4l2_ctrl_mpeg2_slice_params { - __u32 bit_size; - __u32 data_bit_offset; -+ __u64 backward_ref_ts; -+ __u64 forward_ref_ts; - - struct v4l2_mpeg2_sequence sequence; - struct v4l2_mpeg2_picture picture; - - /* ISO/IEC 13818-2, ITU-T Rec. H.262: Slice */ -- __u8 quantiser_scale_code; -- -- __u8 backward_ref_index; -- __u8 forward_ref_index; -- __u8 pad; -+ __u32 quantiser_scale_code; - }; - - struct v4l2_ctrl_mpeg2_quantization { --- -2.20.1 - -From 03535e7a3a9937da99ee18304309e0574d2504fc Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Thu, 24 Jan 2019 06:47:49 -0200 -Subject: [PATCH] media: vb2: vb2_find_timestamp: drop restriction on buffer - state - -There really is no reason why vb2_find_timestamp can't just find -buffers in any state. Drop that part of the test. - -This also means that vb->timestamp should only be set to 0 when -the driver doesn't copy timestamps. - -This change allows for more efficient pipelining (i.e. you can use -a buffer for a reference frame even when it is queued). - -Signed-off-by: Hans Verkuil -Reviewed-by: Tomasz Figa -Reviewed-by: Alexandre Courbot -Reviewed-by: Paul Kocialkowski -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/common/videobuf2/videobuf2-v4l2.c | 11 +++-------- - include/media/videobuf2-v4l2.h | 3 +-- - 2 files changed, 4 insertions(+), 10 deletions(-) - -diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c -index 75ea90e795d8..2f3b3ca5bde6 100644 ---- a/drivers/media/common/videobuf2/videobuf2-v4l2.c -+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c -@@ -567,7 +567,7 @@ static int __fill_vb2_buffer(struct vb2_buffer *vb, struct vb2_plane *planes) - struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb); - unsigned int plane; - -- if (!vb->vb2_queue->is_output || !vb->vb2_queue->copy_timestamp) -+ if (!vb->vb2_queue->copy_timestamp) - vb->timestamp = 0; - - for (plane = 0; plane < vb->num_planes; ++plane) { -@@ -594,14 +594,9 @@ int vb2_find_timestamp(const struct vb2_queue *q, u64 timestamp, - { - unsigned int i; - -- for (i = start_idx; i < q->num_buffers; i++) { -- struct vb2_buffer *vb = q->bufs[i]; -- -- if ((vb->state == VB2_BUF_STATE_DEQUEUED || -- vb->state == VB2_BUF_STATE_DONE) && -- vb->timestamp == timestamp) -+ for (i = start_idx; i < q->num_buffers; i++) -+ if (q->bufs[i]->timestamp == timestamp) - return i; -- } - return -1; - } - EXPORT_SYMBOL_GPL(vb2_find_timestamp); -diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h -index a9961bc776dc..8a10889dc2fd 100644 ---- a/include/media/videobuf2-v4l2.h -+++ b/include/media/videobuf2-v4l2.h -@@ -59,8 +59,7 @@ struct vb2_v4l2_buffer { - * vb2_find_timestamp() - Find buffer with given timestamp in the queue - * - * @q: pointer to &struct vb2_queue with videobuf2 queue. -- * @timestamp: the timestamp to find. Only buffers in state DEQUEUED or DONE -- * are considered. -+ * @timestamp: the timestamp to find. - * @start_idx: the start index (usually 0) in the buffer array to start - * searching from. Note that there may be multiple buffers - * with the same timestamp value, so you can restart the search --- -2.20.1 - -From 2cc1802f62e562611e86f04d9dae1337c824991e Mon Sep 17 00:00:00 2001 -From: Pawel Osciak -Date: Thu, 24 Jan 2019 07:51:55 -0200 -Subject: [PATCH] media: vb2: Keep dma-buf buffers mapped until they are freed - -When using vb2 for video decoding, dequeued capture buffers may still -be accessed by the hardware: this is the case when they are used as -reference frames for decoding subsequent frames. - -When the buffer is imported with dma-buf, it needs to be mapped before -access. Until now, it was mapped when queuing and unmapped when -dequeuing, which doesn't work for access as a reference frames. - -One way to solve this would be to map the buffer again when it is -needed as a reference, but the mapping/unmapping operations can -seriously impact performance. As a result, map the buffer once (when it -is first needed when queued) and keep it mapped until it is freed. - -Reviewed-on: https://chromium-review.googlesource.com/334103 -[Paul: Updated for mainline and changed commit message] - -Signed-off-by: Pawel Osciak -Signed-off-by: Paul Kocialkowski -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/common/videobuf2/videobuf2-core.c | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c -index 70e8c3366f9c..ce9294a635cc 100644 ---- a/drivers/media/common/videobuf2/videobuf2-core.c -+++ b/drivers/media/common/videobuf2/videobuf2-core.c -@@ -1196,6 +1196,9 @@ static int __prepare_dmabuf(struct vb2_buffer *vb) - * userspace knows sooner rather than later if the dma-buf map fails. - */ - for (plane = 0; plane < vb->num_planes; ++plane) { -+ if (vb->planes[plane].dbuf_mapped) -+ continue; -+ - ret = call_memop(vb, map_dmabuf, vb->planes[plane].mem_priv); - if (ret) { - dprintk(1, "failed to map dmabuf for plane %d\n", -@@ -1758,14 +1761,6 @@ static void __vb2_dqbuf(struct vb2_buffer *vb) - - vb->state = VB2_BUF_STATE_DEQUEUED; - -- /* unmap DMABUF buffer */ -- if (q->memory == VB2_MEMORY_DMABUF) -- for (i = 0; i < vb->num_planes; ++i) { -- if (!vb->planes[i].dbuf_mapped) -- continue; -- call_void_memop(vb, unmap_dmabuf, vb->planes[i].mem_priv); -- vb->planes[i].dbuf_mapped = 0; -- } - call_void_bufop(q, init_buffer, vb); - } - --- -2.20.1 - -From 6f2c6afa79e0513d339871337bfc8c6c621d3ab1 Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Fri, 21 Dec 2018 11:56:41 -0500 -Subject: [PATCH] media: sunxi: cedrus: Fix missing error message context - -When cedrus_hw_probe is called, v4l2_dev is not yet initialized. -Use dev_err instead. - -Signed-off-by: Ondrej Jirman -Acked-by: Paul Kocialkowski -Signed-off-by: Mauro Carvalho Chehab ---- - .../staging/media/sunxi/cedrus/cedrus_hw.c | 28 +++++++++---------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c -index 300339fee1bc..0acf219a8c91 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c -@@ -157,14 +157,14 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - irq_dec = platform_get_irq(dev->pdev, 0); - if (irq_dec <= 0) { -- v4l2_err(&dev->v4l2_dev, "Failed to get IRQ\n"); -+ dev_err(dev->dev, "Failed to get IRQ\n"); - - return irq_dec; - } - ret = devm_request_irq(dev->dev, irq_dec, cedrus_irq, - 0, dev_name(dev->dev), dev); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to request IRQ\n"); -+ dev_err(dev->dev, "Failed to request IRQ\n"); - - return ret; - } -@@ -182,21 +182,21 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - ret = of_reserved_mem_device_init(dev->dev); - if (ret && ret != -ENODEV) { -- v4l2_err(&dev->v4l2_dev, "Failed to reserve memory\n"); -+ dev_err(dev->dev, "Failed to reserve memory\n"); - - return ret; - } - - ret = sunxi_sram_claim(dev->dev); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to claim SRAM\n"); -+ dev_err(dev->dev, "Failed to claim SRAM\n"); - - goto err_mem; - } - - dev->ahb_clk = devm_clk_get(dev->dev, "ahb"); - if (IS_ERR(dev->ahb_clk)) { -- v4l2_err(&dev->v4l2_dev, "Failed to get AHB clock\n"); -+ dev_err(dev->dev, "Failed to get AHB clock\n"); - - ret = PTR_ERR(dev->ahb_clk); - goto err_sram; -@@ -204,7 +204,7 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - dev->mod_clk = devm_clk_get(dev->dev, "mod"); - if (IS_ERR(dev->mod_clk)) { -- v4l2_err(&dev->v4l2_dev, "Failed to get MOD clock\n"); -+ dev_err(dev->dev, "Failed to get MOD clock\n"); - - ret = PTR_ERR(dev->mod_clk); - goto err_sram; -@@ -212,7 +212,7 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - dev->ram_clk = devm_clk_get(dev->dev, "ram"); - if (IS_ERR(dev->ram_clk)) { -- v4l2_err(&dev->v4l2_dev, "Failed to get RAM clock\n"); -+ dev_err(dev->dev, "Failed to get RAM clock\n"); - - ret = PTR_ERR(dev->ram_clk); - goto err_sram; -@@ -220,7 +220,7 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - dev->rstc = devm_reset_control_get(dev->dev, NULL); - if (IS_ERR(dev->rstc)) { -- v4l2_err(&dev->v4l2_dev, "Failed to get reset control\n"); -+ dev_err(dev->dev, "Failed to get reset control\n"); - - ret = PTR_ERR(dev->rstc); - goto err_sram; -@@ -229,7 +229,7 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - res = platform_get_resource(dev->pdev, IORESOURCE_MEM, 0); - dev->base = devm_ioremap_resource(dev->dev, res); - if (IS_ERR(dev->base)) { -- v4l2_err(&dev->v4l2_dev, "Failed to map registers\n"); -+ dev_err(dev->dev, "Failed to map registers\n"); - - ret = PTR_ERR(dev->base); - goto err_sram; -@@ -237,35 +237,35 @@ int cedrus_hw_probe(struct cedrus_dev *dev) - - ret = clk_set_rate(dev->mod_clk, CEDRUS_CLOCK_RATE_DEFAULT); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to set clock rate\n"); -+ dev_err(dev->dev, "Failed to set clock rate\n"); - - goto err_sram; - } - - ret = clk_prepare_enable(dev->ahb_clk); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to enable AHB clock\n"); -+ dev_err(dev->dev, "Failed to enable AHB clock\n"); - - goto err_sram; - } - - ret = clk_prepare_enable(dev->mod_clk); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to enable MOD clock\n"); -+ dev_err(dev->dev, "Failed to enable MOD clock\n"); - - goto err_ahb_clk; - } - - ret = clk_prepare_enable(dev->ram_clk); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to enable RAM clock\n"); -+ dev_err(dev->dev, "Failed to enable RAM clock\n"); - - goto err_mod_clk; - } - - ret = reset_control_reset(dev->rstc); - if (ret) { -- v4l2_err(&dev->v4l2_dev, "Failed to apply reset\n"); -+ dev_err(dev->dev, "Failed to apply reset\n"); - - goto err_ram_clk; - } --- -2.20.1 - -From 6f4b9d9a6c08f692f627700c2d0e250e406ac81f Mon Sep 17 00:00:00 2001 -From: Paul Kocialkowski -Date: Wed, 9 Jan 2019 12:19:19 -0200 -Subject: [PATCH] media: cedrus: Cleanup duplicate declarations from cedrus_dec - header - -Some leftover declarations are still in the cedrus_dec header although -they were moved to cedrus_video already. Clean them up. - -Signed-off-by: Paul Kocialkowski -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/staging/media/sunxi/cedrus/cedrus_dec.h | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.h b/drivers/staging/media/sunxi/cedrus/cedrus_dec.h -index 4f423d3a1cad..d1ae7903677b 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.h -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.h -@@ -16,12 +16,6 @@ - #ifndef _CEDRUS_DEC_H_ - #define _CEDRUS_DEC_H_ - --extern const struct v4l2_ioctl_ops cedrus_ioctl_ops; -- --void cedrus_device_work(struct work_struct *work); - void cedrus_device_run(void *priv); - --int cedrus_queue_init(void *priv, struct vb2_queue *src_vq, -- struct vb2_queue *dst_vq); -- - #endif --- -2.20.1 - -From 55ea54441fb3b6532d5d32417911ff5a10750903 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Fri, 4 Jan 2019 10:42:49 +0100 -Subject: [PATCH] videobuf2: replace a layering violation with dma_map_resource - -vb2_dc_get_userptr pokes into arm direct mapping details to get the -resemblance of a dma address for a a physical address that does is -not backed by a page struct. Not only is this not portable to other -architectures with dma direct mapping offsets, but also not to uses -of IOMMUs of any kind. Switch to the proper dma_map_resource / -dma_unmap_resource interface instead. - -Signed-off-by: Christoph Hellwig -Acked-by: Mauro Carvalho Chehab -Tested-by: Marek Szyprowski ---- - .../common/videobuf2/videobuf2-dma-contig.c | 41 ++++--------------- - 1 file changed, 9 insertions(+), 32 deletions(-) - -diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c -index aff0ab7bf83d..82389aead6ed 100644 ---- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c -+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c -@@ -439,42 +439,14 @@ static void vb2_dc_put_userptr(void *buf_priv) - set_page_dirty_lock(pages[i]); - sg_free_table(sgt); - kfree(sgt); -+ } else { -+ dma_unmap_resource(buf->dev, buf->dma_addr, buf->size, -+ buf->dma_dir, 0); - } - vb2_destroy_framevec(buf->vec); - kfree(buf); - } - --/* -- * For some kind of reserved memory there might be no struct page available, -- * so all that can be done to support such 'pages' is to try to convert -- * pfn to dma address or at the last resort just assume that -- * dma address == physical address (like it has been assumed in earlier version -- * of videobuf2-dma-contig -- */ -- --#ifdef __arch_pfn_to_dma --static inline dma_addr_t vb2_dc_pfn_to_dma(struct device *dev, unsigned long pfn) --{ -- return (dma_addr_t)__arch_pfn_to_dma(dev, pfn); --} --#elif defined(__pfn_to_bus) --static inline dma_addr_t vb2_dc_pfn_to_dma(struct device *dev, unsigned long pfn) --{ -- return (dma_addr_t)__pfn_to_bus(pfn); --} --#elif defined(__pfn_to_phys) --static inline dma_addr_t vb2_dc_pfn_to_dma(struct device *dev, unsigned long pfn) --{ -- return (dma_addr_t)__pfn_to_phys(pfn); --} --#else --static inline dma_addr_t vb2_dc_pfn_to_dma(struct device *dev, unsigned long pfn) --{ -- /* really, we cannot do anything better at this point */ -- return (dma_addr_t)(pfn) << PAGE_SHIFT; --} --#endif -- - static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr, - unsigned long size, enum dma_data_direction dma_dir) - { -@@ -528,7 +500,12 @@ static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr, - for (i = 1; i < n_pages; i++) - if (nums[i-1] + 1 != nums[i]) - goto fail_pfnvec; -- buf->dma_addr = vb2_dc_pfn_to_dma(buf->dev, nums[0]); -+ buf->dma_addr = dma_map_resource(buf->dev, -+ __pfn_to_phys(nums[0]), size, buf->dma_dir, 0); -+ if (dma_mapping_error(buf->dev, buf->dma_addr)) { -+ ret = -ENOMEM; -+ goto fail_pfnvec; -+ } - goto out; - } - --- -2.20.1 - -From 28d77c21cbeb2c6039d48ef88401b87a56a7a07f Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Wed, 16 Jan 2019 10:01:13 -0200 -Subject: [PATCH] media: vb2: add buf_out_validate callback - -When queueing a buffer to a request the 'field' value is not validated. -That field is only validated when the _buf_prepare() is called, -which happens when the request is queued. - -However, this validation should happen at QBUF time, since you want -to know about this as soon as possible. Also, the spec requires that -the 'field' value is validated at QBUF time. - -This patch adds a new buf_out_validate callback to validate the -output buffer at buf_prepare time or when QBUF queues an unprepared -buffer to a request. This callback is mandatory for output queues -that support requests. - -This issue was found by v4l2-compliance since it failed to replace -V4L2_FIELD_ANY by a proper field value when testing the vivid video -output in combination with requests. - -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - .../media/common/videobuf2/videobuf2-core.c | 22 ++++++++++++++++--- - include/media/videobuf2-core.h | 5 +++++ - 2 files changed, 24 insertions(+), 3 deletions(-) - -diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c -index ce9294a635cc..e07b6bdb6982 100644 ---- a/drivers/media/common/videobuf2/videobuf2-core.c -+++ b/drivers/media/common/videobuf2/videobuf2-core.c -@@ -499,9 +499,9 @@ static int __vb2_queue_free(struct vb2_queue *q, unsigned int buffers) - pr_info(" buf_init: %u buf_cleanup: %u buf_prepare: %u buf_finish: %u\n", - vb->cnt_buf_init, vb->cnt_buf_cleanup, - vb->cnt_buf_prepare, vb->cnt_buf_finish); -- pr_info(" buf_queue: %u buf_done: %u buf_request_complete: %u\n", -- vb->cnt_buf_queue, vb->cnt_buf_done, -- vb->cnt_buf_request_complete); -+ pr_info(" buf_out_validate: %u buf_queue: %u buf_done: %u buf_request_complete: %u\n", -+ vb->cnt_buf_out_validate, vb->cnt_buf_queue, -+ vb->cnt_buf_done, vb->cnt_buf_request_complete); - pr_info(" alloc: %u put: %u prepare: %u finish: %u mmap: %u\n", - vb->cnt_mem_alloc, vb->cnt_mem_put, - vb->cnt_mem_prepare, vb->cnt_mem_finish, -@@ -1277,6 +1277,14 @@ static int __buf_prepare(struct vb2_buffer *vb) - return 0; - WARN_ON(vb->synced); - -+ if (q->is_output) { -+ ret = call_vb_qop(vb, buf_out_validate, vb); -+ if (ret) { -+ dprintk(1, "buffer validation failed\n"); -+ return ret; -+ } -+ } -+ - vb->state = VB2_BUF_STATE_PREPARING; - - switch (q->memory) { -@@ -1523,6 +1531,14 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb, - return -EINVAL; - } - -+ if (q->is_output && !vb->prepared) { -+ ret = call_vb_qop(vb, buf_out_validate, vb); -+ if (ret) { -+ dprintk(1, "buffer validation failed\n"); -+ return ret; -+ } -+ } -+ - media_request_object_init(&vb->req_obj); - - /* Make sure the request is in a safe state for updating. */ -diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h -index 4a737b2c610b..4849b865b908 100644 ---- a/include/media/videobuf2-core.h -+++ b/include/media/videobuf2-core.h -@@ -296,6 +296,7 @@ struct vb2_buffer { - u32 cnt_mem_num_users; - u32 cnt_mem_mmap; - -+ u32 cnt_buf_out_validate; - u32 cnt_buf_init; - u32 cnt_buf_prepare; - u32 cnt_buf_finish; -@@ -342,6 +343,9 @@ struct vb2_buffer { - * @wait_finish: reacquire all locks released in the previous callback; - * required to continue operation after sleeping while - * waiting for a new buffer to arrive. -+ * @buf_out_validate: called when the output buffer is prepared or queued -+ * to a request; drivers can use this to validate -+ * userspace-provided information; optional. - * @buf_init: called once after allocating a buffer (in MMAP case) - * or after acquiring a new USERPTR buffer; drivers may - * perform additional buffer-related initialization; -@@ -409,6 +413,7 @@ struct vb2_ops { - void (*wait_prepare)(struct vb2_queue *q); - void (*wait_finish)(struct vb2_queue *q); - -+ int (*buf_out_validate)(struct vb2_buffer *vb); - int (*buf_init)(struct vb2_buffer *vb); - int (*buf_prepare)(struct vb2_buffer *vb); - void (*buf_finish)(struct vb2_buffer *vb); --- -2.20.1 - -From 1284ed59a147c27cb882e49213571f7d52976eb5 Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Wed, 16 Jan 2019 10:01:17 -0200 -Subject: [PATCH] media: vb2: check that buf_out_validate is present - -The buf_out_validate is required for output queues in combination -with requests. Check this. - -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/common/videobuf2/videobuf2-v4l2.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c -index 2f3b3ca5bde6..3aeaea3af42a 100644 ---- a/drivers/media/common/videobuf2/videobuf2-v4l2.c -+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c -@@ -409,6 +409,15 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md - */ - if (WARN_ON(!q->ops->buf_request_complete)) - return -EINVAL; -+ /* -+ * Make sure this op is implemented by the driver for the output queue. -+ * It's easy to forget this callback, but is it important to correctly -+ * validate the 'field' value at QBUF time. -+ */ -+ if (WARN_ON((q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT || -+ q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) && -+ !q->ops->buf_out_validate)) -+ return -EINVAL; - - if (vb->state != VB2_BUF_STATE_DEQUEUED) { - dprintk(1, "%s: buffer is not in dequeued state\n", opname); --- -2.20.1 - -From 6b3e4c4cc162390b833e57de656644786ca88919 Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Wed, 16 Jan 2019 10:01:16 -0200 -Subject: [PATCH] media: cedrus: add buf_out_validate callback - -Validate the field for an output buffer. This ensures that the -field is validated when the buffer is queued to a request, and -not when the request itself is queued, which is too late. - -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/staging/media/sunxi/cedrus/cedrus_video.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -index 8721b4a7d496..b5cc79389d67 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -@@ -416,6 +416,14 @@ static void cedrus_buf_cleanup(struct vb2_buffer *vb) - ctx->dst_bufs[vb->index] = NULL; - } - -+static int cedrus_buf_out_validate(struct vb2_buffer *vb) -+{ -+ struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb); -+ -+ vbuf->field = V4L2_FIELD_NONE; -+ return 0; -+} -+ - static int cedrus_buf_prepare(struct vb2_buffer *vb) - { - struct vb2_queue *vq = vb->vb2_queue; -@@ -493,6 +501,7 @@ static struct vb2_ops cedrus_qops = { - .buf_init = cedrus_buf_init, - .buf_cleanup = cedrus_buf_cleanup, - .buf_queue = cedrus_buf_queue, -+ .buf_out_validate = cedrus_buf_out_validate, - .buf_request_complete = cedrus_buf_request_complete, - .start_streaming = cedrus_start_streaming, - .stop_streaming = cedrus_stop_streaming, --- -2.20.1 - -From a4d3d61254d3645d8de738102c3c473b176180a5 Mon Sep 17 00:00:00 2001 -From: Ezequiel Garcia -Date: Tue, 5 Feb 2019 16:20:33 -0500 -Subject: [PATCH] media: v4l2-mem2mem: Rename v4l2_m2m_buf_copy_data to - v4l2_m2m_buf_copy_metadata - -The v4l2_m2m_buf_copy_data helper is used to copy the buffer -metadata, such as its timestamp and its flags. - -Therefore, the v4l2_m2m_buf_copy_metadata name is more clear -and avoids confusion with a payload data copy. - -Signed-off-by: Ezequiel Garcia -Signed-off-by: Hans Verkuil -[hverkuil-cisco@xs4all.nl: also fix cedrus_dec.c] -Signed-off-by: Mauro Carvalho Chehab ---- - drivers/media/v4l2-core/v4l2-mem2mem.c | 8 ++++---- - drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 +- - include/media/v4l2-mem2mem.h | 14 +++++++------- - 5 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c -index 631f4e2aa942..1494d0d5951a 100644 ---- a/drivers/media/v4l2-core/v4l2-mem2mem.c -+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c -@@ -975,9 +975,9 @@ void v4l2_m2m_buf_queue(struct v4l2_m2m_ctx *m2m_ctx, - } - EXPORT_SYMBOL_GPL(v4l2_m2m_buf_queue); - --void v4l2_m2m_buf_copy_data(const struct vb2_v4l2_buffer *out_vb, -- struct vb2_v4l2_buffer *cap_vb, -- bool copy_frame_flags) -+void v4l2_m2m_buf_copy_metadata(const struct vb2_v4l2_buffer *out_vb, -+ struct vb2_v4l2_buffer *cap_vb, -+ bool copy_frame_flags) - { - u32 mask = V4L2_BUF_FLAG_TIMECODE | V4L2_BUF_FLAG_TSTAMP_SRC_MASK; - -@@ -993,7 +993,7 @@ void v4l2_m2m_buf_copy_data(const struct vb2_v4l2_buffer *out_vb, - cap_vb->flags &= ~mask; - cap_vb->flags |= out_vb->flags & mask; - } --EXPORT_SYMBOL_GPL(v4l2_m2m_buf_copy_data); -+EXPORT_SYMBOL_GPL(v4l2_m2m_buf_copy_metadata); - - void v4l2_m2m_request_queue(struct media_request *req) - { -diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -index 443fb037e1cf..4d6d602cdde6 100644 ---- a/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -+++ b/drivers/staging/media/sunxi/cedrus/cedrus_dec.c -@@ -50,7 +50,7 @@ void cedrus_device_run(void *priv) - break; - } - -- v4l2_m2m_buf_copy_data(run.src, run.dst, true); -+ v4l2_m2m_buf_copy_metadata(run.src, run.dst, true); - - dev->dec_ops[ctx->current_codec]->setup(ctx, &run); - -diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h -index 43e447dcf69d..47c6d9aa0bf4 100644 ---- a/include/media/v4l2-mem2mem.h -+++ b/include/media/v4l2-mem2mem.h -@@ -623,11 +623,11 @@ v4l2_m2m_dst_buf_remove_by_idx(struct v4l2_m2m_ctx *m2m_ctx, unsigned int idx) - } - - /** -- * v4l2_m2m_buf_copy_data() - copy buffer data from the output buffer to the -- * capture buffer -+ * v4l2_m2m_buf_copy_metadata() - copy buffer metadata from -+ * the output buffer to the capture buffer - * -- * @out_vb: the output buffer that is the source of the data. -- * @cap_vb: the capture buffer that will receive the data. -+ * @out_vb: the output buffer that is the source of the metadata. -+ * @cap_vb: the capture buffer that will receive the metadata. - * @copy_frame_flags: copy the KEY/B/PFRAME flags as well. - * - * This helper function copies the timestamp, timecode (if the TIMECODE -@@ -638,9 +638,9 @@ v4l2_m2m_dst_buf_remove_by_idx(struct v4l2_m2m_ctx *m2m_ctx, unsigned int idx) - * flags are not copied. This is typically needed for encoders that - * set this bits explicitly. - */ --void v4l2_m2m_buf_copy_data(const struct vb2_v4l2_buffer *out_vb, -- struct vb2_v4l2_buffer *cap_vb, -- bool copy_frame_flags); -+void v4l2_m2m_buf_copy_metadata(const struct vb2_v4l2_buffer *out_vb, -+ struct vb2_v4l2_buffer *cap_vb, -+ bool copy_frame_flags); - - /* v4l2 request helper */ - --- -2.20.1 - -From 50656bad786d001b294764e9f047c5d5b3e4db75 Mon Sep 17 00:00:00 2001 -From: Philipp Zabel -Date: Thu, 10 Jan 2019 11:56:09 -0500 -Subject: [PATCH] media: v4l2-ctrl: Add control to enable h.264 constrained - intra prediction - -Allow to enable h.264 constrained intra prediction (macroblocks using -intra prediction modes are not allowed to use residual data and decoded -samples of neighboring macroblocks coded using inter prediction modes). -This control directly corresponds to the constrained_intra_pred_flag -field in the h.264 picture parameter set. - -Signed-off-by: Philipp Zabel -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - Documentation/media/uapi/v4l/extended-controls.rst | 4 ++++ - drivers/media/v4l2-core/v4l2-ctrls.c | 2 ++ - include/uapi/linux/v4l2-controls.h | 1 + - 3 files changed, 7 insertions(+) - -diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst -index af4273aa5e85..235d0c293983 100644 ---- a/Documentation/media/uapi/v4l/extended-controls.rst -+++ b/Documentation/media/uapi/v4l/extended-controls.rst -@@ -1154,6 +1154,10 @@ enum v4l2_mpeg_video_h264_entropy_mode - - ``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)`` - Enable 8X8 transform for H264. Applicable to the H264 encoder. - -+``V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (boolean)`` -+ Enable constrained intra prediction for H264. Applicable to the H264 -+ encoder. -+ - ``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)`` - Cyclic intra macroblock refresh. This is the number of continuous - macroblocks refreshed every frame. Each frame a successive set of -diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index 8c47d8f00429..50b56185c02e 100644 ---- a/drivers/media/v4l2-core/v4l2-ctrls.c -+++ b/drivers/media/v4l2-core/v4l2-ctrls.c -@@ -825,6 +825,8 @@ const char *v4l2_ctrl_get_name(u32 id) - case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER:return "H264 Number of HC Layers"; - case V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP: - return "H264 Set QP Value for HC Layers"; -+ case V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION: -+ return "H264 Constrained Intra Pred"; - case V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP: return "MPEG4 I-Frame QP Value"; - case V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP: return "MPEG4 P-Frame QP Value"; - case V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP: return "MPEG4 B-Frame QP Value"; -diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h -index 3dcfc6148f99..fd65c710b144 100644 ---- a/include/uapi/linux/v4l2-controls.h -+++ b/include/uapi/linux/v4l2-controls.h -@@ -533,6 +533,7 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type { - }; - #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) - #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) -+#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383) - #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) - #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) - #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) --- -2.21.0 - -From d034696cbe5a6e00f76ca4b7869c6cdef66aebd5 Mon Sep 17 00:00:00 2001 -From: Philipp Zabel -Date: Thu, 10 Jan 2019 11:56:10 -0500 -Subject: [PATCH] media: v4l2-ctrl: Add control for h.264 chroma qp offset - -Allow to add fixed quantization parameter offset between luma and -chroma quantization parameters. This control directly corresponds -to the chroma_qp_index_offset field of the h.264 picture parameter -set. - -Signed-off-by: Philipp Zabel -Signed-off-by: Hans Verkuil -Signed-off-by: Mauro Carvalho Chehab ---- - Documentation/media/uapi/v4l/extended-controls.rst | 5 +++++ - drivers/media/v4l2-core/v4l2-ctrls.c | 1 + - include/uapi/linux/v4l2-controls.h | 1 + - 3 files changed, 7 insertions(+) - -diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst -index 235d0c293983..00934efdc9e4 100644 ---- a/Documentation/media/uapi/v4l/extended-controls.rst -+++ b/Documentation/media/uapi/v4l/extended-controls.rst -@@ -1158,6 +1158,11 @@ enum v4l2_mpeg_video_h264_entropy_mode - - Enable constrained intra prediction for H264. Applicable to the H264 - encoder. - -+``V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (integer)`` -+ Specify the offset that should be added to the luma quantization -+ parameter to determine the chroma quantization parameter. Applicable -+ to the H264 encoder. -+ - ``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)`` - Cyclic intra macroblock refresh. This is the number of continuous - macroblocks refreshed every frame. Each frame a successive set of -diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c -index 50b56185c02e..99308dac2daa 100644 ---- a/drivers/media/v4l2-core/v4l2-ctrls.c -+++ b/drivers/media/v4l2-core/v4l2-ctrls.c -@@ -827,6 +827,7 @@ const char *v4l2_ctrl_get_name(u32 id) - return "H264 Set QP Value for HC Layers"; - case V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION: - return "H264 Constrained Intra Pred"; -+ case V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET: return "H264 Chroma QP Index Offset"; - case V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP: return "MPEG4 I-Frame QP Value"; - case V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP: return "MPEG4 P-Frame QP Value"; - case V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP: return "MPEG4 B-Frame QP Value"; -diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h -index fd65c710b144..06479f2fb3ae 100644 ---- a/include/uapi/linux/v4l2-controls.h -+++ b/include/uapi/linux/v4l2-controls.h -@@ -534,6 +534,7 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type { - #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) - #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) - #define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383) -+#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384) - #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) - #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) - #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) --- -2.21.0 - -From 97e15cb4614733f7ebad2c9527b5ff82557dc247 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Tue, 2 Apr 2019 19:31:14 +0200 -Subject: [PATCH] clk: sunxi-ng: nkmp: Avoid GENMASK(-1, 0) - -Signed-off-by: Jernej Skrabec ---- - drivers/clk/sunxi-ng/ccu_nkmp.c | 18 +++++++++++++----- - 1 file changed, 13 insertions(+), 5 deletions(-) - -diff --git a/drivers/clk/sunxi-ng/ccu_nkmp.c b/drivers/clk/sunxi-ng/ccu_nkmp.c -index 9b49adb20d07..69dfc6de1c4e 100644 ---- a/drivers/clk/sunxi-ng/ccu_nkmp.c -+++ b/drivers/clk/sunxi-ng/ccu_nkmp.c -@@ -167,7 +167,7 @@ static int ccu_nkmp_set_rate(struct clk_hw *hw, unsigned long rate, - unsigned long parent_rate) - { - struct ccu_nkmp *nkmp = hw_to_ccu_nkmp(hw); -- u32 n_mask, k_mask, m_mask, p_mask; -+ u32 n_mask = 0, k_mask = 0, m_mask = 0, p_mask = 0; - struct _ccu_nkmp _nkmp; - unsigned long flags; - u32 reg; -@@ -186,10 +186,18 @@ static int ccu_nkmp_set_rate(struct clk_hw *hw, unsigned long rate, - - ccu_nkmp_find_best(parent_rate, rate, &_nkmp); - -- n_mask = GENMASK(nkmp->n.width + nkmp->n.shift - 1, nkmp->n.shift); -- k_mask = GENMASK(nkmp->k.width + nkmp->k.shift - 1, nkmp->k.shift); -- m_mask = GENMASK(nkmp->m.width + nkmp->m.shift - 1, nkmp->m.shift); -- p_mask = GENMASK(nkmp->p.width + nkmp->p.shift - 1, nkmp->p.shift); -+ if (nkmp->n.width) -+ n_mask = GENMASK(nkmp->n.width + nkmp->n.shift - 1, -+ nkmp->n.shift); -+ if (nkmp->k.width) -+ k_mask = GENMASK(nkmp->k.width + nkmp->k.shift - 1, -+ nkmp->k.shift); -+ if (nkmp->m.width) -+ m_mask = GENMASK(nkmp->m.width + nkmp->m.shift - 1, -+ nkmp->m.shift); -+ if (nkmp->p.width) -+ p_mask = GENMASK(nkmp->p.width + nkmp->p.shift - 1, -+ nkmp->p.shift); - - spin_lock_irqsave(nkmp->common.lock, flags); - --- -2.21.0 - -From 6f3656f3552a3b32c625c93ddafcbe10bf0fea6d Mon Sep 17 00:00:00 2001 -From: Colin Ian King -Date: Sat, 22 Dec 2018 11:31:59 +0000 -Subject: [PATCH] regulator: axp20x: check rdev is null before dereferencing it - -Currently rdev is dereferenced when assigning desc before rdev is null -checked, hence there is a potential null pointer dereference on rdev. -Fix this by null checking rdev first. - -Detected by CoverityScan, CID#1476031 ("Dereference before null check") - -Fixes: 77e3e3b165db ("regulator: axp20x: add software based soft_start for AXP209 LDO3") -Signed-off-by: Colin Ian King -Signed-off-by: Mark Brown ---- - drivers/regulator/axp20x-regulator.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 48af859fd053..0dfa4ea6bbdf 100644 ---- a/drivers/regulator/axp20x-regulator.c -+++ b/drivers/regulator/axp20x-regulator.c -@@ -367,7 +367,7 @@ static const int axp209_dcdc2_ldo3_slew_rates[] = { - static int axp20x_set_ramp_delay(struct regulator_dev *rdev, int ramp) - { - struct axp20x_dev *axp20x = rdev_get_drvdata(rdev); -- const struct regulator_desc *desc = rdev->desc; -+ const struct regulator_desc *desc; - u8 reg, mask, enable, cfg = 0xff; - const int *slew_rates; - int rate_count = 0; -@@ -375,6 +375,8 @@ static int axp20x_set_ramp_delay(struct regulator_dev *rdev, int ramp) - if (!rdev) - return -EINVAL; - -+ desc = rdev->desc; -+ - switch (axp20x->variant) { - case AXP209_ID: - if (desc->id == AXP20X_DCDC2) { -@@ -436,11 +438,13 @@ static int axp20x_set_ramp_delay(struct regulator_dev *rdev, int ramp) - static int axp20x_regulator_enable_regmap(struct regulator_dev *rdev) - { - struct axp20x_dev *axp20x = rdev_get_drvdata(rdev); -- const struct regulator_desc *desc = rdev->desc; -+ const struct regulator_desc *desc; - - if (!rdev) - return -EINVAL; - -+ desc = rdev->desc; -+ - switch (axp20x->variant) { - case AXP209_ID: - if ((desc->id == AXP20X_LDO3) && --- -2.21.0 - -From d02337709390c854186c6a21f997dc39760591e1 Mon Sep 17 00:00:00 2001 -From: Axel Lin -Date: Mon, 28 Jan 2019 22:02:19 +0800 -Subject: [PATCH] regulator: axp20x: Fix incorrect vsel_mask settings - -Fix copy-paste mistake while converting to use defines for masks. - -Fixes: db4a555f7c4cf ("regulator: axp20x: use defines for masks") -Signed-off-by: Axel Lin -Signed-off-by: Mark Brown ---- - drivers/regulator/axp20x-regulator.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 48af859fd053..dd0193d77960 100644 ---- a/drivers/regulator/axp20x-regulator.c -+++ b/drivers/regulator/axp20x-regulator.c -@@ -573,7 +573,7 @@ static const struct regulator_desc axp22x_regulators[] = { - AXP22X_DCDC3_V_OUT, AXP22X_DCDC3_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC3_MASK), - AXP_DESC(AXP22X, DCDC4, "dcdc4", "vin4", 600, 1540, 20, -- AXP22X_DCDC4_V_OUT, AXP22X_DCDC4_V_OUT, -+ AXP22X_DCDC4_V_OUT, AXP22X_DCDC4_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC4_MASK), - AXP_DESC(AXP22X, DCDC5, "dcdc5", "vin5", 1000, 2550, 50, - AXP22X_DCDC5_V_OUT, AXP22X_DCDC5_V_OUT_MASK, -@@ -952,7 +952,7 @@ static const struct regulator_desc axp813_regulators[] = { - AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK), - AXP_DESC(AXP813, ALDO2, "aldo2", "aldoin", 700, 3300, 100, -- AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT, -+ AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK), - AXP_DESC(AXP813, ALDO3, "aldo3", "aldoin", 700, 3300, 100, - AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK, -@@ -962,7 +962,7 @@ static const struct regulator_desc axp813_regulators[] = { - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK), - AXP_DESC_RANGES(AXP813, DLDO2, "dldo2", "dldoin", - axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES, -- AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT, -+ AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK), - AXP_DESC(AXP813, DLDO3, "dldo3", "dldoin", 700, 3300, 100, - AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK, -@@ -977,7 +977,7 @@ static const struct regulator_desc axp813_regulators[] = { - AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK), - AXP_DESC(AXP813, ELDO3, "eldo3", "eldoin", 700, 1900, 50, -- AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT, -+ AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK), - /* to do / check ... */ - AXP_DESC(AXP813, FLDO1, "fldo1", "fldoin", 700, 1450, 50, --- -2.21.0 - -From 4afa60d3a88aae3d052e0e8e1e62d6fc15a2be82 Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Mon, 18 Feb 2019 02:01:20 +0100 -Subject: [PATCH] regulator: axp20x: fix DCDCB and BLDO2 definitions for AXP806 - -This fixes another set of errors from the refactoring of literals -to mask preproccesor definitions. - -Found by debugging a broken voltage setup on Orange Pi One Plus. - -Fixes: db4a555f7c4cf ("regulator: axp20x: use defines for masks") -Signed-off-by: Ondrej Jirman -Acked-by: Chen-Yu Tsai -Signed-off-by: Mark Brown ---- - drivers/regulator/axp20x-regulator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 1b51d557ab55..62243957bd19 100644 ---- a/drivers/regulator/axp20x-regulator.c -+++ b/drivers/regulator/axp20x-regulator.c -@@ -791,7 +791,7 @@ static const struct regulator_desc axp806_regulators[] = { - AXP806_DCDCA_V_CTRL, AXP806_DCDCA_V_CTRL_MASK, - AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCA_MASK), - AXP_DESC(AXP806, DCDCB, "dcdcb", "vinb", 1000, 2550, 50, -- AXP806_DCDCB_V_CTRL, AXP806_DCDCB_V_CTRL, -+ AXP806_DCDCB_V_CTRL, AXP806_DCDCB_V_CTRL_MASK, - AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCB_MASK), - AXP_DESC_RANGES(AXP806, DCDCC, "dcdcc", "vinc", - axp806_dcdca_ranges, AXP806_DCDCA_NUM_VOLTAGES, -@@ -817,7 +817,7 @@ static const struct regulator_desc axp806_regulators[] = { - AXP806_BLDO1_V_CTRL, AXP806_BLDO1_V_CTRL_MASK, - AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO1_MASK), - AXP_DESC(AXP806, BLDO2, "bldo2", "bldoin", 700, 1900, 100, -- AXP806_BLDO2_V_CTRL, AXP806_BLDO2_V_CTRL, -+ AXP806_BLDO2_V_CTRL, AXP806_BLDO2_V_CTRL_MASK, - AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO2_MASK), - AXP_DESC(AXP806, BLDO3, "bldo3", "bldoin", 700, 1900, 100, - AXP806_BLDO3_V_CTRL, AXP806_BLDO3_V_CTRL_MASK, --- -2.21.0 - -From 55ec26d6a4241363fa94f15377ebd8f1116fbfd7 Mon Sep 17 00:00:00 2001 -From: Samuel Holland -Date: Sat, 12 Jan 2019 20:17:19 -0600 -Subject: [PATCH] arm64: dts: allwinner: a64: Enable A64 timer workaround - -As instability in the architectural timer has been observed on multiple -devices using this SoC, inluding the Pine64 and the Orange Pi Win, -enable the workaround in the SoC's device tree. - -Acked-by: Maxime Ripard -Signed-off-by: Samuel Holland -Signed-off-by: Chen-Yu Tsai ---- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index bf9b719481c4..8171c0a7f265 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -200,6 +200,7 @@ - - timer { - compatible = "arm,armv8-timer"; -+ allwinner,erratum-unknown1; - interrupts = , - -X-Patchwork-Id: 1035824 -Return-Path: -Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) - by smtp.lore.kernel.org (Postfix) with ESMTP id 1B380C282C3 - for ; Sat, 26 Jan 2019 06:18:58 +0000 (UTC) -Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) - by mail.kernel.org (Postfix) with ESMTP id DA5CC218A6 - for ; Sat, 26 Jan 2019 06:18:57 +0000 (UTC) -Authentication-Results: mail.kernel.org; - dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com - header.b="iKvIgjXT" -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1727857AbfAZGST (ORCPT - ); - Sat, 26 Jan 2019 01:18:19 -0500 -Received: from mail-pf1-f195.google.com ([209.85.210.195]:32902 "EHLO - mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S1726030AbfAZGSS (ORCPT - ); - Sat, 26 Jan 2019 01:18:18 -0500 -Received: by mail-pf1-f195.google.com with SMTP id c123so5748894pfb.0 - for ; - Fri, 25 Jan 2019 22:18:18 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=gmail.com; s=20161025; - h=from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=JSmITJw8ipgTHDHuuQbVyNNP7a2K+4jjuUDKEO/2BSQ=; - b=iKvIgjXTU+cd0F7lUCt9CqpCckQ8Lgi4IWCA2A3uqy99Mj0FoEQfml8lOh5o2hcjaz - LK6mLVA7ktj7qgKo05JFa+wxGgmViaKD3kwQhGNdJPWPbypRikJtiQ9X7OncP5OU5T4y - Onjj2C8vnf5Ji51YM0oE+aW+dPJSZD4JMQB5KfVip/csehJZfXjSqDTXDOe8HGcfiUXy - DY2dDe65mlm8Y8CINF2pL6pExl/YMvnzK4ksBMk5ApAMAldJdyDFPEzfAZpj5S2AR82j - jaOLwtye0VOVvWhXrjPr0ruLkNk2NwuN5PdK2EOfk7axkVBJwqLqbZUzcVG4jefrrXSt - oPfg== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20161025; - h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version - :content-transfer-encoding; - bh=JSmITJw8ipgTHDHuuQbVyNNP7a2K+4jjuUDKEO/2BSQ=; - b=HbbuR+peiN4ZGxh1K3ea6qlYG6RotGvRqCLBfuB19dm+NFw9Hrjiar98FC82Yikyq/ - 5d4FHhM6yM8E50hOM/r6xO23H1up+eEdH9wjOPOwXj/kgyg1N1j5nds03r/SDFpFAw+b - 7cttnUd6LSoe57Y27zUxG2i0NGEGQyoKKUL7qgsbXgM+94Bv7Em5qoePpN3se3lVX0NM - tl7fsrF2B0syFKEpN1nsyASJcmEDyARkoZ/sD9h4dm5e6f0sfun7C5RiK0yKJnK1HcNm - jUl7ZzbcofTQRINdLHjd8ha5rfqIZ5PzznEqfEqAlbAEYiLdpuE0NY3lp2eDFpwyzyli - PBfw== -X-Gm-Message-State: AJcUukdzFm8KfTEzwoyBqSIVpljLcfmJcoQHyvQDbmOrlDrhkoH9Do46 - 56MMagGJb69BtrFXk9QVXNU= -X-Google-Smtp-Source: - ALg8bN5Lp4psJFzc3iU5Wp4n4UXGTX50I1KuRfCGOg7kq/kwqpaoaJslhHffMN3StBzDuBgqBN4AgA== -X-Received: by 2002:a62:c683:: with SMTP id x3mr13649666pfk.10.1548483497516; - Fri, 25 Jan 2019 22:18:17 -0800 (PST) -Received: from anarsoul-thinkpad.lan (216-71-193-140.dyn.novuscom.net. - [216.71.193.140]) - by smtp.gmail.com with ESMTPSA id - 85sm36537643pfw.17.2019.01.25.22.18.16 - (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); - Fri, 25 Jan 2019 22:18:16 -0800 (PST) -From: Vasily Khoruzhick -To: Liam Girdwood , - Mark Brown , Chen-Yu Tsai , - Olliver Schinagl , - linux-kernel@vger.kernel.org -Cc: Vasily Khoruzhick -Subject: [PATCH] regulator: axp20x: fix ALDO2, - DLDO2 and ELDO3 definitions for AXP803 -Date: Fri, 25 Jan 2019 22:18:09 -0800 -Message-Id: <20190126061809.18035-1-anarsoul@gmail.com> -X-Mailer: git-send-email 2.20.1 -MIME-Version: 1.0 -Sender: linux-kernel-owner@vger.kernel.org -Precedence: bulk -List-ID: -X-Mailing-List: linux-kernel@vger.kernel.org - -Looks like refactoring didn't go well and left ALDO2, DLDO2 and ELDO3 -definitions broken for AXP803 - now they are using register address -instead of mask. Fix it by using mask where necessary. - -Fixes: db4a555f7c4cf ("regulator: axp20x: use defines for masks") -Signed-off-by: Vasily Khoruzhick -Reviewed-by: Chen-Yu Tsai ---- - drivers/regulator/axp20x-regulator.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 48af859fd053..a808b03cae10 100644 ---- a/drivers/regulator/axp20x-regulator.c -+++ b/drivers/regulator/axp20x-regulator.c -@@ -719,7 +719,7 @@ static const struct regulator_desc axp803_regulators[] = { - AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK), - AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100, -- AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT, -+ AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK), - AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100, - AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK, -@@ -729,7 +729,7 @@ static const struct regulator_desc axp803_regulators[] = { - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK), - AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin", - axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES, -- AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT, -+ AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK), - AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100, - AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK, -@@ -744,7 +744,7 @@ static const struct regulator_desc axp803_regulators[] = { - AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK), - AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50, -- AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT, -+ AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK, - AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK), - AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50, - AXP803_FLDO1_V_OUT, AXP803_FLDO1_V_OUT_MASK, diff --git a/projects/Allwinner/patches/linux/0012-Revert-media-vb2-keep-track-of-timestamp-status.patch b/projects/Allwinner/patches/linux/0012-Revert-media-vb2-keep-track-of-timestamp-status.patch new file mode 100644 index 00000000000..024278d6cc9 --- /dev/null +++ b/projects/Allwinner/patches/linux/0012-Revert-media-vb2-keep-track-of-timestamp-status.patch @@ -0,0 +1,91 @@ +From e3a864e94eb7b22812d7d9b80403aaba7ade8e49 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Wed, 8 May 2019 23:36:51 +0200 +Subject: [PATCH] Revert "media: vb2: keep track of timestamp status" + +This reverts commit 7e4e71624491d8a8befe62b43138beb0ab696006. +--- + drivers/media/common/videobuf2/videobuf2-core.c | 3 --- + drivers/media/common/videobuf2/videobuf2-v4l2.c | 3 +-- + drivers/media/v4l2-core/v4l2-mem2mem.c | 1 - + include/media/videobuf2-core.h | 3 --- + 4 files changed, 1 insertion(+), 9 deletions(-) + +diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c +index 3cf25abf5807..3b0c6d3dd1e3 100644 +--- a/drivers/media/common/videobuf2/videobuf2-core.c ++++ b/drivers/media/common/videobuf2/videobuf2-core.c +@@ -1041,7 +1041,6 @@ static int __prepare_userptr(struct vb2_buffer *vb) + if (vb->planes[plane].mem_priv) { + if (!reacquired) { + reacquired = true; +- vb->copied_timestamp = 0; + call_void_vb_qop(vb, buf_cleanup, vb); + } + call_void_memop(vb, put_userptr, vb->planes[plane].mem_priv); +@@ -1166,7 +1165,6 @@ static int __prepare_dmabuf(struct vb2_buffer *vb) + + if (!reacquired) { + reacquired = true; +- vb->copied_timestamp = 0; + call_void_vb_qop(vb, buf_cleanup, vb); + } + +@@ -1957,7 +1955,6 @@ static void __vb2_queue_cancel(struct vb2_queue *q) + if (vb->request) + media_request_put(vb->request); + vb->request = NULL; +- vb->copied_timestamp = 0; + } + } + +diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c +index fb9ac7696fc6..ba57dee66592 100644 +--- a/drivers/media/common/videobuf2/videobuf2-v4l2.c ++++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c +@@ -608,8 +608,7 @@ int vb2_find_timestamp(const struct vb2_queue *q, u64 timestamp, + unsigned int i; + + for (i = start_idx; i < q->num_buffers; i++) +- if (q->bufs[i]->copied_timestamp && +- q->bufs[i]->timestamp == timestamp) ++ if (q->bufs[i]->timestamp == timestamp) + return i; + return -1; + } +diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c +index 3392833d9541..82ef90af3de1 100644 +--- a/drivers/media/v4l2-core/v4l2-mem2mem.c ++++ b/drivers/media/v4l2-core/v4l2-mem2mem.c +@@ -989,7 +989,6 @@ void v4l2_m2m_buf_copy_metadata(const struct vb2_v4l2_buffer *out_vb, + cap_vb->field = out_vb->field; + cap_vb->flags &= ~mask; + cap_vb->flags |= out_vb->flags & mask; +- cap_vb->vb2_buf.copied_timestamp = 1; + } + EXPORT_SYMBOL_GPL(v4l2_m2m_buf_copy_metadata); + +diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h +index 22f3ff76a8b5..7cdeadb6b596 100644 +--- a/include/media/videobuf2-core.h ++++ b/include/media/videobuf2-core.h +@@ -260,8 +260,6 @@ struct vb2_buffer { + * prepared: this buffer has been prepared, i.e. the + * buf_prepare op was called. It is cleared again + * after the 'buf_finish' op is called. +- * copied_timestamp: the timestamp of this capture buffer was copied +- * from an output buffer. + * queued_entry: entry on the queued buffers list, which holds + * all buffers queued from userspace + * done_entry: entry on the list that stores all buffers ready +@@ -271,7 +269,6 @@ struct vb2_buffer { + enum vb2_buffer_state state; + unsigned int synced:1; + unsigned int prepared:1; +- unsigned int copied_timestamp:1; + + struct vb2_plane planes[VB2_MAX_PLANES]; + struct list_head queued_entry; +-- +2.21.0 +