From 7bf0b36d93ac55a3b8310754bdfed1316ab7178a Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sun, 24 Aug 2025 04:24:10 -0700 Subject: [PATCH 01/25] fix:prepare the basic image for debugging --- .../configs/starfive_visionfive2_defconfig | 567 ++++++++++++++++++ llvm-snapshot.gpg.key | 52 ++ llvm.sh | 232 +++++++ my_driver/Makefile | 12 + my_driver/user_dma.c | 120 ++++ 5 files changed, 983 insertions(+) create mode 100644 arch/riscv/configs/starfive_visionfive2_defconfig create mode 100644 llvm-snapshot.gpg.key create mode 100755 llvm.sh create mode 100644 my_driver/Makefile create mode 100644 my_driver/user_dma.c diff --git a/arch/riscv/configs/starfive_visionfive2_defconfig b/arch/riscv/configs/starfive_visionfive2_defconfig new file mode 100644 index 0000000000000..61c0780901c13 --- /dev/null +++ b/arch/riscv/configs/starfive_visionfive2_defconfig @@ -0,0 +1,567 @@ +CONFIG_COMPILE_TEST=y +# CONFIG_WERROR is not set +CONFIG_DEFAULT_HOSTNAME="StarFive" +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_USELIB=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BPF_SYSCALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUP_BPF=y +CONFIG_NAMESPACES=y +CONFIG_USER_NS=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_EXPERT=y +CONFIG_PERF_EVENTS=y +CONFIG_SOC_STARFIVE=y +CONFIG_SOC_STARFIVE_JH7110=y +CONFIG_SMP=y +CONFIG_HZ_100=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="PARTLABEL=hibernation" +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_CPU_IDLE=y +CONFIG_RISCV_SBI_CPUIDLE=y +# CONFIG_SECCOMP is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_BINFMT_MISC=y +CONFIG_PAGE_REPORTING=y +CONFIG_CMA=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_NETLINK_ACCT=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_TABLES=y +CONFIG_NFT_CT=y +CONFIG_NFT_COMPAT=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_IPCOMP=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_DUP_IPV4=y +CONFIG_NFT_FIB_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_NETLINK_DIAG=y +CONFIG_CAN=y +CONFIG_IPMS_CAN=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTUSB_BCM is not set +# CONFIG_BT_HCIBTUSB_RTL is not set +CONFIG_BT_AICUSB=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_RFKILL=y +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +CONFIG_PCI=y +# CONFIG_PCIEASPM is not set +CONFIG_PCIE_PLDA=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_SPI_NOR=y +CONFIG_OF_CONFIGFS=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=y +CONFIG_EEPROM_AT24=y +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_SCSI_VIRTIO=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=m +CONFIG_NETDEVICES=y +CONFIG_TUN=m +CONFIG_VIRTIO_NET=y +# CONFIG_NET_VENDOR_ALACRITECH is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +CONFIG_R8169=y +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_SELFTESTS=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_DWMAC_STARFIVE_PLAT=y +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +CONFIG_MARVELL_PHY=y +CONFIG_MICREL_PHY=y +CONFIG_MOTORCOMM_PHY=y +CONFIG_IWLWIFI=y +CONFIG_IWLDVM=y +CONFIG_IWLMVM=y +CONFIG_HOSTAP=y +# CONFIG_RTL_CARDS is not set +CONFIG_USB_WIFI_ECR6600U=y +CONFIG_AIC_WLAN_SUPPORT=y +CONFIG_AIC8800_WLAN_SUPPORT=m +CONFIG_AIC_LOADFW_SUPPORT=m +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_GOODIX=y +CONFIG_TOUCHSCREEN_TINKER_FT5406=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_EARLYCON_RISCV_SBI=y +CONFIG_HVC_RISCV_SBI=y +CONFIG_TTY_PRINTK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_STARFIVE=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_SPI=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_SPI_PL022_STARFIVE=y +CONFIG_SPI_SIFIVE=y +CONFIG_SPI_SPIDEV=y +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_PINCTRL=y +CONFIG_PINCTRL_STARFIVE=y +CONFIG_PINCTRL_STARFIVE_JH7110=y +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_SENSORS_SFCTEMP=y +CONFIG_THERMAL=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_SYSFS=y +CONFIG_STARFIVE_WATCHDOG=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_AXP15060=y +# CONFIG_MEDIA_CEC_SUPPORT is not set +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_STF_VIN=y +CONFIG_VIN_SENSOR_OV4689=y +CONFIG_VIN_SENSOR_IMX219=y +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_WAVE_VPU=m +CONFIG_VIDEO_IMX708=y +# CONFIG_CXD2880_SPI_DRV is not set +# CONFIG_MEDIA_TUNER_SIMPLE is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_MSI001 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2063 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# CONFIG_MEDIA_TUNER_XC4000 is not set +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_TDA18212 is not set +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_TUA9001 is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_MXL301RF is not set +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set +# CONFIG_DVB_STB0899 is not set +# CONFIG_DVB_STB6100 is not set +# CONFIG_DVB_STV090x is not set +# CONFIG_DVB_STV0910 is not set +# CONFIG_DVB_STV6110x is not set +# CONFIG_DVB_STV6111 is not set +# CONFIG_DVB_MXL5XX is not set +# CONFIG_DVB_DRXK is not set +# CONFIG_DVB_TDA18271C2DD is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_MN88472 is not set +# CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_CX24110 is not set +# CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_MT312 is not set +# CONFIG_DVB_ZL10036 is not set +# CONFIG_DVB_ZL10039 is not set +# CONFIG_DVB_S5H1420 is not set +# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0299 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_STV0900 is not set +# CONFIG_DVB_TDA8083 is not set +# CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8261 is not set +# CONFIG_DVB_VES1X93 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TDA826X is not set +# CONFIG_DVB_TUA6100 is not set +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set +# CONFIG_DVB_SI21XX is not set +# CONFIG_DVB_TS2020 is not set +# CONFIG_DVB_DS3000 is not set +# CONFIG_DVB_MB86A16 is not set +# CONFIG_DVB_TDA10071 is not set +# CONFIG_DVB_SP887X is not set +# CONFIG_DVB_CX22700 is not set +# CONFIG_DVB_CX22702 is not set +# CONFIG_DVB_S5H1432 is not set +# CONFIG_DVB_DRXD is not set +# CONFIG_DVB_L64781 is not set +# CONFIG_DVB_TDA1004X is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_ZL10353 is not set +# CONFIG_DVB_DIB3000MB is not set +# CONFIG_DVB_DIB3000MC is not set +# CONFIG_DVB_DIB7000M is not set +# CONFIG_DVB_DIB7000P is not set +# CONFIG_DVB_DIB9000 is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_EC100 is not set +# CONFIG_DVB_STV0367 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_ZD1301_DEMOD is not set +# CONFIG_DVB_CXD2880 is not set +# CONFIG_DVB_VES1820 is not set +# CONFIG_DVB_TDA10021 is not set +# CONFIG_DVB_TDA10023 is not set +# CONFIG_DVB_STV0297 is not set +# CONFIG_DVB_NXT200X is not set +# CONFIG_DVB_OR51211 is not set +# CONFIG_DVB_OR51132 is not set +# CONFIG_DVB_BCM3510 is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_S5H1409 is not set +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set +# CONFIG_DVB_S5H1411 is not set +# CONFIG_DVB_MXL692 is not set +# CONFIG_DVB_S921 is not set +# CONFIG_DVB_DIB8000 is not set +# CONFIG_DVB_MB86A20S is not set +# CONFIG_DVB_TC90522 is not set +# CONFIG_DVB_MN88443X is not set +# CONFIG_DVB_PLL is not set +# CONFIG_DVB_TUNER_DIB0070 is not set +# CONFIG_DVB_TUNER_DIB0090 is not set +# CONFIG_DVB_DRX39XYJ is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_ISL6405 is not set +# CONFIG_DVB_ISL6421 is not set +# CONFIG_DVB_ISL6423 is not set +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_LGS8GL5 is not set +# CONFIG_DVB_LGS8GXX is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_M88RS2000 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_HORUS3A is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_CXD2099 is not set +# CONFIG_DVB_SP2 is not set +CONFIG_DRM_PANEL_JADARD_JD9365DA_H3=y +CONFIG_DRM_PANEL_STARFIVE_10INCH=y +CONFIG_DRM_VERISILICON=y +CONFIG_STARFIVE_INNO_HDMI=y +CONFIG_STARFIVE_DSI=y +CONFIG_DRM_IMG_ROGUE=y +CONFIG_DRM_LEGACY=y +CONFIG_FB=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_DESIGNWARE_I2S=y +CONFIG_SND_SOC_SOF_TOPLEVEL=y +CONFIG_SND_SOC_SOF_OF=y +CONFIG_SND_SOC_SOF_STARFIVE_TOPLEVEL=y +CONFIG_SND_SOC_SOF_STARFIVE_SUPPORT=y +CONFIG_STARFIVE_DSP=y +CONFIG_SND_SOC_STARFIVE=y +CONFIG_SND_SOC_STARFIVE_PWMDAC=y +CONFIG_SND_SOC_STARFIVE_I2S=y +CONFIG_SND_SOC_STARFIVE_SOF_TDM_DAI=y +CONFIG_SND_SOC_AC108=y +CONFIG_SND_SOC_WM8960=y +CONFIG_SND_SIMPLE_CARD=y +CONFIG_UHID=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_STORAGE=y +CONFIG_USB_UAS=y +CONFIG_USB_CDNS_SUPPORT=y +CONFIG_USB_CDNS3=y +CONFIG_USB_CDNS3_GADGET=y +CONFIG_USB_CDNS3_HOST=y +CONFIG_USB_CDNS3_STARFIVE=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_GADGET=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_MMC=y +CONFIG_MMC_DEBUG=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +CONFIG_MMC_SPI=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_STARFIVE=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STARFIVE=y +CONFIG_RTC_DRV_GOLDFISH=y +CONFIG_DMADEVICES=y +CONFIG_DW_AXI_DMAC=y +CONFIG_DMATEST=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_GOLDFISH=y +CONFIG_STARFIVE_TIMER=y +CONFIG_MAILBOX=y +CONFIG_STARFIVE_MBOX=y +CONFIG_STARFIVE_MBOX_TEST=m +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_RPMSG_CHAR=y +CONFIG_RPMSG_VIRTIO=y +CONFIG_SIFIVE_L2_FLUSH_START=0x40000000 +CONFIG_SIFIVE_L2_FLUSH_SIZE=0x400000000 +CONFIG_STARFIVE_PMU=y +CONFIG_IIO=y +CONFIG_IIO_ST_ACCEL_3AXIS=y +CONFIG_PWM=y +CONFIG_PWM_STARFIVE_PTC=y +CONFIG_PHY_M31_DPHY_RX0=y +CONFIG_RAS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPUFREQ_DT=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VIRTIO_FS=y +CONFIG_OVERLAY_FS=y +CONFIG_OVERLAY_FS_INDEX=y +CONFIG_OVERLAY_FS_XINO_AUTO=y +CONFIG_OVERLAY_FS_METACOPY=y +CONFIG_FSCACHE=y +CONFIG_FSCACHE_STATS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_EXFAT_FS=y +CONFIG_NTFS_FS=y +CONFIG_NTFS_RW=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_CIFS=m +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_FSCACHE=y +CONFIG_SMB_SERVER=m +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_USER_API_RNG=y +CONFIG_CRYPTO_USER_API_AEAD=y +CONFIG_CRYPTO_USER_API_AKCIPHER=y +CONFIG_CRYPTO_DEV_VIRTIO=y +CONFIG_CRYPTO_DEV_JH7110_ENCRYPT=y +CONFIG_DMA_CMA=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_FS=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +CONFIG_DEBUG_TIMEKEEPING=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_RWSEMS=y +CONFIG_STACKTRACE=y +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_PLIST=y +CONFIG_DEBUG_SG=y +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_EQS_DEBUG=y +# CONFIG_FTRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_MEMTEST=y diff --git a/llvm-snapshot.gpg.key b/llvm-snapshot.gpg.key new file mode 100644 index 0000000000000..aa6b105aa3d71 --- /dev/null +++ b/llvm-snapshot.gpg.key @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +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 +bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== +=j+4q +-----END PGP PUBLIC KEY BLOCK----- diff --git a/llvm.sh b/llvm.sh new file mode 100755 index 0000000000000..4f9f0a098ff24 --- /dev/null +++ b/llvm.sh @@ -0,0 +1,232 @@ +#!/bin/bash +################################################################################ +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +################################################################################ +# +# This script will install the llvm toolchain on the different +# Debian and Ubuntu versions + +set -eux + +usage() { + set +x + echo "Usage: $0 [llvm_major_version] [all] [OPTIONS]" 1>&2 + echo -e "all\t\t\tInstall all packages." 1>&2 + echo -e "-n=code_name\t\tSpecifies the distro codename, for example bionic" 1>&2 + echo -e "-h\t\t\tPrints this help." 1>&2 + echo -e "-m=repo_base_url\tSpecifies the base URL from which to download." 1>&2 + exit 1; +} + +CURRENT_LLVM_STABLE=19 +BASE_URL="http://apt.llvm.org" + +NEW_DEBIAN_DISTROS=("trixie" "unstable") +# Set default values for commandline arguments +# We default to the current stable branch of LLVM +LLVM_VERSION=$CURRENT_LLVM_STABLE +ALL=0 +DISTRO=$(lsb_release -is) +VERSION_CODENAME=$(lsb_release -cs) +VERSION=$(lsb_release -sr) +UBUNTU_CODENAME="" +CODENAME_FROM_ARGUMENTS="" +# Obtain VERSION_CODENAME and UBUNTU_CODENAME (for Ubuntu and its derivatives) +source /etc/os-release +DISTRO=${DISTRO,,} + +# Check for required tools + +# Check if this is a new Debian distro +is_new_debian=0 +if [[ "${DISTRO}" == "debian" ]]; then + for new_distro in "${NEW_DEBIAN_DISTROS[@]}"; do + if [[ "${VERSION_CODENAME}" == "${new_distro}" ]]; then + is_new_debian=1 + break + fi + done +fi + +# Check for required tools +needed_binaries=(lsb_release wget gpg) +# add-apt-repository is not needed for newer Debian distros +if [[ $is_new_debian -eq 0 ]]; then + needed_binaries+=(add-apt-repository) +fi + +missing_binaries=() +using_curl= +for binary in "${needed_binaries[@]}"; do + if ! command -v $binary &>/dev/null ; then + if [[ "$binary" == "wget" ]] && command -v curl &>/dev/null; then + using_curl=1 + continue + fi + missing_binaries+=($binary) + fi +done + +if [[ ${#missing_binaries[@]} -gt 0 ]] ; then + echo "You are missing some tools this script requires: ${missing_binaries[@]}" + echo "(hint: apt install lsb-release wget software-properties-common gnupg)" + echo "curl is also supported" + exit 4 +fi + +case ${DISTRO} in + debian) + # Debian Trixie has a workaround because of + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1038383 + if [[ "${VERSION}" == "unstable" ]] || [[ "${VERSION}" == "testing" ]] || [[ "${VERSION_CODENAME}" == "trixie" ]]; then + CODENAME=unstable + LINKNAME= + else + # "stable" Debian release + CODENAME=${VERSION_CODENAME} + LINKNAME=-${CODENAME} + fi + ;; + *) + # ubuntu and its derivatives + if [[ -n "${UBUNTU_CODENAME}" ]]; then + CODENAME=${UBUNTU_CODENAME} + if [[ -n "${CODENAME}" ]]; then + LINKNAME=-${CODENAME} + fi + fi + ;; +esac + +# read optional command line arguments +if [ "$#" -ge 1 ] && [ "${1::1}" != "-" ]; then + if [ "$1" != "all" ]; then + LLVM_VERSION=$1 + else + # special case for ./llvm.sh all + ALL=1 + fi + OPTIND=2 + if [ "$#" -ge 2 ]; then + if [ "$2" == "all" ]; then + # Install all packages + ALL=1 + OPTIND=3 + fi + fi +fi + +while getopts ":hm:n:" arg; do + case $arg in + h) + usage + ;; + m) + BASE_URL=${OPTARG} + ;; + n) + CODENAME=${OPTARG} + if [[ "${CODENAME}" == "unstable" ]]; then + # link name does not apply to unstable repository + LINKNAME= + else + LINKNAME=-${CODENAME} + fi + CODENAME_FROM_ARGUMENTS="true" + ;; + esac +done + +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root!" + exit 1 +fi + +declare -A LLVM_VERSION_PATTERNS +LLVM_VERSION_PATTERNS[9]="-9" +LLVM_VERSION_PATTERNS[10]="-10" +LLVM_VERSION_PATTERNS[11]="-11" +LLVM_VERSION_PATTERNS[12]="-12" +LLVM_VERSION_PATTERNS[13]="-13" +LLVM_VERSION_PATTERNS[14]="-14" +LLVM_VERSION_PATTERNS[15]="-15" +LLVM_VERSION_PATTERNS[16]="-16" +LLVM_VERSION_PATTERNS[17]="-17" +LLVM_VERSION_PATTERNS[18]="-18" +LLVM_VERSION_PATTERNS[19]="-19" +LLVM_VERSION_PATTERNS[20]="-20" +LLVM_VERSION_PATTERNS[21]="" + +if [ ! ${LLVM_VERSION_PATTERNS[$LLVM_VERSION]+_} ]; then + echo "This script does not support LLVM version $LLVM_VERSION" + exit 3 +fi + +LLVM_VERSION_STRING=${LLVM_VERSION_PATTERNS[$LLVM_VERSION]} + +# join the repository name +if [[ -n "${CODENAME}" ]]; then + REPO_NAME="deb ${BASE_URL}/${CODENAME}/ llvm-toolchain${LINKNAME}${LLVM_VERSION_STRING} main" + # check if the repository exists for the distro and version + if ! wget -q --method=HEAD ${BASE_URL}/${CODENAME} &> /dev/null && \ + ! curl -sSLI -XHEAD ${BASE_URL}/${CODENAME} &> /dev/null; then + if [[ -n "${CODENAME_FROM_ARGUMENTS}" ]]; then + echo "Specified codename '${CODENAME}' is not supported by this script." + else + echo "Distribution '${DISTRO}' in version '${VERSION}' is not supported by this script." + fi + exit 2 + fi +fi + + +# install everything + +if [[ ! -f /etc/apt/trusted.gpg.d/apt.llvm.org.asc ]]; then + # download GPG key once + if [[ -z "$using_curl" ]]; then + wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc + else + curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc + fi +fi + +if [[ -z "`apt-key list 2> /dev/null | grep -i llvm`" ]]; then + # Delete the key in the old format + apt-key del AF4F7421 || true +fi + + +# Add repository based on distribution +if [[ "${VERSION_CODENAME}" == "bookworm" ]]; then + # add it twice to workaround: + # https://github.com/llvm/llvm-project/issues/62475 + add-apt-repository -y "${REPO_NAME}" + add-apt-repository -y "${REPO_NAME}" +elif [[ $is_new_debian -eq 1 ]]; then + # workaround missing add-apt-repository in newer Debian and use new source.list format + SOURCES_FILE="/etc/apt/sources.list.d/http_apt_llvm_org_${CODENAME}_-${VERSION_CODENAME}.sources" + TEXT_TO_ADD="Types: deb +Architectures: amd64 arm64 +Signed-By: /etc/apt/trusted.gpg.d/apt.llvm.org.asc +URIs: ${BASE_URL}/${CODENAME}/ +Suites: llvm-toolchain${LINKNAME}${LLVM_VERSION_STRING} +Components: main" + echo "$TEXT_TO_ADD" | tee -a "$SOURCES_FILE" > /dev/null +else + add-apt-repository -y "${REPO_NAME}" +fi + +apt-get update +PKG="clang-$LLVM_VERSION lldb-$LLVM_VERSION lld-$LLVM_VERSION clangd-$LLVM_VERSION" +if [[ $ALL -eq 1 ]]; then + # same as in test-install.sh + # No worries if we have dups + PKG="$PKG clang-tidy-$LLVM_VERSION clang-format-$LLVM_VERSION clang-tools-$LLVM_VERSION llvm-$LLVM_VERSION-dev lld-$LLVM_VERSION lldb-$LLVM_VERSION llvm-$LLVM_VERSION-tools libomp-$LLVM_VERSION-dev libc++-$LLVM_VERSION-dev libc++abi-$LLVM_VERSION-dev libclang-common-$LLVM_VERSION-dev libclang-$LLVM_VERSION-dev libclang-cpp$LLVM_VERSION-dev liblldb-$LLVM_VERSION-dev libunwind-$LLVM_VERSION-dev" + if test $LLVM_VERSION -gt 14; then + PKG="$PKG libclang-rt-$LLVM_VERSION-dev libpolly-$LLVM_VERSION-dev" + fi +fi +apt-get install -y $PKG diff --git a/my_driver/Makefile b/my_driver/Makefile new file mode 100644 index 0000000000000..713d6bc9ab2ed --- /dev/null +++ b/my_driver/Makefile @@ -0,0 +1,12 @@ +obj-m := user_dma.o +KDIR := /home/han/Desktop/evl_riscv/linux +PWD := $(shell pwd) + +CROSS_COMPILE := riscv64-linux-gnu- +ARCH := riscv + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) clean diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c new file mode 100644 index 0000000000000..b4f0ee7e542cf --- /dev/null +++ b/my_driver/user_dma.c @@ -0,0 +1,120 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DEVICE_NAME "user_dma" +static dev_t dev_num; +static struct cdev user_dma_cdev; +static struct class *user_dma_class; + +static struct dma_chan *dma_chan; + +struct dma_transfer { + dma_addr_t src; + dma_addr_t dst; + size_t len; +}; + +// 完成中断回调 +static void dma_complete_func(void *completion) +{ + complete(completion); +} + +static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct dma_transfer xfer; + struct dma_async_tx_descriptor *tx; + dma_cookie_t cookie; + struct completion cmp; + + if (copy_from_user(&xfer, (void __user *)arg, sizeof(xfer))) + return -EFAULT; + + init_completion(&cmp); + + tx = dmaengine_prep_dma_memcpy(dma_chan, xfer.dst, xfer.src, xfer.len, DMA_PREP_INTERRUPT); + if (!tx) + return -EIO; + + tx->callback = dma_complete_func; + tx->callback_param = &cmp; + + cookie = dmaengine_submit(tx); + dma_async_issue_pending(dma_chan); + + // 等待完成 + wait_for_completion(&cmp); + return 0; +} + +static int user_dma_open(struct inode *inode, struct file *file) +{ + pr_info("user_dma opened\n"); + return 0; +} + +static int user_dma_release(struct inode *inode, struct file *file) +{ + pr_info("user_dma released\n"); + return 0; +} + +static const struct file_operations user_dma_fops = { + .owner = THIS_MODULE, + .open = user_dma_open, + .release = user_dma_release, + .unlocked_ioctl = user_dma_ioctl, +}; + +static int __init user_dma_init(void) +{ + int ret; + + // 申请DMA通道 + dma_chan = dma_request_chan(NULL, "memcpy"); + if (IS_ERR(dma_chan)) { + pr_err("Failed to request DMA channel\n"); + return PTR_ERR(dma_chan); + } + + // 注册字符设备 + ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); + if (ret < 0) { + pr_err("Failed to alloc chrdev\n"); + dma_release_channel(dma_chan); + return ret; + } + + cdev_init(&user_dma_cdev, &user_dma_fops); + cdev_add(&user_dma_cdev, dev_num, 1); + + user_dma_class = class_create(DEVICE_NAME); + device_create(user_dma_class, NULL, dev_num, NULL, DEVICE_NAME); + + pr_info("user_dma module loaded\n"); + return 0; +} + +static void __exit user_dma_exit(void) +{ + device_destroy(user_dma_class, dev_num); + class_destroy(user_dma_class); + cdev_del(&user_dma_cdev); + unregister_chrdev_region(dev_num, 1); + + dma_release_channel(dma_chan); + pr_info("user_dma module unloaded\n"); +} + +module_init(user_dma_init); +module_exit(user_dma_exit); + +MODULE_LICENSE("GPL"); From 9c396fddd1d8c2a0c26d454e2a5e1a146fd659c3 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 27 Aug 2025 22:16:45 -0700 Subject: [PATCH 02/25] feat:inband memcpy dma operation success: user_dma driver and ib script added --- my_driver/user_dma.c | 183 ++++++++++++++++++++++++----- user_scripts/ib_test/Makefile | 16 +++ user_scripts/ib_test/test_ib_dma | Bin 0 -> 8920 bytes user_scripts/ib_test/test_ib_dma.c | 40 +++++++ 4 files changed, 211 insertions(+), 28 deletions(-) create mode 100644 user_scripts/ib_test/Makefile create mode 100755 user_scripts/ib_test/test_ib_dma create mode 100644 user_scripts/ib_test/test_ib_dma.c diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index b4f0ee7e542cf..1a2b0aa6e2a53 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -8,56 +8,149 @@ #include #include #include +#include +#include -#define DEVICE_NAME "user_dma" +#define DEVICE_NAME "user_dma" +#define BUF_LEN 4096 + +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) + +//char device static dev_t dev_num; static struct cdev user_dma_cdev; static struct class *user_dma_class; - +//dma channel static struct dma_chan *dma_chan; - -struct dma_transfer { - dma_addr_t src; - dma_addr_t dst; - size_t len; +dma_cap_mask_t mask; +//transfer info +struct transfer_config { + //bus addr that dmac can use + dma_addr_t dma_buf_src; + dma_addr_t dma_buf_des; + //virt addr that driver can use + void *buf_src; + void *buf_des; }; - +static struct transfer_config trans_config; +// +struct completion cmp; // 完成中断回调 static void dma_complete_func(void *completion) { complete(completion); + pr_info("\ndma complete callback is called\n"); + return; } +static void fill_source_buffer(void) +{ + int num = 0; + unsigned char *src_buf = trans_config.buf_src; + for(int i=0;icallback = dma_complete_func; + tx->callback_param = &cmp; + pr_info("\ndma prepare comp\n"); + //submit + cookie = dmaengine_submit(tx); + pr_info("\ndma submit comp\n"); + //issue pending + dma_async_issue_pending(dma_chan); + pr_info("\ndma issue pending comp\n"); + //wait for dma to comp + pr_info("\nwait for dma to comp\n"); + wait_for_completion(&cmp); + pr_info("\nwait finish\n"); + //check the pattern in dest buffer + output = (check_dest_buffer())?(0):(1); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + default: + return -ENOTTY; + return 0; + } - init_completion(&cmp); + - tx = dmaengine_prep_dma_memcpy(dma_chan, xfer.dst, xfer.src, xfer.len, DMA_PREP_INTERRUPT); - if (!tx) - return -EIO; + // tx = dmaengine_prep_dma_memcpy(dma_chan, xfer.dst, xfer.src, xfer.len, DMA_PREP_INTERRUPT); + // if (!tx) + // return -EIO; - tx->callback = dma_complete_func; - tx->callback_param = &cmp; + // tx->callback = dma_complete_func; + // tx->callback_param = &cmp; - cookie = dmaengine_submit(tx); - dma_async_issue_pending(dma_chan); + // cookie = dmaengine_submit(tx); + // dma_async_issue_pending(dma_chan); - // 等待完成 - wait_for_completion(&cmp); + // // 等待完成 + // wait_for_completion(&cmp); return 0; } static int user_dma_open(struct inode *inode, struct file *file) { - pr_info("user_dma opened\n"); + pr_info("\nuser_dma opened\n"); + //print the channel info here + if (!dma_chan) + { + pr_err("\nDMA channel not initialized\n"); + return -ENODEV; + } + pr_info("\nDMA channel info: name=%s id=%d\n", + dma_chan_name(dma_chan), + dma_chan->chan_id); + + //use dma_alloc_coherent to allocate memory that dmac can reach + //better use the dev of the dmac to get buffer + //when using the dev of this driver,error will occur + trans_config.buf_src = dma_alloc_coherent(dma_chan->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); + trans_config.buf_des = dma_alloc_coherent(dma_chan->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); + if(!trans_config.buf_src && !trans_config.buf_des) + { + pr_err("\nDMAC reachable buffer not initialized\n"); + return -ENODEV; + } + pr_info("\nallocate DMAC reachable buffer success\n"); return 0; } @@ -73,19 +166,48 @@ static const struct file_operations user_dma_fops = { .release = user_dma_release, .unlocked_ioctl = user_dma_ioctl, }; +//filter dmac by device name,target for dw-axi-dmac +static bool my_dma_filter(struct dma_chan *chan, void *param) +{ + if (!chan || !chan->device) + return false; + + struct device *dev = chan->device->dev; + const char *target_name = param; + + if (!dev || !dev->of_node) + return false; + const char *node_name = of_node_full_name(dev->of_node); + if (!node_name) { + return false; + } + + return strcmp(node_name, target_name) == 0; +} static int __init user_dma_init(void) { int ret; - // 申请DMA通道 - dma_chan = dma_request_chan(NULL, "memcpy"); + dma_cap_zero(mask); + dma_cap_set(DMA_MEMCPY, mask); + + pr_info("start to request for dma channel\n"); + // request for dma channels + dma_chan = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); + pr_info("end to request for dma channel\n"); + if (IS_ERR(dma_chan)) { pr_err("Failed to request DMA channel\n"); return PTR_ERR(dma_chan); + } else { + if(dma_chan && dma_chan->device && dma_chan->device->dev) { + pr_info("Got channel: %s\n", dma_chan_name(dma_chan)); + } else { + pr_info("Got channel, but device not ready yet\n"); + } } - - // 注册字符设备 + // register char device ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); if (ret < 0) { pr_err("Failed to alloc chrdev\n"); @@ -105,8 +227,13 @@ static int __init user_dma_init(void) static void __exit user_dma_exit(void) { + //release dma buffer + dma_free_coherent(dma_chan->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); + dma_free_coherent(dma_chan->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); + device_destroy(user_dma_class, dev_num); class_destroy(user_dma_class); + cdev_del(&user_dma_cdev); unregister_chrdev_region(dev_num, 1); diff --git a/user_scripts/ib_test/Makefile b/user_scripts/ib_test/Makefile new file mode 100644 index 0000000000000..87456c1dbe2b5 --- /dev/null +++ b/user_scripts/ib_test/Makefile @@ -0,0 +1,16 @@ +# 交叉编译工具链前缀 +CROSS_COMPILE = riscv64-linux-gnu- +CC = $(CROSS_COMPILE)gcc + +# the exec finally generated +TARGET = test_ib_dma +# source code +SRC = test_ib_dma.c + +all: $(TARGET) + +$(TARGET): $(SRC) + $(CC) -Wall -O2 -o $@ $^ + +clean: + rm -f $(TARGET) diff --git a/user_scripts/ib_test/test_ib_dma b/user_scripts/ib_test/test_ib_dma new file mode 100755 index 0000000000000000000000000000000000000000..126ae737e86e5084df4278c8c3e0037761f1555b GIT binary patch literal 8920 zcmeHMeQXrR6`#Aa4JKf0++q?;vNj<=Rj+M63?ymlvwb#hjiI(dAxgWf_txhN_r>m> zW7DJRxqb5?CrjaUDYWjf`RiZ#u8bz|(@L@!Y``+xl zyWRC2t)l)@iIMl-yx)6o=FRNP?7Zhgp^jF+&&Q|)*vAaHo`p8jCh?3oxz>fPVwQ%~=Y!v##D*RlW5x1JNKc}ajRW>X8?;wfMyH^e#gU|A0QzC8HDdGJxd z%W|~ySRVa{^5DTd_~tzLiadBL;MMSW%NqblUJ&?Rc$PWl?HuXAd)M#{H!wv>8PSB* zr)d5ASxPsIq`^{Y%LIXGsoH+Tl|D5ZW6`8$#h4aLnmS9S^aN;VgR0UOO{lTxK^<6Z z6|D?QiL22ByW7fgHXli=MwqpAv^O;?8{`dJn9|;}Lka7K9*LTkZuIPEjwKU%kJ=l9 zZcvs}Vh_#_tIZFq)u#5Zz4Gwa$0DGHYgK~h=*!=L?G|9KKphLpeL!hn*>ZnIPUj8o z1uP@tpqLTo5aE@y?>+b>I#?ub&i53r2|ne)X}#|gIPN2SsPs#A4Ke4rG3dY-+baBb z*nx{9l;bM|j%PBB0R@r+$NfxYon+Tg-+7MLIdJDz-Ri(;3b2Jn2QH=zVYc0Yi%$W^ zcR6s}%Ty*;Gqy4Cb};bs(UawY=6{_U0oq;8M$e7F`z~P>GK}kqiI*aQ5>^gIHecf5 zCnh{{4?ppuNABS#PI%-Qe(1m>A5Fp`Gx}P~iPQVWLlrP-<%MIFMc1llp13kS^ZDCa zb79eEUZ{YVSYA}LauVdH#tJJ7L(?;duJ2;VkG@`5RXqm$EiF`7V7H)G0)Jy!tI%J? z_5Xod4_)(xsw1cOX%F1=pGoDJTHtUB+^g334z&AGu9-cbVdS3;+-tq-)rHhVD&nO@IPfk_=e)!Kf zM}}c`KaHdN?z58>fE``?tTz5VRsqu<*m(J?S^#$DD0sqk^t7$>S8M#G@;`2AJoWpV zfuFuIHg@e(;M*w(-3sJI_mDSoeGWAS)n(LW!#*7;G_)je0r_ik&{ zmKL+KV^`ItFW&4u?Tc09FKZf0%=s!r8TBxrZr7B&AxOjHY6_+M=7(Zqz~#^+5&x{ z1>ex5B@L*tv@Z1-$+)y%Hxhd6QE5$BYzE(s0+?qwuT};g!*8<>o~Q53&3zU@D0F@W z4t6o$b3Wh7C4P?KcV!*u!FFJ50b1QF_h#VU4E(>(0PSQi#k&p`iT^^}B<>?sf~RjW z9ErTpJw}9yjN}gp`K++76g$jLeVTLiU)xY8*KJyFqjzr!zUS~&qkMu>7jO0yhr96r8>ScF5Ck9+rFH3m zq5VQe>(PxDFBbi_S_f{tn9+K3Ny2z>UKdFUNWbVD>~h-A zPHBKGXUB5tSFjT~aoV-nR&ZMvu)oh`5xdsK$>L1hM)Ieil1slo4{iePhq!uz4hYdu zTHxnA_%VTJ;y9K3ET1bF7D4 z^RNUQ^Wl7Y*5_L8aM`@|u$A;Z>mexgz3ZxnTM6~my1P(jO^MGSsV?eBb+V(F3 zE;;n5S`P|Rj&=A0&@YAgKj|@go#V^rt+zJ>?p>e1=J@<|{sG{*@=&+(;LE_zT>7hxT9fF-N?r~f8I8Wb|~-6 z;|#EQ74TAAKkM9Woz2t!&$xbeUy#+idGs%EJewb+JlCJ{=uhXt{czE!rp_F672sw5 z`RCPoz$J%XrV2r!!IP^IO{>w2q-oY>va3AT8cC#Ux7EsW_HVu%le68LVb#k?7E7vO zC6Z#6ZdyvT7voJ?V<0rGbYCA-v)MAmiYt(%OX!%x3n!IGEZM8Zl(3aFOhru(GA$WT z#dHWb<%TT{^|_TWtrt~P!%&A5Jz*I`tj|#6x)M&u<3nKL;1tlbT&jxF+7;XpQbL_A zio%p#T|1jYExWryN=JL=7lUmfr6<_b5dw+ZG|ZHiy`8}w?agip&nN-}nPnxkU9`Qu zrHd(T9Xp$X9m>wu*6vVGwpE^o)XX#=#NCsLN>g_?`KgChOND;ATY^17r76_b-ihuj z9@dlPY;1HUE*;rakHDQx^$4+NJ97&CWi@$X)T?SHm3}o5=Bdz~pd5}S6v#oq?AZxe z95}ubJ5}qk7K9ueeoY0mQ} zb7gZVZmGRYHZ8-Z{Z!+=r4WfVB>57N^?tDd`oo}49FtRqp4|*gcGk1| zi94ajqZ(9j!O4*%G;P{-n0zL~293j}%bX^kxPoyU9My1Fu?yX&iB<`m2i)@t@)cqI5kX|H)6H`@tS# zP2wreAlk@#wR8VY{{_qrLIvlP>?s~0dO;{s|K9PxAncoj9>pz0-*VVv%yKf$M=;FQSyMrAEB{zXk%F3tWR(C{CmQ^Lq7ZItYIoY)arEd%Abeh=2Z& z9=45zc%r`nY$-fsPjTPue`)^#*y6h<`%HX@PGJ!*hSmr5OYi>*sNk3~_7X5ygaYZ? zVAg-)KZJ_YexYPb77F`eo6Y=Edqk%};L zi~j2f5R~lKdvLOMQd;{?)t`v|FNlf9{9X+_G;TWoiUA|vo%Sb1g00yjq<%>kV-t@G P7rieMiUl4656k`yx@fWO literal 0 HcmV?d00001 diff --git a/user_scripts/ib_test/test_ib_dma.c b/user_scripts/ib_test/test_ib_dma.c new file mode 100644 index 0000000000000..bbf9be047505e --- /dev/null +++ b/user_scripts/ib_test/test_ib_dma.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include +#include + +// 这里定义与驱动中一致的 ioctl 命令 +// 假设驱动里是 _IO('M', 1) +// #define MY_IOCTL_CMD _IO('M', 1) +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) + +int main(int argc, char *argv[]) +{ + const char *dev = "/dev/user_dma"; + int fd; + int value; + + fd = open(dev, O_RDWR); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + + printf("Opened device %s successfully.\n", dev); + + // ioctl + int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("ioctl executed success\n"); + printf("Got value from kernel: %d\n", value); + + close(fd); + return 0; +} From 8ee0710b146fc79c374e13590a9fa1b12f1a9825 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 3 Sep 2025 08:00:09 -0700 Subject: [PATCH 03/25] feat:replace lock apis in driver from spin_lock to vchan_lock,the inband operation success --- config | 8599 +++++++++++++++++ .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 96 +- 2 files changed, 8680 insertions(+), 15 deletions(-) create mode 100644 config diff --git a/config b/config new file mode 100644 index 0000000000000..b931fc33c3ec1 --- /dev/null +++ b/config @@ -0,0 +1,8599 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/riscv 6.6.20 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=120200 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=24000 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=24000 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_COMPILE_TEST=y +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +CONFIG_BUILD_SALT="" +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="StarFive" +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_USELIB=y +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_IRQ_IPI=y +CONFIG_GENERIC_IRQ_IPI_MUX=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +# CONFIG_BPF_JIT is not set +CONFIG_BPF_UNPRIV_DEFAULT_OFF=y +# end of BPF subsystem + +CONFIG_PREEMPT_NONE_BUILD=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_DYNAMIC is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_TRACE_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +# CONFIG_PRINTK_INDEX is not set +CONFIG_GENERIC_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_CC_NO_ARRAY_BOUNDS=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set +# CONFIG_MEMCG is not set +# CONFIG_BLK_CGROUP is not set +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_RDMA is not set +# CONFIG_CGROUP_FREEZER is not set +# CONFIG_CGROUP_HUGETLB is not set +# CONFIG_CPUSETS is not set +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CGROUP_CPUACCT is not set +# CONFIG_CGROUP_PERF is not set +CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_MISC is not set +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_CHECKPOINT_RESTORE=y +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_RD_ZSTD=y +# CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y +# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_LD_ORPHAN_WARN_LEVEL="warn" +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_EXPERT=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +CONFIG_SYSFS_SYSCALL=y +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +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 +# CONFIG_KALLSYMS_SELFTEST is not set +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +CONFIG_CACHESTAT_SYSCALL=y +# CONFIG_DEBUG_RSEQ is not set +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_SYSTEM_DATA_VERIFICATION=y +# CONFIG_PROFILING is not set + +# +# Kexec and crash features +# +# CONFIG_KEXEC is not set +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +# end of Kexec and crash features +# end of General setup + +CONFIG_64BIT=y +CONFIG_RISCV=y +CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 +CONFIG_RISCV_SBI=y +CONFIG_MMU=y +CONFIG_PAGE_OFFSET=0xff60000000000000 +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=5 +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_RISCV_DMA_NONCOHERENT=y +CONFIG_AS_HAS_INSN=y +CONFIG_AS_HAS_OPTION_ARCH=y + +# +# SoC selection +# +# CONFIG_SOC_MICROCHIP_POLARFIRE is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_SOC_SIFIVE is not set +CONFIG_ARCH_STARFIVE=y +CONFIG_SOC_STARFIVE=y +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_THEAD is not set +# CONFIG_SOC_VIRT is not set +# end of SoC selection + +# +# CPU errata selection +# +# CONFIG_ERRATA_ANDES is not set +# CONFIG_ERRATA_SIFIVE is not set +# CONFIG_ERRATA_THEAD is not set +# end of CPU errata selection + +# +# Platform type +# +CONFIG_NONPORTABLE=y +# CONFIG_ARCH_RV32I is not set +CONFIG_ARCH_RV64I=y +# CONFIG_CMODEL_MEDLOW is not set +CONFIG_CMODEL_MEDANY=y +CONFIG_MODULE_SECTIONS=y +CONFIG_SMP=y +# CONFIG_SCHED_MC is not set +CONFIG_NR_CPUS=64 +CONFIG_HOTPLUG_CPU=y +CONFIG_RISCV_AMP=y +CONFIG_TUNE_GENERIC=y +# CONFIG_NUMA is not set +CONFIG_RISCV_ALTERNATIVE=y +CONFIG_RISCV_ISA_C=y +CONFIG_RISCV_ISA_SVNAPOT=y +CONFIG_RISCV_ISA_SVPBMT=y +CONFIG_TOOLCHAIN_HAS_V=y +CONFIG_RISCV_ISA_V=y +CONFIG_RISCV_ISA_V_DEFAULT_ENABLE=y +CONFIG_TOOLCHAIN_HAS_ZBB=y +CONFIG_RISCV_ISA_ZBB=y +CONFIG_RISCV_ISA_ZICBOM=y +CONFIG_RISCV_ISA_ZICBOZ=y +CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y +CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y +CONFIG_FPU=y +CONFIG_IRQ_STACKS=y +CONFIG_THREAD_SIZE_ORDER=2 +# end of Platform type + +# +# Kernel features +# +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_SCHED_HRTICK=y +# CONFIG_RISCV_SBI_V01 is not set +# CONFIG_RISCV_BOOT_SPINWAIT is not set +CONFIG_ARCH_SUPPORTS_KEXEC=y +CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y +CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y +CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y +CONFIG_COMPAT=y +# CONFIG_RELOCATABLE is not set +# CONFIG_RANDOMIZE_BASE is not set +# end of Kernel features + +# +# Boot options +# +CONFIG_CMDLINE="" +CONFIG_EFI_STUB=y +CONFIG_EFI=y +CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y +# CONFIG_PHYS_RAM_BASE_FIXED is not set +CONFIG_RISCV_ISA_FALLBACK=y +# end of Boot options + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y +CONFIG_PM_STD_PARTITION="PARTLABEL=hibernation" +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_USERSPACE_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +CONFIG_PM_TEST_SUSPEND=y +CONFIG_PM_SLEEP_DEBUG=y +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# end of Power management options + +# +# CPU Power Management +# + +# +# CPU Idle +# +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 +CONFIG_DT_IDLE_GENPD=y + +# +# RISC-V CPU Idle Drivers +# +CONFIG_RISCV_SBI_CPUIDLE=y +# end of RISC-V CPU Idle Drivers +# end of CPU Idle + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_QORIQ_CPUFREQ is not set +# end of CPU Frequency scaling +# end of CPU Power Management + +# CONFIG_VIRTUALIZATION is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +# CONFIG_ACPI is not set + +# +# General architecture-dependent options +# +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_GENERIC_ENTRY=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_DMA_SET_UNCACHED=y +CONFIG_ARCH_HAS_DMA_CLEAR_UNCACHED=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +# CONFIG_SECCOMP is not set +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_LTO_NONE=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_VDSO_DATA=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_DYNAMIC_SIGFRAME=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +CONFIG_GCC_PLUGINS=y +# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +CONFIG_FUNCTION_ALIGNMENT=0 +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_DEBUG is not set +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set +CONFIG_MODVERSIONS=y +CONFIG_ASM_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BLK_CGROUP_PUNT_BIO=y +CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_ICQ=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_WBT is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y +# end of Partition Types + +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLK_MQ_STACKING=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +CONFIG_IOSCHED_BFQ=y +# end of IO Schedulers + +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_MMIOWB=y +CONFIG_MMIOWB=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_ARCH_HAS_BINFMT_FLAT=y +# CONFIG_BINFMT_FLAT is not set +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB_DEPRECATED is not set +CONFIG_SLUB=y +# CONFIG_SLUB_TINY is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_COMPAT_BRK=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_WANTS_THP_SWAP=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +# CONFIG_CMA_SYSFS is not set +CONFIG_CMA_AREAS=7 +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ZONE_DMA32=y +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +# CONFIG_DMAPOOL_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_MEMFD_CREATE=y +CONFIG_SECRETMEM=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set +# CONFIG_LRU_GEN is not set +CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y +CONFIG_LOCK_MM_AND_FIND_VMA=y + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options + +CONFIG_NET=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_NET_XGRESS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set +CONFIG_NET_HANDSHAKE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +# CONFIG_IP_MULTIPLE_TABLES is not set +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 +CONFIG_INET_TUNNEL=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_INET_RAW_DIAG is not set +# CONFIG_INET_DIAG_DESTROY is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set +# CONFIG_MPTCP is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_EGRESS=y +CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_BPF_LINK=y +# CONFIG_NETFILTER_NETLINK_HOOK is not set +CONFIG_NETFILTER_NETLINK_ACCT=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NETFILTER_NETLINK_OSF is not set +CONFIG_NF_CONNTRACK=y +# CONFIG_NF_LOG_SYSLOG is not set +# CONFIG_NF_CONNTRACK_MARK is not set +# CONFIG_NF_CONNTRACK_ZONES is not set +# CONFIG_NF_CONNTRACK_PROCFS is not set +# CONFIG_NF_CONNTRACK_EVENTS is not set +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +# CONFIG_NF_CONNTRACK_LABELS is not set +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +# CONFIG_NF_CONNTRACK_AMANDA is not set +# CONFIG_NF_CONNTRACK_FTP is not set +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +# CONFIG_NF_CONNTRACK_SIP is not set +# CONFIG_NF_CONNTRACK_TFTP is not set +# CONFIG_NF_CT_NETLINK is not set +CONFIG_NF_NAT=y +CONFIG_NF_NAT_REDIRECT=y +CONFIG_NF_NAT_MASQUERADE=y +CONFIG_NF_TABLES=y +# CONFIG_NF_TABLES_INET is not set +# CONFIG_NF_TABLES_NETDEV is not set +# CONFIG_NFT_NUMGEN is not set +CONFIG_NFT_CT=y +# CONFIG_NFT_CONNLIMIT is not set +# CONFIG_NFT_LOG is not set +# CONFIG_NFT_LIMIT is not set +# CONFIG_NFT_MASQ is not set +# CONFIG_NFT_REDIR is not set +# CONFIG_NFT_NAT is not set +# CONFIG_NFT_TUNNEL is not set +# CONFIG_NFT_QUEUE is not set +# CONFIG_NFT_QUOTA is not set +# CONFIG_NFT_REJECT is not set +CONFIG_NFT_COMPAT=y +# CONFIG_NFT_HASH is not set +CONFIG_NFT_FIB=y +# CONFIG_NFT_SOCKET is not set +# CONFIG_NFT_OSF is not set +# CONFIG_NFT_TPROXY is not set +# CONFIG_NFT_SYNPROXY is not set +# CONFIG_NF_FLOW_TABLE is not set +CONFIG_NETFILTER_XTABLES=y +# CONFIG_NETFILTER_XTABLES_COMPAT is not set + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=y +# CONFIG_NETFILTER_XT_CONNMARK is not set + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LED is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +# CONFIG_NETFILTER_XT_TARGET_MARK is not set +CONFIG_NETFILTER_XT_NAT=y +CONFIG_NETFILTER_XT_TARGET_NETMAP=y +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +CONFIG_NETFILTER_XT_TARGET_REDIRECT=y +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set + +# +# Xtables matches +# +# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +CONFIG_NETFILTER_XT_MATCH_IPCOMP=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +CONFIG_NETFILTER_XT_MATCH_STRING=y +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +CONFIG_NETFILTER_XT_MATCH_U32=y +# end of Core Netfilter Configuration + +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_SOCKET_IPV4=y +# CONFIG_NF_TPROXY_IPV4 is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_DUP_IPV4=y +CONFIG_NFT_FIB_IPV4=y +# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_DUP_IPV4=y +# CONFIG_NF_LOG_ARP is not set +# CONFIG_NF_LOG_IPV4 is not set +CONFIG_NF_REJECT_IPV4=y +CONFIG_IP_NF_IPTABLES=y +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +# CONFIG_IP_NF_TARGET_SYNPROXY is not set +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +# CONFIG_IP_NF_MANGLE is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_TABLES_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +# CONFIG_NF_REJECT_IPV6 is not set +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_IP6_NF_IPTABLES is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=y +# CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +CONFIG_NETLINK_DIAG=y +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_STREAM_PARSER is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +CONFIG_CAN=y +CONFIG_CAN_RAW=y +CONFIG_CAN_BCM=y +CONFIG_CAN_GW=y +# CONFIG_CAN_J1939 is not set +# CONFIG_CAN_ISOTP is not set +CONFIG_BT=y +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +# CONFIG_BT_HIDP is not set +# CONFIG_BT_HS is not set +CONFIG_BT_LE=y +CONFIG_BT_LE_L2CAP_ECRED=y +# CONFIG_BT_LEDS is not set +# CONFIG_BT_MSFTEXT is not set +# CONFIG_BT_AOSPEXT is not set +CONFIG_BT_DEBUGFS=y +# CONFIG_BT_SELFTEST is not set +# CONFIG_BT_FEATURE_DEBUG is not set + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBCM4377 is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +# CONFIG_BT_MTKSDIO is not set +# CONFIG_BT_QCOMSMD is not set +# CONFIG_BT_VIRTIO is not set +CONFIG_BT_AICUSB=y +# end of Bluetooth device drivers + +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_MCTP is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +# CONFIG_CFG80211_WEXT is not set +CONFIG_LIB80211=y +CONFIG_LIB80211_CRYPT_WEP=y +CONFIG_LIB80211_CRYPT_CCMP=y +CONFIG_LIB80211_CRYPT_TKIP=y +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=y +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +CONFIG_RFKILL=y +CONFIG_RFKILL_LEDS=y +# CONFIG_RFKILL_INPUT is not set +# CONFIG_RFKILL_GPIO is not set +CONFIG_NET_9P=y +CONFIG_NET_9P_FD=y +CONFIG_NET_9P_VIRTIO=y +# CONFIG_NET_9P_DEBUG is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SELFTESTS=y +CONFIG_NET_SOCK_MSG=y +CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set +CONFIG_FAILOVER=y +CONFIG_ETHTOOL_NETLINK=y + +# +# Device Drivers +# +CONFIG_ARM_AMBA=y +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +# CONFIG_PCIEPORTBUS is not set +# CONFIG_PCIEASPM is not set +# CONFIG_PCIE_PTM is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +# CONFIG_PCI_DYNAMIC_OF_NODES is not set +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# +# CONFIG_PCI_AARDVARK is not set +# CONFIG_PCIE_ALTERA is not set +# CONFIG_PCIE_APPLE is not set +# CONFIG_PCI_VERSATILE is not set +# CONFIG_PCIE_BRCMSTB is not set +# CONFIG_PCI_HOST_THUNDER_PEM is not set +# CONFIG_PCI_HOST_THUNDER_ECAM is not set +# CONFIG_PCI_FTPCI100 is not set +# CONFIG_PCI_HOST_GENERIC is not set +# CONFIG_PCI_LOONGSON is not set +# CONFIG_PCIE_MEDIATEK is not set +# CONFIG_PCIE_MEDIATEK_GEN3 is not set +# CONFIG_PCIE_MT7621 is not set +# CONFIG_PCI_TEGRA is not set +# CONFIG_PCIE_RCAR_HOST is not set +# CONFIG_PCIE_ROCKCHIP_HOST is not set +# CONFIG_PCI_V3_SEMI is not set +# CONFIG_PCI_XGENE is not set +# CONFIG_PCIE_XILINX is not set +# CONFIG_PCIE_XILINX_NWL is not set +# CONFIG_PCIE_XILINX_CPM is not set + +# +# Cadence-based PCIe controllers +# +# CONFIG_PCIE_CADENCE_PLAT_HOST is not set +# CONFIG_PCI_J721E_HOST is not set +# end of Cadence-based PCIe controllers + +# +# DesignWare-based PCIe controllers +# +# CONFIG_PCIE_AL is not set +# CONFIG_PCI_MESON is not set +# CONFIG_PCIE_ARTPEC6_HOST is not set +# CONFIG_PCIE_BT1 is not set +# CONFIG_PCI_IMX6_HOST is not set +# CONFIG_PCI_LAYERSCAPE is not set +# CONFIG_PCI_HISI is not set +# CONFIG_PCIE_KIRIN is not set +# CONFIG_PCIE_HISI_STB is not set +# CONFIG_PCIE_INTEL_GW is not set +# CONFIG_PCIE_KEEMBAY_HOST is not set +# CONFIG_PCIE_ARMADA_8K is not set +# CONFIG_PCIE_TEGRA194_HOST is not set +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCIE_QCOM is not set +# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set +# CONFIG_PCI_EXYNOS is not set +# CONFIG_PCIE_FU740 is not set +# CONFIG_PCIE_UNIPHIER is not set +# CONFIG_PCIE_SPEAR13XX is not set +# CONFIG_PCI_KEYSTONE_HOST is not set +# CONFIG_PCIE_VISCONTI_HOST is not set +# end of DesignWare-based PCIe controllers + +# +# Mobiveil-based PCIe controllers +# +# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set +# CONFIG_PCIE_MOBIVEIL_PLAT is not set +# end of Mobiveil-based PCIe controllers + +# +# PLDA-based PCIe controllers +# +CONFIG_PCIE_PLDA_HOST=y +# CONFIG_PCIE_MICROCHIP_HOST is not set +CONFIG_PCIE_STARFIVE_HOST=y +# end of PLDA-based PCIe controllers +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set +# CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_AUXILIARY_BUS=y +# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +# CONFIG_FW_UPLOAD is not set +# end of Firmware loader + +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +CONFIG_GENERIC_ARCH_TOPOLOGY=y +# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_ARM_INTEGRATOR_LM is not set +# CONFIG_BT1_APB is not set +# CONFIG_BT1_AXI is not set +# CONFIG_MOXTET is not set +# CONFIG_HISILICON_LPC is not set +# CONFIG_INTEL_IXP4XX_EB is not set +# CONFIG_QCOM_EBI2 is not set +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set +# end of Bus devices + +# +# Cache Drivers +# +# CONFIG_AX45MP_L2_CACHE is not set +# end of Cache Drivers + +# CONFIG_CONNECTOR is not set + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# CONFIG_ARM_SCMI_PROTOCOL is not set +CONFIG_ARM_SCMI_POWER_DOMAIN=y +# CONFIG_ARM_SCMI_POWER_CONTROL is not set +# end of ARM System Control and Management Interface Protocol + +# CONFIG_ARM_SCPI_PROTOCOL is not set +CONFIG_ARM_SCPI_POWER_DOMAIN=y +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_TURRIS_MOX_RWTM is not set +# CONFIG_BCM47XX_NVRAM is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_ESRT=y +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB=y +# CONFIG_EFI_ZBOOT is not set +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +CONFIG_EFI_EARLYCON=y +# CONFIG_EFI_DISABLE_RUNTIME is not set +# CONFIG_EFI_COCO_SECRET is not set +# end of EFI (Extensible Firmware Interface) Support + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +# CONFIG_MTD_BCM63XX_PARTS is not set +# CONFIG_MTD_BRCM_U_BOOT is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_OF_PARTS_BCM4908 is not set +# CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set +# CONFIG_MTD_PARSER_IMAGETAG is not set +# CONFIG_MTD_PARSER_TPLINK_SAFELOADER is not set +# CONFIG_MTD_PARSER_TRX is not set +# CONFIG_MTD_SHARPSL_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y + +# +# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. +# +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_OTP is not set +# CONFIG_MTD_CFI_INTELEXT is not set +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_SC520CDP is not set +# CONFIG_MTD_NETSC520 is not set +# CONFIG_MTD_TS5500 is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_MCHP23K256 is not set +# CONFIG_MTD_MCHP48L640 is not set +CONFIG_MTD_SPEAR_SMI=y +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +# end of Self-contained MTD device drivers + +# +# NAND +# +# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_RAW_NAND is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# ECC engine support +# +# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set +# CONFIG_MTD_NAND_ECC_SW_BCH is not set +# CONFIG_MTD_NAND_ECC_MXIC is not set +# CONFIG_MTD_NAND_ECC_MEDIATEK is not set +# end of ECC engine support +# end of NAND + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set +CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y +# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set +# CONFIG_SPI_HISI_SFC is not set +# CONFIG_SPI_NXP_SPIFI is not set +# CONFIG_MTD_UBI is not set +# CONFIG_MTD_HYPERBUS is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +# CONFIG_OF_ALL_DTBS is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_CONFIGFS=y +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +CONFIG_CDROM=y +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_VIRTIO_BLK=y +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_UBLK is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +# CONFIG_NVME_MULTIPATH is not set +# CONFIG_NVME_VERBOSE_ERRORS is not set +# CONFIG_NVME_HWMON is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# CONFIG_NVME_AUTH is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ATMEL_SSC is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_SMPRO_ERRMON is not set +# CONFIG_SMPRO_MISC is not set +# CONFIG_GEHC_ACHC is not set +# CONFIG_HP_ILO is not set +# CONFIG_QCOM_COINCELL is not set +# CONFIG_QCOM_FASTRPC is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_PCH_PHUB is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_HISI_HIKEY_USB is not set +# CONFIG_OPEN_DICE is not set +# CONFIG_VCPU_STALL_DETECTOR is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=y +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_BCM_VK is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set +# CONFIG_PVPANIC is not set +# CONFIG_GP_PCI1XXXX is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI_COMMON=y +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_CHR_DEV_SG is not set +CONFIG_BLK_DEV_BSG=y +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_HISI_SAS is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_MPI3MR is not set +# CONFIG_SCSI_SMARTPQI is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_MYRB is not set +# CONFIG_SCSI_MYRS is not set +# CONFIG_SCSI_SNIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FDOMAIN_PCI is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_WD719X is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +CONFIG_SCSI_VIRTIO=y +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +CONFIG_ATA=y +CONFIG_SATA_HOST=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_FORCE=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_AHCI_BRCM is not set +# CONFIG_AHCI_DA850 is not set +# CONFIG_AHCI_DM816 is not set +# CONFIG_AHCI_DWC is not set +# CONFIG_AHCI_ST is not set +# CONFIG_AHCI_IMX is not set +# CONFIG_AHCI_CEVA is not set +# CONFIG_AHCI_MTK is not set +# CONFIG_AHCI_MVEBU is not set +# CONFIG_AHCI_SUNXI is not set +# CONFIG_AHCI_TEGRA is not set +# CONFIG_AHCI_XGENE is not set +# CONFIG_AHCI_QORIQ is not set +# CONFIG_SATA_FSL is not set +# CONFIG_SATA_GEMINI is not set +# CONFIG_SATA_AHCI_SEATTLE is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_DWC is not set +# CONFIG_SATA_HIGHBANK is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_RCAR is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARASAN_CF is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5536 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IMX is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_PXA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_IXP4XX_CF is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OF_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_MD_BITMAP_FILE=y +# CONFIG_BCACHE is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_UNSTRIPED is not set +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_THIN_PROVISIONING is not set +# CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set +# CONFIG_DM_EBS is not set +# CONFIG_DM_ERA is not set +# CONFIG_DM_CLONE is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_DUST is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_DM_VERITY is not set +# CONFIG_DM_SWITCH is not set +# CONFIG_DM_LOG_WRITES is not set +# CONFIG_DM_INTEGRITY is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_WIREGUARD is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_AMT is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_TUN is not set +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +CONFIG_VIRTIO_NET=y +# CONFIG_NLMON is not set +# CONFIG_ARCNET is not set +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_3COM=y +# CONFIG_VORTEX is not set +# CONFIG_TYPHOON is not set +# CONFIG_NET_VENDOR_ACTIONS is not set +CONFIG_NET_VENDOR_ADAPTEC=y +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_NET_VENDOR_AGERE=y +# CONFIG_ET131X is not set +# CONFIG_NET_VENDOR_ALACRITECH is not set +CONFIG_NET_VENDOR_ALTEON=y +# CONFIG_ACENIC is not set +# CONFIG_ALTERA_TSE is not set +# CONFIG_NET_VENDOR_AMAZON is not set +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +# CONFIG_PCNET32 is not set +# CONFIG_AMD_XGBE is not set +# CONFIG_PDS_CORE is not set +# CONFIG_NET_XGENE is not set +# CONFIG_NET_XGENE_V2 is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set +# CONFIG_NET_VENDOR_ARC is not set +CONFIG_NET_VENDOR_ASIX=y +# CONFIG_SPI_AX88796C is not set +CONFIG_NET_VENDOR_ATHEROS=y +# CONFIG_ATL2 is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_ALX is not set +# CONFIG_CX_ECAT is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set +# CONFIG_NET_CALXEDA_XGMAC is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +CONFIG_NET_VENDOR_CHELSIO=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_CHELSIO_T4 is not set +# CONFIG_CHELSIO_T4VF is not set +CONFIG_NET_VENDOR_CIRRUS=y +# CONFIG_CS89x0_PLATFORM is not set +# CONFIG_EP93XX_ETH is not set +CONFIG_NET_VENDOR_CISCO=y +# CONFIG_ENIC is not set +# CONFIG_NET_VENDOR_CORTINA is not set +CONFIG_NET_VENDOR_DAVICOM=y +# CONFIG_DM9000 is not set +# CONFIG_DM9051 is not set +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_DEC=y +# CONFIG_NET_TULIP is not set +CONFIG_NET_VENDOR_DLINK=y +# CONFIG_DL2K is not set +# CONFIG_SUNDANCE is not set +CONFIG_NET_VENDOR_EMULEX=y +# CONFIG_BE2NET is not set +CONFIG_NET_VENDOR_ENGLEDER=y +# CONFIG_TSNEP is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +CONFIG_NET_VENDOR_FARADAY=y +CONFIG_NET_VENDOR_FREESCALE=y +# CONFIG_FEC is not set +# CONFIG_FSL_FMAN is not set +# CONFIG_FSL_PQ_MDIO is not set +# CONFIG_FSL_XGMAC_MDIO is not set +# CONFIG_GIANFAR is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_VF is not set +# CONFIG_FSL_ENETC_IERB is not set +# CONFIG_FSL_ENETC_MDIO is not set +CONFIG_NET_VENDOR_FUNGIBLE=y +# CONFIG_FUN_ETH is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +CONFIG_NET_VENDOR_HISILICON=y +# CONFIG_HIX5HD2_GMAC is not set +# CONFIG_HISI_FEMAC is not set +# CONFIG_HIP04_ETH is not set +# CONFIG_HNS_DSAF is not set +# CONFIG_HNS_ENET is not set +# CONFIG_HNS3 is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_JME is not set +# CONFIG_KORINA is not set +CONFIG_NET_VENDOR_ADI=y +CONFIG_NET_VENDOR_LITEX=y +# CONFIG_LITEX_LITEETH is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MEDIATEK is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +CONFIG_NET_VENDOR_MICROSOFT=y +CONFIG_NET_VENDOR_MYRI=y +# CONFIG_MYRI10GE is not set +# CONFIG_FEALNX is not set +# CONFIG_NET_VENDOR_NI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +CONFIG_NET_VENDOR_NVIDIA=y +# CONFIG_FORCEDETH is not set +# CONFIG_LPC_ENET is not set +CONFIG_NET_VENDOR_OKI=y +# CONFIG_ETHOC is not set +CONFIG_NET_VENDOR_PACKET_ENGINES=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_NET_VENDOR_PENSANDO is not set +CONFIG_NET_VENDOR_QLOGIC=y +# CONFIG_QLA3XXX is not set +# CONFIG_QLCNIC is not set +# CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +CONFIG_NET_VENDOR_RDC=y +# CONFIG_R6040 is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +CONFIG_R8169=y +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_NET_VENDOR_SILAN=y +# CONFIG_SC92031 is not set +CONFIG_NET_VENDOR_SIS=y +# CONFIG_SIS900 is not set +# CONFIG_SIS190 is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +CONFIG_NET_VENDOR_SMSC=y +# CONFIG_SMC91X is not set +# CONFIG_EPIC100 is not set +# CONFIG_SMSC911X is not set +# CONFIG_SMSC9420 is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_SELFTESTS=y +CONFIG_STMMAC_PLATFORM=y +CONFIG_DWMAC_DWC_QOS_ETH=y +CONFIG_DWMAC_GENERIC=y +# CONFIG_DWMAC_ANARION is not set +# CONFIG_DWMAC_INGENIC is not set +# CONFIG_DWMAC_IPQ806X is not set +# CONFIG_DWMAC_LPC18XX is not set +# CONFIG_DWMAC_MEDIATEK is not set +# CONFIG_DWMAC_MESON is not set +# CONFIG_DWMAC_QCOM_ETHQOS is not set +# CONFIG_DWMAC_ROCKCHIP is not set +# CONFIG_DWMAC_SOCFPGA is not set +CONFIG_DWMAC_STARFIVE=y +# CONFIG_DWMAC_STI is not set +# CONFIG_DWMAC_STM32 is not set +# CONFIG_DWMAC_SUNXI is not set +# CONFIG_DWMAC_SUN8I is not set +# CONFIG_DWMAC_IMX8 is not set +# CONFIG_DWMAC_INTEL_PLAT is not set +# CONFIG_DWMAC_TEGRA is not set +# CONFIG_DWMAC_VISCONTI is not set +# CONFIG_DWMAC_LOONGSON is not set +# CONFIG_STMMAC_PCI is not set +CONFIG_NET_VENDOR_SUN=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NIU is not set +CONFIG_NET_VENDOR_SUNPLUS=y +# CONFIG_SP7021_EMAC is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +CONFIG_NET_VENDOR_TEHUTI=y +# CONFIG_TEHUTI is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_DAVINCI_EMAC is not set +# CONFIG_TI_DAVINCI_MDIO is not set +# CONFIG_TI_CPSW_PHY_SEL is not set +# CONFIG_TI_CPSW is not set +# CONFIG_TLAN is not set +CONFIG_NET_VENDOR_VERTEXCOM=y +# CONFIG_MSE102X is not set +# CONFIG_NET_VENDOR_VIA is not set +CONFIG_NET_VENDOR_WANGXUN=y +# CONFIG_NGBE is not set +# CONFIG_TXGBE is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XILINX is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLINK=y +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set +CONFIG_PHYLIB_LEDS=y +CONFIG_FIXED_PHY=y +# CONFIG_SFP is not set + +# +# MII PHY device drivers +# +# CONFIG_AMD_PHY is not set +# CONFIG_MESON_GXL_PHY is not set +# CONFIG_ADIN_PHY is not set +# CONFIG_ADIN1100_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AX88796B_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_BCM54140_PHY is not set +# CONFIG_BCM63XX_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +CONFIG_MARVELL_PHY=y +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MARVELL_88Q2XXX_PHY is not set +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set +CONFIG_MICREL_PHY=y +# CONFIG_MICROCHIP_T1S_PHY is not set +CONFIG_MICROCHIP_PHY=y +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +CONFIG_MOTORCOMM_PHY=y +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_CBTX_PHY is not set +# CONFIG_NXP_C45_TJA11XX_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_NCN26000_PHY is not set +# CONFIG_AT803X_PHY is not set +# CONFIG_QSEMI_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_DP83869_PHY is not set +# CONFIG_DP83TD510_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PSE_CONTROLLER is not set +CONFIG_CAN_DEV=y +# CONFIG_CAN_VCAN is not set +# CONFIG_CAN_VXCAN is not set +CONFIG_CAN_NETLINK=y +CONFIG_CAN_CALC_BITTIMING=y +# CONFIG_CAN_AT91 is not set +# CONFIG_CAN_BXCAN is not set +# CONFIG_CAN_CAN327 is not set +# CONFIG_CAN_FLEXCAN is not set +# CONFIG_CAN_GRCAN is not set +# CONFIG_CAN_KVASER_PCIEFD is not set +# CONFIG_CAN_SLCAN is not set +# CONFIG_CAN_SUN4I is not set +# CONFIG_CAN_XILINXCAN is not set +CONFIG_IPMS_CAN=y +# CONFIG_CAN_C_CAN is not set +# CONFIG_CAN_CC770 is not set +# CONFIG_CAN_CTUCANFD is not set +# CONFIG_CAN_CTUCANFD_PCI is not set +# CONFIG_CAN_CTUCANFD_PLATFORM is not set +# CONFIG_CAN_IFI_CANFD is not set +# CONFIG_CAN_M_CAN is not set +# CONFIG_CAN_PEAK_PCIEFD is not set +# CONFIG_CAN_RCAR is not set +# CONFIG_CAN_RCAR_CANFD is not set +# CONFIG_CAN_SJA1000 is not set +# CONFIG_CAN_SOFTING is not set + +# +# CAN SPI interfaces +# +# CONFIG_CAN_HI311X is not set +# CONFIG_CAN_MCP251X is not set +# CONFIG_CAN_MCP251XFD is not set +# end of CAN SPI interfaces + +# +# CAN USB interfaces +# +# CONFIG_CAN_8DEV_USB is not set +# CONFIG_CAN_EMS_USB is not set +# CONFIG_CAN_ESD_USB is not set +# CONFIG_CAN_ETAS_ES58X is not set +# CONFIG_CAN_F81604 is not set +# CONFIG_CAN_GS_USB is not set +# CONFIG_CAN_KVASER_USB is not set +# CONFIG_CAN_MCBA_USB is not set +# CONFIG_CAN_PEAK_USB is not set +# CONFIG_CAN_UCAN is not set +# end of CAN USB interfaces + +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_OF_MDIO=y +CONFIG_MDIO_DEVRES=y +# CONFIG_MDIO_SUN4I is not set +# CONFIG_MDIO_XGENE is not set +# CONFIG_MDIO_ASPEED is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BCM_IPROC is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MVUSB is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_MOXART is not set +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_IPQ4019 is not set +# CONFIG_MDIO_IPQ8064 is not set +# CONFIG_MDIO_THUNDER is not set + +# +# MDIO Multiplexers +# +# CONFIG_MDIO_BUS_MUX_MESON_G12A is not set +# CONFIG_MDIO_BUS_MUX_MESON_GXL is not set +# CONFIG_MDIO_BUS_MUX_BCM6368 is not set +# CONFIG_MDIO_BUS_MUX_BCM_IPROC is not set +# CONFIG_MDIO_BUS_MUX_GPIO is not set +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set + +# +# PCS device drivers +# +CONFIG_PCS_XPCS=y +# CONFIG_PCS_RZN1_MIIC is not set +# end of PCS device drivers + +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_IPHETH is not set +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y +# CONFIG_ADM8211 is not set +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +# CONFIG_ATH9K is not set +# CONFIG_ATH9K_HTC is not set +# CONFIG_CARL9170 is not set +# CONFIG_ATH6KL is not set +# CONFIG_AR5523 is not set +# CONFIG_WIL6210 is not set +# CONFIG_ATH10K is not set +# CONFIG_WCN36XX is not set +# CONFIG_ATH11K is not set +# CONFIG_ATH12K is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +# CONFIG_AT76C50X_USB is not set +CONFIG_WLAN_VENDOR_BROADCOM=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMSMAC is not set +# CONFIG_BRCMFMAC is not set +CONFIG_WLAN_VENDOR_CISCO=y +# CONFIG_AIRO is not set +CONFIG_WLAN_VENDOR_INTEL=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +CONFIG_IWLWIFI=y +CONFIG_IWLWIFI_LEDS=y +CONFIG_IWLDVM=y +CONFIG_IWLMVM=y + +# +# Debugging Options +# +# CONFIG_IWLWIFI_DEBUG is not set +# end of Debugging Options + +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_HOSTAP=y +# CONFIG_HOSTAP_FIRMWARE is not set +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +CONFIG_WLAN_VENDOR_MARVELL=y +# CONFIG_LIBERTAS is not set +# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_MWIFIEX is not set +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +# CONFIG_MT7601U is not set +# CONFIG_MT76x0U is not set +# CONFIG_MT76x0E is not set +# CONFIG_MT76x2E is not set +# CONFIG_MT76x2U is not set +# CONFIG_MT7603E is not set +# CONFIG_MT7615E is not set +# CONFIG_MT7663U is not set +# CONFIG_MT7663S is not set +# CONFIG_MT7915E is not set +# CONFIG_MT7921E is not set +# CONFIG_MT7921S is not set +# CONFIG_MT7921U is not set +# CONFIG_MT7996E is not set +CONFIG_WLAN_VENDOR_MICROCHIP=y +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +CONFIG_WLAN_VENDOR_PURELIFI=y +# CONFIG_PLFXLC is not set +CONFIG_WLAN_VENDOR_RALINK=y +# CONFIG_RT2X00 is not set +CONFIG_WLAN_VENDOR_REALTEK=y +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_RTL_CARDS is not set +# CONFIG_RTL8XXXU is not set +# CONFIG_RTW88 is not set +# CONFIG_RTW89 is not set +CONFIG_WLAN_VENDOR_RSI=y +# CONFIG_RSI_91X is not set +CONFIG_WLAN_VENDOR_SILABS=y +# CONFIG_WFX is not set +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +# CONFIG_WL1251 is not set +# CONFIG_WL12XX is not set +# CONFIG_WL18XX is not set +# CONFIG_WLCORE is not set +CONFIG_WLAN_VENDOR_ZYDAS=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_ZD1211RW is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PCIE is not set +CONFIG_USB_WIFI_ECR6600U=y +CONFIG_AIC_WLAN_SUPPORT=y +CONFIG_AIC8800_WLAN_SUPPORT=m +CONFIG_AIC_LOADFW_SUPPORT=m +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_VIRT_WIFI is not set +# CONFIG_WAN is not set + +# +# Wireless WAN +# +# CONFIG_WWAN is not set +# end of Wireless WAN + +# CONFIG_VMXNET3 is not set +# CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_ADS7846 is not set +# CONFIG_TOUCHSCREEN_AD7877 is not set +# CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ADC is not set +# CONFIG_TOUCHSCREEN_AR1021_I2C is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_BU21029 is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set +# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set +# CONFIG_TOUCHSCREEN_CYTTSP5 is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_EGALAX is not set +# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set +# CONFIG_TOUCHSCREEN_EXC3000 is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +CONFIG_TOUCHSCREEN_GOODIX=y +# CONFIG_TOUCHSCREEN_HIDEEP is not set +# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set +# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_ILITEK is not set +# CONFIG_TOUCHSCREEN_IPROC is not set +# CONFIG_TOUCHSCREEN_S6SY761 is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_EKTF2127 is not set +# CONFIG_TOUCHSCREEN_ELAN is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set +# CONFIG_TOUCHSCREEN_MSG2638 is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set +# CONFIG_TOUCHSCREEN_IMAGIS is not set +# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set +# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set +# CONFIG_TOUCHSCREEN_MIGOR is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TS4800 is not set +# CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2004 is not set +# CONFIG_TOUCHSCREEN_TSC2005 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_RM_TS is not set +# CONFIG_TOUCHSCREEN_SILEAD is not set +# CONFIG_TOUCHSCREEN_SIS_I2C is not set +# CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_STMFTS is not set +# CONFIG_TOUCHSCREEN_SUN4I is not set +# CONFIG_TOUCHSCREEN_SUR40 is not set +# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set +# CONFIG_TOUCHSCREEN_SX8654 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZET6223 is not set +# CONFIG_TOUCHSCREEN_ZFORCE is not set +# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set +# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set +# CONFIG_TOUCHSCREEN_IQS5XX is not set +# CONFIG_TOUCHSCREEN_IQS7211 is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set +# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set +CONFIG_TOUCHSCREEN_TINKER_FT5406=y +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_AMBAKMI is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_OLPC_APSP is not set +# CONFIG_SERIO_SUN4I_PS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LEGACY_TIOCSTI=y +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_16550A_VARIANTS=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCILIB=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=6 +CONFIG_SERIAL_8250_RUNTIME_UARTS=6 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +# CONFIG_SERIAL_8250_ASPEED_VUART is not set +# CONFIG_SERIAL_8250_PCI1XXXX is not set +# CONFIG_SERIAL_8250_SHARE_IRQ is not set +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_DWLIB=y +# CONFIG_SERIAL_8250_FSL is not set +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_EM is not set +# CONFIG_SERIAL_8250_IOC3 is not set +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_8250_OMAP is not set +# CONFIG_SERIAL_8250_LPC18XX is not set +# CONFIG_SERIAL_8250_MT6577 is not set +# CONFIG_SERIAL_8250_UNIPHIER is not set +# CONFIG_SERIAL_8250_INGENIC is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_PERICOM=y +# CONFIG_SERIAL_8250_PXA is not set +CONFIG_SERIAL_8250_TEGRA=y +# CONFIG_SERIAL_8250_BCM7271 is not set +CONFIG_SERIAL_OF_PLATFORM=y + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_AMBA_PL010 is not set +# CONFIG_SERIAL_AMBA_PL011 is not set +# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set +# CONFIG_SERIAL_ATMEL is not set +# CONFIG_SERIAL_MESON is not set +# CONFIG_SERIAL_CLPS711X is not set +# CONFIG_SERIAL_SAMSUNG is not set +# CONFIG_SERIAL_TEGRA is not set +# CONFIG_SERIAL_TEGRA_TCU is not set +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_IMX is not set +# CONFIG_SERIAL_IMX_EARLYCON is not set +# CONFIG_SERIAL_UARTLITE is not set +# CONFIG_SERIAL_SH_SCI is not set +# CONFIG_SERIAL_HS_LPC32XX is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_ICOM is not set +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_MSM is not set +# CONFIG_SERIAL_VT8500 is not set +# CONFIG_SERIAL_OMAP is not set +# CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_LANTIQ is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_BCM63XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_PCH_UART is not set +# CONFIG_SERIAL_MXS_AUART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_MPS2_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_ST_ASC is not set +# CONFIG_SERIAL_SPRD is not set +# CONFIG_SERIAL_STM32 is not set +# CONFIG_SERIAL_MVEBU_UART is not set +# CONFIG_SERIAL_OWL is not set +# CONFIG_SERIAL_RDA is not set +# CONFIG_SERIAL_MILBEAUT_USIO is not set +# CONFIG_SERIAL_LITEUART is not set +# CONFIG_SERIAL_SUNPLUS is not set +# CONFIG_SERIAL_NUVOTON_MA35D1 is not set +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_GOLDFISH_TTY is not set +# CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set +# CONFIG_NULL_TTY is not set +CONFIG_HVC_DRIVER=y +# CONFIG_RPMSG_TTY is not set +# CONFIG_SERIAL_DEV_BUS is not set +CONFIG_TTY_PRINTK=y +CONFIG_TTY_PRINTK_LEVEL=6 +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +# CONFIG_ASPEED_KCS_IPMI_BMC is not set +# CONFIG_NPCM7XX_KCS_IPMI_BMC is not set +# CONFIG_ASPEED_BT_IPMI_BMC is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_ATMEL=y +# CONFIG_HW_RANDOM_BA431 is not set +CONFIG_HW_RANDOM_BCM2835=y +CONFIG_HW_RANDOM_IPROC_RNG200=y +CONFIG_HW_RANDOM_GEODE=y +CONFIG_HW_RANDOM_IXP4XX=y +CONFIG_HW_RANDOM_OMAP=y +CONFIG_HW_RANDOM_OMAP3_ROM=y +# CONFIG_HW_RANDOM_VIRTIO is not set +CONFIG_HW_RANDOM_MXC_RNGA=y +CONFIG_HW_RANDOM_IMX_RNGC=y +CONFIG_HW_RANDOM_INGENIC_RNG=y +CONFIG_HW_RANDOM_INGENIC_TRNG=y +CONFIG_HW_RANDOM_NOMADIK=y +CONFIG_HW_RANDOM_HISI=y +# CONFIG_HW_RANDOM_HISTB is not set +# CONFIG_HW_RANDOM_ST is not set +CONFIG_HW_RANDOM_XGENE=y +CONFIG_HW_RANDOM_STM32=y +# CONFIG_HW_RANDOM_PIC32 is not set +# CONFIG_HW_RANDOM_MESON is not set +# CONFIG_HW_RANDOM_MTK is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +# CONFIG_HW_RANDOM_NPCM is not set +CONFIG_HW_RANDOM_KEYSTONE=y +# CONFIG_HW_RANDOM_CCTRNG is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +CONFIG_HW_RANDOM_CN10K=y +CONFIG_HW_RANDOM_JH7110=y +# CONFIG_APPLICOM is not set +CONFIG_DEVMEM=y +CONFIG_DEVPORT=y +# CONFIG_TCG_TPM is not set +# CONFIG_XILLYBUS is not set +# CONFIG_XILLYUSB is not set +# end of Character devices + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +# CONFIG_I2C_ATR is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_HIX5HD2 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_NVIDIA_GPU is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_ALTERA is not set +# CONFIG_I2C_ASPEED is not set +# CONFIG_I2C_AT91 is not set +# CONFIG_I2C_AXXIA is not set +# CONFIG_I2C_BCM2835 is not set +# CONFIG_I2C_BCM_IPROC is not set +# CONFIG_I2C_BCM_KONA is not set +CONFIG_I2C_BRCMSTB=y +# CONFIG_I2C_CADENCE is not set +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_DAVINCI is not set +CONFIG_I2C_DESIGNWARE_CORE=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_DIGICOLOR is not set +# CONFIG_I2C_EG20T is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_EXYNOS5 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_GXP is not set +# CONFIG_I2C_HIGHLANDER is not set +# CONFIG_I2C_HISI is not set +# CONFIG_I2C_IMG is not set +# CONFIG_I2C_IMX is not set +# CONFIG_I2C_IMX_LPI2C is not set +# CONFIG_I2C_IOP3XX is not set +# CONFIG_I2C_JZ4780 is not set +# CONFIG_I2C_LPC2K is not set +# CONFIG_I2C_LS2X is not set +# CONFIG_I2C_MESON is not set +# CONFIG_I2C_MICROCHIP_CORE is not set +# CONFIG_I2C_MT65XX is not set +# CONFIG_I2C_MT7621 is not set +# CONFIG_I2C_MV64XXX is not set +# CONFIG_I2C_MXS is not set +# CONFIG_I2C_NOMADIK is not set +# CONFIG_I2C_NPCM is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_OMAP is not set +# CONFIG_I2C_OWL is not set +# CONFIG_I2C_APPLE is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PNX is not set +# CONFIG_I2C_PXA is not set +# CONFIG_I2C_QCOM_CCI is not set +# CONFIG_I2C_QUP is not set +# CONFIG_I2C_RIIC is not set +# CONFIG_I2C_RK3X is not set +# CONFIG_I2C_RZV2M is not set +# CONFIG_I2C_S3C2410 is not set +# CONFIG_I2C_SH_MOBILE is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_SPRD is not set +# CONFIG_I2C_ST is not set +# CONFIG_I2C_STM32F4 is not set +# CONFIG_I2C_STM32F7 is not set +# CONFIG_I2C_SUN6I_P2WI is not set +# CONFIG_I2C_SYNQUACER is not set +# CONFIG_I2C_TEGRA is not set +# CONFIG_I2C_TEGRA_BPMP is not set +# CONFIG_I2C_UNIPHIER is not set +# CONFIG_I2C_UNIPHIER_F is not set +# CONFIG_I2C_VERSATILE is not set +# CONFIG_I2C_WMT is not set +# CONFIG_I2C_THUNDERX is not set +# CONFIG_I2C_XILINX is not set +# CONFIG_I2C_XLP9XX is not set +# CONFIG_I2C_RCAR is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_CP2615 is not set +# CONFIG_I2C_PCI1XXXX is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_MLXCPLD is not set +# CONFIG_I2C_VIRTIO is not set +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_ALTERA_CORE is not set +# CONFIG_SPI_AMLOGIC_SPIFC_A1 is not set +# CONFIG_SPI_AR934X is not set +# CONFIG_SPI_ATH79 is not set +# CONFIG_SPI_ARMADA_3700 is not set +# CONFIG_SPI_ASPEED_SMC is not set +# CONFIG_SPI_ATMEL is not set +# CONFIG_SPI_ATMEL_QUADSPI is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +# CONFIG_SPI_BCM2835 is not set +# CONFIG_SPI_BCM2835AUX is not set +# CONFIG_SPI_BCM63XX is not set +# CONFIG_SPI_BCM63XX_HSSPI is not set +# CONFIG_SPI_BCM_QSPI is not set +# CONFIG_SPI_BCMBCA_HSSPI is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +CONFIG_SPI_CADENCE_QUADSPI=y +# CONFIG_SPI_CADENCE_XSPI is not set +# CONFIG_SPI_CLPS711X is not set +# CONFIG_SPI_DAVINCI is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_EP93XX is not set +# CONFIG_SPI_FSL_LPSPI is not set +# CONFIG_SPI_FSL_QUADSPI is not set +# CONFIG_SPI_GXP is not set +# CONFIG_SPI_HISI_KUNPENG is not set +# CONFIG_SPI_HISI_SFC_V3XX is not set +# CONFIG_SPI_NXP_FLEXSPI is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_IMG_SPFI is not set +# CONFIG_SPI_IMX is not set +# CONFIG_SPI_INGENIC is not set +# CONFIG_SPI_INTEL_PCI is not set +# CONFIG_SPI_INTEL_PLATFORM is not set +# CONFIG_SPI_JCORE is not set +# CONFIG_SPI_LOONGSON_PCI is not set +# CONFIG_SPI_LOONGSON_PLATFORM is not set +# CONFIG_SPI_LP8841_RTC is not set +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_FSL_DSPI is not set +# CONFIG_SPI_MESON_SPICC is not set +# CONFIG_SPI_MESON_SPIFC is not set +# CONFIG_SPI_MICROCHIP_CORE is not set +# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set +# CONFIG_SPI_MT65XX is not set +# CONFIG_SPI_MT7621 is not set +# CONFIG_SPI_MTK_NOR is not set +# CONFIG_SPI_WPCM_FIU is not set +# CONFIG_SPI_NPCM_FIU is not set +# CONFIG_SPI_NPCM_PSPI is not set +# CONFIG_SPI_LANTIQ_SSC is not set +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_OMAP24XX is not set +# CONFIG_SPI_TI_QSPI is not set +# CONFIG_SPI_ORION is not set +# CONFIG_SPI_PCI1XXXX is not set +# CONFIG_SPI_PIC32 is not set +# CONFIG_SPI_PIC32_SQI is not set +CONFIG_SPI_PL022=y +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set +# CONFIG_SPI_RSPI is not set +# CONFIG_SPI_RZV2M_CSI is not set +# CONFIG_SPI_QCOM_QSPI is not set +# CONFIG_SPI_QUP is not set +# CONFIG_SPI_S3C64XX is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SH_MSIOF is not set +# CONFIG_SPI_SH is not set +# CONFIG_SPI_SH_HSPI is not set +CONFIG_SPI_SIFIVE=y +# CONFIG_SPI_SN_F_OSPI is not set +# CONFIG_SPI_SPRD is not set +# CONFIG_SPI_SPRD_ADI is not set +# CONFIG_SPI_STM32 is not set +# CONFIG_SPI_STM32_QSPI is not set +# CONFIG_SPI_ST_SSC4 is not set +# CONFIG_SPI_SUN4I is not set +# CONFIG_SPI_SUN6I is not set +# CONFIG_SPI_SUNPLUS_SP7021 is not set +# CONFIG_SPI_SYNQUACER is not set +# CONFIG_SPI_MXIC is not set +# CONFIG_SPI_TEGRA210_QUAD is not set +# CONFIG_SPI_TEGRA114 is not set +# CONFIG_SPI_TEGRA20_SFLASH is not set +# CONFIG_SPI_TEGRA20_SLINK is not set +# CONFIG_SPI_THUNDERX is not set +# CONFIG_SPI_TOPCLIFF_PCH is not set +# CONFIG_SPI_UNIPHIER is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_XLP is not set +# CONFIG_SPI_XTENSA_XTFPGA is not set +# CONFIG_SPI_ZYNQ_QSPI is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set +# CONFIG_SPI_AMD is not set + +# +# SPI Multiplexer support +# +# CONFIG_SPI_MUX is not set + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_DYNAMIC=y +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +# CONFIG_PPS is not set + +# +# PTP clock support +# +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_PTP_1588_CLOCK_OPTIONAL=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_PINMUX=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_AT91PIO4 is not set +# CONFIG_PINCTRL_AXP209 is not set +# CONFIG_PINCTRL_BM1880 is not set +# CONFIG_PINCTRL_CY8C95X0 is not set +# CONFIG_PINCTRL_DA850_PUPD is not set +# CONFIG_PINCTRL_EQUILIBRIUM is not set +# CONFIG_PINCTRL_INGENIC is not set +# CONFIG_PINCTRL_LOONGSON2 is not set +# CONFIG_PINCTRL_LPC18XX is not set +# CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set +# CONFIG_PINCTRL_OCELOT is not set +# CONFIG_PINCTRL_PISTACHIO is not set +# CONFIG_PINCTRL_ROCKCHIP is not set +# CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_STMFX is not set +# CONFIG_PINCTRL_SX150X is not set +# CONFIG_PINCTRL_MLXBF3 is not set +# CONFIG_PINCTRL_OWL is not set +# CONFIG_PINCTRL_ASPEED_G4 is not set +# CONFIG_PINCTRL_ASPEED_G5 is not set +# CONFIG_PINCTRL_ASPEED_G6 is not set +# CONFIG_PINCTRL_BCM281XX is not set +# CONFIG_PINCTRL_BCM2835 is not set +# CONFIG_PINCTRL_BCM4908 is not set +# CONFIG_PINCTRL_BCM6318 is not set +# CONFIG_PINCTRL_BCM6328 is not set +# CONFIG_PINCTRL_BCM6358 is not set +# CONFIG_PINCTRL_BCM6362 is not set +# CONFIG_PINCTRL_BCM6368 is not set +# CONFIG_PINCTRL_BCM63268 is not set +# CONFIG_PINCTRL_IPROC_GPIO is not set +# CONFIG_PINCTRL_CYGNUS_MUX is not set +# CONFIG_PINCTRL_NS is not set +# CONFIG_PINCTRL_NSP_GPIO is not set +# CONFIG_PINCTRL_NS2_MUX is not set +# CONFIG_PINCTRL_NSP_MUX is not set +# CONFIG_PINCTRL_AS370 is not set +# CONFIG_PINCTRL_BERLIN_BG4CT is not set + +# +# MediaTek pinctrl drivers +# +# CONFIG_EINT_MTK is not set +# CONFIG_PINCTRL_MT2701 is not set +# CONFIG_PINCTRL_MT7623 is not set +# CONFIG_PINCTRL_MT7629 is not set +# CONFIG_PINCTRL_MT8135 is not set +# CONFIG_PINCTRL_MT8127 is not set +# CONFIG_PINCTRL_MT2712 is not set +# CONFIG_PINCTRL_MT6765 is not set +# CONFIG_PINCTRL_MT6779 is not set +# CONFIG_PINCTRL_MT6795 is not set +# CONFIG_PINCTRL_MT6797 is not set +# CONFIG_PINCTRL_MT7622 is not set +# CONFIG_PINCTRL_MT7981 is not set +# CONFIG_PINCTRL_MT7986 is not set +# CONFIG_PINCTRL_MT8167 is not set +# CONFIG_PINCTRL_MT8173 is not set +# CONFIG_PINCTRL_MT8183 is not set +# CONFIG_PINCTRL_MT8186 is not set +# CONFIG_PINCTRL_MT8188 is not set +# CONFIG_PINCTRL_MT8192 is not set +# CONFIG_PINCTRL_MT8195 is not set +# CONFIG_PINCTRL_MT8365 is not set +# CONFIG_PINCTRL_MT8516 is not set +# CONFIG_PINCTRL_MT6397 is not set +# end of MediaTek pinctrl drivers + +CONFIG_PINCTRL_MESON=y +# CONFIG_PINCTRL_WPCM450 is not set +# CONFIG_PINCTRL_NPCM7XX is not set +# CONFIG_PINCTRL_PXA25X is not set +# CONFIG_PINCTRL_PXA27X is not set +# CONFIG_PINCTRL_MSM is not set +# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set +# CONFIG_PINCTRL_LPASS_LPI is not set + +# +# Renesas pinctrl drivers +# +# CONFIG_PINCTRL_RENESAS is not set +# CONFIG_PINCTRL_PFC_EMEV2 is not set +# CONFIG_PINCTRL_PFC_R8A77995 is not set +# CONFIG_PINCTRL_PFC_R8A7794 is not set +# CONFIG_PINCTRL_PFC_R8A77990 is not set +# CONFIG_PINCTRL_PFC_R8A7779 is not set +# CONFIG_PINCTRL_PFC_R8A7790 is not set +# CONFIG_PINCTRL_PFC_R8A77951 is not set +# CONFIG_PINCTRL_PFC_R8A7778 is not set +# CONFIG_PINCTRL_PFC_R8A7793 is not set +# CONFIG_PINCTRL_PFC_R8A7791 is not set +# CONFIG_PINCTRL_PFC_R8A77965 is not set +# CONFIG_PINCTRL_PFC_R8A77960 is not set +# CONFIG_PINCTRL_PFC_R8A77961 is not set +# CONFIG_PINCTRL_PFC_R8A779F0 is not set +# CONFIG_PINCTRL_PFC_R8A7792 is not set +# CONFIG_PINCTRL_PFC_R8A77980 is not set +# CONFIG_PINCTRL_PFC_R8A77970 is not set +# CONFIG_PINCTRL_PFC_R8A779A0 is not set +# CONFIG_PINCTRL_PFC_R8A779G0 is not set +# CONFIG_PINCTRL_PFC_R8A7740 is not set +# CONFIG_PINCTRL_PFC_R8A73A4 is not set +# CONFIG_PINCTRL_RZA1 is not set +# CONFIG_PINCTRL_RZA2 is not set +# CONFIG_PINCTRL_RZG2L is not set +# CONFIG_PINCTRL_PFC_R8A77470 is not set +# CONFIG_PINCTRL_PFC_R8A7745 is not set +# CONFIG_PINCTRL_PFC_R8A7742 is not set +# CONFIG_PINCTRL_PFC_R8A7743 is not set +# CONFIG_PINCTRL_PFC_R8A7744 is not set +# CONFIG_PINCTRL_PFC_R8A774C0 is not set +# CONFIG_PINCTRL_PFC_R8A774E1 is not set +# CONFIG_PINCTRL_PFC_R8A774A1 is not set +# CONFIG_PINCTRL_PFC_R8A774B1 is not set +# CONFIG_PINCTRL_RZN1 is not set +# CONFIG_PINCTRL_RZV2M is not set +# CONFIG_PINCTRL_PFC_SH7203 is not set +# CONFIG_PINCTRL_PFC_SH7264 is not set +# CONFIG_PINCTRL_PFC_SH7269 is not set +# CONFIG_PINCTRL_PFC_SH7720 is not set +# CONFIG_PINCTRL_PFC_SH7722 is not set +# CONFIG_PINCTRL_PFC_SH7734 is not set +# CONFIG_PINCTRL_PFC_SH7757 is not set +# CONFIG_PINCTRL_PFC_SH7785 is not set +# CONFIG_PINCTRL_PFC_SH7786 is not set +# CONFIG_PINCTRL_PFC_SH73A0 is not set +# CONFIG_PINCTRL_PFC_SH7723 is not set +# CONFIG_PINCTRL_PFC_SH7724 is not set +# CONFIG_PINCTRL_PFC_SHX3 is not set +# end of Renesas pinctrl drivers + +# CONFIG_PINCTRL_EXYNOS is not set +# CONFIG_PINCTRL_S3C64XX is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set +CONFIG_PINCTRL_STARFIVE_JH7100=y +CONFIG_PINCTRL_STARFIVE_JH7110=y +CONFIG_PINCTRL_STARFIVE_JH7110_SYS=y +CONFIG_PINCTRL_STARFIVE_JH7110_AON=y +# CONFIG_PINCTRL_STM32F429 is not set +# CONFIG_PINCTRL_STM32F469 is not set +# CONFIG_PINCTRL_STM32F746 is not set +# CONFIG_PINCTRL_STM32F769 is not set +# CONFIG_PINCTRL_STM32H743 is not set +# CONFIG_PINCTRL_STM32MP135 is not set +# CONFIG_PINCTRL_STM32MP157 is not set +# CONFIG_PINCTRL_STM32MP257 is not set +# CONFIG_PINCTRL_TI_IODELAY is not set +CONFIG_PINCTRL_UNIPHIER=y +# CONFIG_PINCTRL_UNIPHIER_LD4 is not set +# CONFIG_PINCTRL_UNIPHIER_PRO4 is not set +# CONFIG_PINCTRL_UNIPHIER_SLD8 is not set +# CONFIG_PINCTRL_UNIPHIER_PRO5 is not set +# CONFIG_PINCTRL_UNIPHIER_PXS2 is not set +# CONFIG_PINCTRL_UNIPHIER_LD6B is not set +# CONFIG_PINCTRL_UNIPHIER_LD11 is not set +# CONFIG_PINCTRL_UNIPHIER_LD20 is not set +# CONFIG_PINCTRL_UNIPHIER_PXS3 is not set +# CONFIG_PINCTRL_UNIPHIER_NX1 is not set +# CONFIG_PINCTRL_TMPV7700 is not set +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_OF_GPIO=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_ASPEED is not set +# CONFIG_GPIO_ASPEED_SGPIO is not set +# CONFIG_GPIO_ATH79 is not set +# CONFIG_GPIO_RASPBERRYPI_EXP is not set +# CONFIG_GPIO_BCM_KONA is not set +# CONFIG_GPIO_BCM_XGS_IPROC is not set +# CONFIG_GPIO_BRCMSTB is not set +# CONFIG_GPIO_CADENCE is not set +# CONFIG_GPIO_CLPS711X is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EIC_SPRD is not set +# CONFIG_GPIO_EM is not set +# CONFIG_GPIO_EXAR is not set +# CONFIG_GPIO_GE_FPGA is not set +# CONFIG_GPIO_FTGPIO010 is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HISI is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_LOGICVC is not set +# CONFIG_GPIO_LOONGSON_64BIT is not set +# CONFIG_GPIO_LPC18XX is not set +# CONFIG_GPIO_LPC32XX is not set +# CONFIG_GPIO_MB86S7X is not set +# CONFIG_GPIO_MPC8XXX is not set +# CONFIG_GPIO_MT7621 is not set +# CONFIG_GPIO_MXC is not set +# CONFIG_GPIO_MXS is not set +# CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_PXA is not set +# CONFIG_GPIO_RCAR is not set +# CONFIG_GPIO_RDA is not set +# CONFIG_GPIO_ROCKCHIP is not set +# CONFIG_GPIO_SAMA5D2_PIOBU is not set +# CONFIG_GPIO_SIFIVE is not set +# CONFIG_GPIO_SNPS_CREG is not set +# CONFIG_GPIO_SPRD is not set +# CONFIG_GPIO_STP_XWAY is not set +# CONFIG_GPIO_SYSCON is not set +# CONFIG_GPIO_TEGRA is not set +# CONFIG_GPIO_TEGRA186 is not set +# CONFIG_GPIO_TS4800 is not set +# CONFIG_GPIO_THUNDERX is not set +# CONFIG_GPIO_UNIPHIER is not set +# CONFIG_GPIO_VISCONTI is not set +# CONFIG_GPIO_XGENE_SB is not set +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_XLP is not set +# CONFIG_GPIO_AMD_FCH is not set +# CONFIG_GPIO_IDT3243X is not set +# end of Memory mapped GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_FXL6408 is not set +# CONFIG_GPIO_DS4520 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 +# CONFIG_GPIO_PCA9570 is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set +# CONFIG_GPIO_TS4900 is not set +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +# CONFIG_GPIO_ELKHARTLAKE is not set +# CONFIG_GPIO_PMIC_EIC_SPRD is not set +# CONFIG_GPIO_SL28CPLD is not set +# CONFIG_GPIO_TQMX86 is not set +# end of MFD GPIO expanders + +# +# PCI GPIO expanders +# +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_MLXBF is not set +# CONFIG_GPIO_MLXBF2 is not set +# CONFIG_GPIO_MLXBF3 is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set +# CONFIG_GPIO_RDC321X is not set +# end of PCI GPIO expanders + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set +# end of SPI GPIO expanders + +# +# USB GPIO expanders +# +# end of USB GPIO expanders + +# +# Virtual GPIO drivers +# +# CONFIG_GPIO_AGGREGATOR is not set +# CONFIG_GPIO_LATCH is not set +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_VIRTIO is not set +# CONFIG_GPIO_SIM is not set +# end of Virtual GPIO drivers + +# CONFIG_W1 is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMKONA is not set +# CONFIG_POWER_RESET_BRCMSTB is not set +# CONFIG_POWER_RESET_GEMINI_POWEROFF is not set +# CONFIG_POWER_RESET_GPIO is not set +CONFIG_POWER_RESET_GPIO_RESTART=y +# CONFIG_POWER_RESET_LINKSTATION is not set +# CONFIG_POWER_RESET_OCELOT_RESET is not set +# CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF is not set +# CONFIG_POWER_RESET_PIIX4_POWEROFF is not set +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_REGULATOR is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_KEYSTONE is not set +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +# CONFIG_POWER_RESET_RMOBILE is not set +# CONFIG_SYSCON_REBOOT_MODE is not set +# CONFIG_POWER_RESET_SC27XX is not set +# CONFIG_NVMEM_REBOOT_MODE is not set +# CONFIG_POWER_SUPPLY is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM1177 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_AXI_FAN_CONTROL is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ASPEED is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_BT1_PVT is not set +# CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set +# CONFIG_SENSORS_DRIVETEMP is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_SPARX5 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_FTSTEUTATES is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_GXP_FAN_CTRL is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_HS3001 is not set +# CONFIG_SENSORS_IIO_HWMON is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LAN966X is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2947_I2C is not set +# CONFIG_SENSORS_LTC2947_SPI is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC2992 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX127 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX31730 is not set +# CONFIG_SENSORS_MAX31760 is not set +# CONFIG_MAX31827 is not set +# CONFIG_SENSORS_MAX6620 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MC34VR500 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_TPS23861 is not set +# CONFIG_SENSORS_MR75203 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT6775_I2C is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_NSA320 is not set +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set +# CONFIG_SENSORS_NZXT_SMART2 is not set +# CONFIG_SENSORS_OCC_P8_I2C is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_PWM_FAN is not set +# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set +# CONFIG_SENSORS_SL28CPLD is not set +# CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHT4x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC2305 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set +CONFIG_SENSORS_SFCTEMP=y +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA238 is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_TMP464 is not set +# CONFIG_SENSORS_TMP513 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +CONFIG_THERMAL=y +# CONFIG_THERMAL_NETLINK is not set +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_OF=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +CONFIG_CPU_THERMAL=y +CONFIG_CPU_FREQ_THERMAL=y +CONFIG_DEVFREQ_THERMAL=y +CONFIG_THERMAL_EMULATION=y +# CONFIG_THERMAL_MMIO is not set +# CONFIG_HISI_THERMAL is not set +# CONFIG_IMX_THERMAL is not set +# CONFIG_IMX8MM_THERMAL is not set +# CONFIG_K3_THERMAL is not set +# CONFIG_QORIQ_THERMAL is not set +# CONFIG_SPEAR_THERMAL is not set +# CONFIG_SUN8I_THERMAL is not set +# CONFIG_ROCKCHIP_THERMAL is not set +# CONFIG_RCAR_THERMAL is not set +# CONFIG_RCAR_GEN3_THERMAL is not set +# CONFIG_RZG2L_THERMAL is not set +# CONFIG_KIRKWOOD_THERMAL is not set +# CONFIG_DOVE_THERMAL is not set +# CONFIG_ARMADA_THERMAL is not set +# CONFIG_DA9062_THERMAL is not set + +# +# Mediatek thermal drivers +# +# CONFIG_MTK_THERMAL is not set +# end of Mediatek thermal drivers + +# +# Intel thermal drivers +# + +# +# ACPI INT340X thermal drivers +# +# end of ACPI INT340X thermal drivers +# end of Intel thermal drivers + +# +# Broadcom thermal drivers +# +# CONFIG_BCM2711_THERMAL is not set +# CONFIG_BCM2835_THERMAL is not set +# CONFIG_BRCMSTB_THERMAL is not set +# CONFIG_BCM_NS_THERMAL is not set +# CONFIG_BCM_SR_THERMAL is not set +# end of Broadcom thermal drivers + +# +# Texas Instruments thermal drivers +# +# CONFIG_TI_SOC_THERMAL is not set +# end of Texas Instruments thermal drivers + +# +# Samsung thermal drivers +# +# CONFIG_EXYNOS_THERMAL is not set +# end of Samsung thermal drivers + +# +# NVIDIA Tegra thermal drivers +# +# CONFIG_TEGRA_SOCTHERM is not set +# CONFIG_TEGRA_BPMP_THERMAL is not set +# CONFIG_TEGRA30_TSENSOR is not set +# end of NVIDIA Tegra thermal drivers + +# CONFIG_GENERIC_ADC_THERMAL is not set + +# +# Qualcomm thermal drivers +# +# end of Qualcomm thermal drivers + +# CONFIG_UNIPHIER_THERMAL is not set +# CONFIG_SPRD_THERMAL is not set +# CONFIG_LOONGSON2_THERMAL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +CONFIG_WATCHDOG_SYSFS=y +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set + +# +# Watchdog Pretimeout Governors +# +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_DA9052_WATCHDOG is not set +# CONFIG_DA9055_WATCHDOG is not set +# CONFIG_DA9063_WATCHDOG is not set +# CONFIG_DA9062_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_MENF21BMC_WATCHDOG is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_XILINX_WINDOW_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +# CONFIG_MLX_WDT is not set +# CONFIG_SL28CPLD_WATCHDOG is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_ARMADA_37XX_WATCHDOG is not set +# CONFIG_ASM9260_WATCHDOG is not set +# CONFIG_AT91RM9200_WATCHDOG is not set +# CONFIG_AT91SAM9X_WATCHDOG is not set +# CONFIG_SAMA5D4_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_FTWDT010_WATCHDOG is not set +# CONFIG_S3C2410_WATCHDOG is not set +# CONFIG_SA1100_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_EP93XX_WATCHDOG is not set +# CONFIG_OMAP_WATCHDOG is not set +# CONFIG_PNX4008_WATCHDOG is not set +# CONFIG_DAVINCI_WATCHDOG is not set +# CONFIG_K3_RTI_WATCHDOG is not set +# CONFIG_RN5T618_WATCHDOG is not set +# CONFIG_SUNXI_WATCHDOG is not set +# CONFIG_NPCM7XX_WATCHDOG is not set +# CONFIG_STMP3XXX_RTC_WATCHDOG is not set +# CONFIG_TS4800_WATCHDOG is not set +# CONFIG_TS72XX_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MAX77620_WATCHDOG is not set +# CONFIG_IMX2_WDT is not set +# CONFIG_IMX7ULP_WDT is not set +# CONFIG_MOXART_WDT is not set +# CONFIG_ST_LPC_WATCHDOG is not set +# CONFIG_TEGRA_WATCHDOG is not set +# CONFIG_QCOM_WDT is not set +# CONFIG_MESON_GXBB_WATCHDOG is not set +# CONFIG_MESON_WATCHDOG is not set +# CONFIG_MEDIATEK_WATCHDOG is not set +# CONFIG_DIGICOLOR_WATCHDOG is not set +# CONFIG_LPC18XX_WATCHDOG is not set +# CONFIG_RENESAS_WDT is not set +# CONFIG_RENESAS_RZAWDT is not set +# CONFIG_RENESAS_RZN1WDT is not set +# CONFIG_RENESAS_RZG2LWDT is not set +# CONFIG_ASPEED_WATCHDOG is not set +CONFIG_STM32_WATCHDOG=y +# CONFIG_UNIPHIER_WATCHDOG is not set +# CONFIG_RTD119X_WATCHDOG is not set +# CONFIG_REALTEK_OTTO_WDT is not set +# CONFIG_SPRD_WATCHDOG is not set +# CONFIG_VISCONTI_WATCHDOG is not set +# CONFIG_MSC313E_WATCHDOG is not set +# CONFIG_APPLE_WATCHDOG is not set +# CONFIG_SUNPLUS_WATCHDOG is not set +# CONFIG_ADVANTECH_WDT is not set +# CONFIG_ADVANTECH_EC_WDT is not set +# CONFIG_ALIM1535_WDT is not set +# CONFIG_ALIM7101_WDT is not set +# CONFIG_EBC_C384_WDT is not set +# CONFIG_EXAR_WDT is not set +# CONFIG_F71808E_WDT is not set +# CONFIG_SP5100_TCO is not set +# CONFIG_SC520_WDT is not set +# CONFIG_SBC_FITPC2_WATCHDOG is not set +# CONFIG_EUROTECH_WDT is not set +# CONFIG_IB700_WDT is not set +# CONFIG_IBMASR is not set +# CONFIG_WAFER_WDT is not set +# CONFIG_I6300ESB_WDT is not set +# CONFIG_IE6XX_WDT is not set +# CONFIG_IT8712F_WDT is not set +# CONFIG_IT87_WDT is not set +# CONFIG_HP_WATCHDOG is not set +# CONFIG_SC1200_WDT is not set +# CONFIG_PC87413_WDT is not set +# CONFIG_NV_TCO is not set +# CONFIG_RDC321X_WDT is not set +# CONFIG_60XX_WDT is not set +# CONFIG_CPU5_WDT is not set +# CONFIG_SMSC_SCH311X_WDT is not set +# CONFIG_SMSC37B787_WDT is not set +# CONFIG_TQMX86_WDT is not set +# CONFIG_VIA_WDT is not set +# CONFIG_W83627HF_WDT is not set +# CONFIG_W83877F_WDT is not set +# CONFIG_W83977F_WDT is not set +# CONFIG_MACHZ_WDT is not set +# CONFIG_SBC_EPX_C3_WATCHDOG is not set +# CONFIG_BCM47XX_WDT is not set +# CONFIG_JZ4740_WDT is not set +CONFIG_MARVELL_GTI_WDT=y +# CONFIG_BCM2835_WDT is not set +# CONFIG_BCM_KONA_WDT is not set +# CONFIG_BCM_KONA_WDT_DEBUG is not set +# CONFIG_BCM7038_WDT is not set +# CONFIG_IMGPDC_WDT is not set +# CONFIG_LOONGSON1_WDT is not set +# CONFIG_GXP_WATCHDOG is not set +# CONFIG_MT7621_WDT is not set +# CONFIG_MPC5200_WDT is not set +# CONFIG_MEN_A21_WDT is not set +CONFIG_STARFIVE_WATCHDOG=y +# CONFIG_UML_WATCHDOG is not set + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_SUN4I_GPADC is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_SMPRO is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_AT91_USART is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +CONFIG_MFD_AXP20X=y +CONFIG_MFD_AXP20X_I2C=y +# CONFIG_MFD_CS42L43_I2C is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_MFD_MAX5970 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_ENE_KB3930 is not set +# CONFIG_MFD_EXYNOS_LPASS is not set +# CONFIG_MFD_GATEWORKS_GSC is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_MP2629 is not set +# CONFIG_MFD_MXS_LRADC is not set +# CONFIG_MFD_MX25_TSADC is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_MFD_HI655X_PMIC is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_MFD_IQS62X is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77541 is not set +# CONFIG_MFD_MAX77620 is not set +# CONFIG_MFD_MAX77650 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77714 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6370 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_MFD_OCELOT is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_NTXEC is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_PM8XXX is not set +# CONFIG_MFD_SY7636A is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT4831 is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RT5120 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK8XX_I2C is not set +# CONFIG_MFD_RK8XX_SPI is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SL28CPLD is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SC27XX_PMIC is not set +# CONFIG_RZ_MTU3 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_SUN6I_PRCM is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS65219 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS6594_I2C is not set +# CONFIG_MFD_TPS6594_SPI is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TIMBERDALE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 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 +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_STW481X is not set +# CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_ROHM_BD71828 is not set +# CONFIG_MFD_ROHM_BD957XMUF is not set +# CONFIG_MFD_STM32_LPTIMER is not set +# CONFIG_MFD_STM32_TIMERS is not set +# CONFIG_MFD_STPMIC1 is not set +# CONFIG_MFD_STMFX is not set +# CONFIG_MFD_ATC260X_I2C is not set +# CONFIG_MFD_KHADAS_MCU is not set +# CONFIG_MFD_ACER_A500_EC is not set +# CONFIG_MFD_QCOM_PM8008 is not set +# CONFIG_MFD_INTEL_M10_BMC_SPI is not set +# CONFIG_MFD_RSMU_I2C is not set +# CONFIG_MFD_RSMU_SPI is not set +# end of Multifunction device drivers + +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_AW37503 is not set +CONFIG_REGULATOR_AXP20X=y +# CONFIG_REGULATOR_DA9121 is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_FAN53880 is not set +CONFIG_REGULATOR_GPIO=y +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX77620 is not set +# CONFIG_REGULATOR_MAX77650 is not set +# CONFIG_REGULATOR_MAX77857 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8893 is not set +# CONFIG_REGULATOR_MAX8907 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MAX20086 is not set +# CONFIG_REGULATOR_MAX20411 is not set +# CONFIG_REGULATOR_MAX77686 is not set +# CONFIG_REGULATOR_MAX77693 is not set +# CONFIG_REGULATOR_MAX77802 is not set +# CONFIG_REGULATOR_MAX77826 is not set +# CONFIG_REGULATOR_MCP16502 is not set +# CONFIG_REGULATOR_MP5416 is not set +# CONFIG_REGULATOR_MP8859 is not set +# CONFIG_REGULATOR_MP886X is not set +# CONFIG_REGULATOR_MPQ7920 is not set +# CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PBIAS is not set +# CONFIG_REGULATOR_PCA9450 is not set +# CONFIG_REGULATOR_PF8X00 is not set +# CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set +# CONFIG_REGULATOR_PWM is not set +# CONFIG_REGULATOR_QCOM_REFGEN is not set +# CONFIG_REGULATOR_QCOM_RPMH is not set +# CONFIG_REGULATOR_QCOM_SPMI is not set +# CONFIG_REGULATOR_QCOM_USB_VBUS is not set +# CONFIG_REGULATOR_RAA215300 is not set +CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=y +# CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT4803 is not set +# CONFIG_REGULATOR_RT5190A is not set +# CONFIG_REGULATOR_RT5739 is not set +# CONFIG_REGULATOR_RT5759 is not set +# CONFIG_REGULATOR_RT6160 is not set +# CONFIG_REGULATOR_RT6190 is not set +# CONFIG_REGULATOR_RT6245 is not set +# CONFIG_REGULATOR_RTQ2134 is not set +# CONFIG_REGULATOR_RTMV20 is not set +# CONFIG_REGULATOR_RTQ6752 is not set +# CONFIG_REGULATOR_RTQ2208 is not set +# CONFIG_REGULATOR_S2MPA01 is not set +# CONFIG_REGULATOR_S2MPS11 is not set +# CONFIG_REGULATOR_S5M8767 is not set +# CONFIG_REGULATOR_SC2731 is not set +# CONFIG_REGULATOR_SLG51000 is not set +# CONFIG_REGULATOR_STARFIVE_JH7110 is not set +# CONFIG_REGULATOR_STM32_BOOSTER is not set +# CONFIG_REGULATOR_STM32_VREFBUF is not set +# CONFIG_REGULATOR_STM32_PWR is not set +# CONFIG_REGULATOR_TI_ABB is not set +# CONFIG_REGULATOR_STW481X_VMMC is not set +# CONFIG_REGULATOR_SY8106A is not set +# CONFIG_REGULATOR_SY8824X is not set +# CONFIG_REGULATOR_SY8827N is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS6286X is not set +# CONFIG_REGULATOR_TPS6287X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS65132 is not set +# CONFIG_REGULATOR_TPS6524X is not set +# CONFIG_REGULATOR_TPS68470 is not set +# CONFIG_REGULATOR_UNIPHIER is not set +# CONFIG_REGULATOR_VCTRL is not set +# CONFIG_REGULATOR_QCOM_LABIBB is not set +# CONFIG_RC_CORE is not set + +# +# CEC support +# +# CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + +CONFIG_MEDIA_SUPPORT=y +# CONFIG_MEDIA_SUPPORT_FILTER is not set +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set + +# +# Media device types +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_MEDIA_TEST_SUPPORT=y +# end of Media device types + +# +# Media core support +# +CONFIG_VIDEO_DEV=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_DVB_CORE=y +# end of Media core support + +# +# Video4Linux options +# +CONFIG_VIDEO_V4L2_I2C=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L2_FWNODE=y +CONFIG_V4L2_ASYNC=y +CONFIG_V4L2_CCI=y +CONFIG_V4L2_CCI_I2C=y +# end of Video4Linux options + +# +# Media controller options +# +# CONFIG_MEDIA_CONTROLLER_DVB is not set +# end of Media controller options + +# +# Digital TV options +# +# CONFIG_DVB_MMAP is not set +CONFIG_DVB_NET=y +CONFIG_DVB_MAX_ADAPTERS=16 +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set +# end of Digital TV options + +# +# Media drivers +# + +# +# Media drivers +# +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +# CONFIG_USB_GSPCA is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_S2255 is not set +# CONFIG_VIDEO_USBTV is not set +CONFIG_USB_VIDEO_CLASS=y +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y + +# +# Analog TV USB devices +# +# CONFIG_VIDEO_GO7007 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_STK1160 is not set + +# +# Analog/digital TV USB devices +# +# CONFIG_VIDEO_AU0828 is not set + +# +# Digital TV USB devices +# +# CONFIG_DVB_AS102 is not set +# CONFIG_DVB_B2C2_FLEXCOP_USB is not set +# CONFIG_DVB_USB_V2 is not set +# CONFIG_SMS_USB_DRV is not set +# CONFIG_DVB_TTUSB_BUDGET is not set +# CONFIG_DVB_TTUSB_DEC is not set + +# +# Webcam, TV (analog/digital) USB devices +# +# CONFIG_VIDEO_EM28XX is not set + +# +# Software defined radio USB devices +# +# CONFIG_USB_AIRSPY is not set +# CONFIG_USB_HACKRF is not set +# CONFIG_USB_MSI2500 is not set +# CONFIG_MEDIA_PCI_SUPPORT is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_SHARK is not set +# CONFIG_RADIO_SHARK2 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_USB_KEENE is not set +# CONFIG_USB_MA901 is not set +# CONFIG_USB_MR800 is not set +# CONFIG_USB_RAREMONO is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_V4L_RADIO_ISA_DRIVERS is not set +CONFIG_MEDIA_PLATFORM_DRIVERS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_SDR_PLATFORM_DRIVERS is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_MUX is not set + +# +# Allegro DVT media platform drivers +# +# CONFIG_VIDEO_ALLEGRO_DVT is not set + +# +# Amlogic media platform drivers +# +# CONFIG_VIDEO_MESON_GE2D is not set + +# +# Amphion drivers +# +# CONFIG_VIDEO_AMPHION_VPU is not set + +# +# Aspeed media platform drivers +# +# CONFIG_VIDEO_ASPEED is not set + +# +# Atmel media platform drivers +# +# CONFIG_VIDEO_ATMEL_ISI is not set + +# +# Cadence media platform drivers +# +CONFIG_VIDEO_CADENCE_CSI2RX=y +# CONFIG_VIDEO_CADENCE_CSI2TX is not set + +# +# Chips&Media media platform drivers +# +# CONFIG_VIDEO_CODA is not set +CONFIG_VIDEO_WAVE_VPU=m + +# +# Intel media platform drivers +# +# CONFIG_VIDEO_PXA27x is not set + +# +# Marvell media platform drivers +# +# CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_MMP_CAMERA is not set + +# +# Mediatek media platform drivers +# +# CONFIG_VIDEO_MEDIATEK_JPEG is not set +# CONFIG_VIDEO_MEDIATEK_MDP is not set +# CONFIG_VIDEO_MEDIATEK_VPU is not set + +# +# Microchip Technology, Inc. media platform drivers +# +# CONFIG_VIDEO_MICROCHIP_ISC is not set +# CONFIG_VIDEO_MICROCHIP_XISC is not set +# CONFIG_VIDEO_MICROCHIP_CSI2DC is not set + +# +# NVidia media platform drivers +# +# CONFIG_VIDEO_TEGRA_VDE is not set + +# +# NXP media platform drivers +# +# CONFIG_VIDEO_IMX7_CSI is not set +# CONFIG_VIDEO_IMX8MQ_MIPI_CSI2 is not set +# CONFIG_VIDEO_IMX_MIPI_CSIS is not set +# CONFIG_VIDEO_IMX8_ISI is not set +# CONFIG_VIDEO_IMX_PXP is not set +# CONFIG_VIDEO_MX2_EMMAPRP is not set +# CONFIG_VIDEO_DW100 is not set +# CONFIG_VIDEO_IMX8_JPEG is not set + +# +# Qualcomm media platform drivers +# +# CONFIG_VIDEO_QCOM_CAMSS is not set + +# +# Renesas media platform drivers +# +# CONFIG_VIDEO_RENESAS_CEU is not set +# CONFIG_VIDEO_RCAR_ISP is not set +# CONFIG_VIDEO_SH_VOU is not set +# CONFIG_VIDEO_RCAR_CSI2 is not set +# CONFIG_VIDEO_RCAR_VIN is not set +# CONFIG_VIDEO_RZG2L_CSI2 is not set +# CONFIG_VIDEO_RZG2L_CRU is not set +# CONFIG_VIDEO_RENESAS_FCP is not set +# CONFIG_VIDEO_RENESAS_FDP1 is not set +# CONFIG_VIDEO_RENESAS_JPU is not set +# CONFIG_VIDEO_RENESAS_VSP1 is not set + +# +# Rockchip media platform drivers +# +# CONFIG_VIDEO_ROCKCHIP_RGA is not set +# CONFIG_VIDEO_ROCKCHIP_ISP1 is not set + +# +# Samsung media platform drivers +# +# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set +# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set +# CONFIG_VIDEO_S3C_CAMIF is not set +# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set +# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set +# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set + +# +# STMicroelectronics media platform drivers +# +# CONFIG_VIDEO_STI_BDISP is not set +# CONFIG_VIDEO_STI_DELTA is not set +# CONFIG_VIDEO_STI_HVA is not set +# CONFIG_VIDEO_STM32_DCMI is not set +# CONFIG_VIDEO_STM32_DMA2D is not set + +# +# Starfive media platform drivers +# +# CONFIG_VIN_SENSOR_OV5640 is not set +# CONFIG_VIN_SENSOR_SC2235 is not set +CONFIG_VIN_SENSOR_OV4689=y +# CONFIG_VIN_SENSOR_OV13850 is not set +CONFIG_VIN_SENSOR_IMX219=y +CONFIG_VIDEO_STF_VIN=y + +# +# Sunxi media platform drivers +# +# CONFIG_VIDEO_SUN4I_CSI is not set +# CONFIG_VIDEO_SUN6I_CSI is not set +# CONFIG_VIDEO_SUN8I_A83T_MIPI_CSI2 is not set +# CONFIG_VIDEO_SUN8I_DEINTERLACE is not set +# CONFIG_VIDEO_SUN8I_ROTATE is not set + +# +# Texas Instruments drivers +# +# CONFIG_VIDEO_TI_CAL is not set +# CONFIG_VIDEO_TI_VPE is not set +# CONFIG_VIDEO_AM437X_VPFE is not set +# CONFIG_VIDEO_DAVINCI_VPIF_DISPLAY is not set +# CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE is not set +# CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_OMAP3 is not set + +# +# Verisilicon media platform drivers +# +# CONFIG_VIDEO_HANTRO is not set + +# +# VIA media platform drivers +# + +# +# Xilinx media platform drivers +# +# CONFIG_VIDEO_XILINX is not set + +# +# MMC/SDIO DVB adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_V4L_TEST_DRIVERS is not set +# CONFIG_DVB_TEST_DRIVERS is not set +CONFIG_UVC_COMMON=y +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_V4L2=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_DMA_CONTIG=y +CONFIG_VIDEOBUF2_VMALLOC=y +# end of Media drivers + +# +# Media ancillary drivers +# +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_CAMERA_SENSOR=y +# CONFIG_VIDEO_AR0521 is not set +# CONFIG_VIDEO_HI556 is not set +# CONFIG_VIDEO_HI846 is not set +# CONFIG_VIDEO_HI847 is not set +# CONFIG_VIDEO_IMX208 is not set +# CONFIG_VIDEO_IMX214 is not set +CONFIG_VIDEO_IMX219=y +# CONFIG_VIDEO_IMX258 is not set +# CONFIG_VIDEO_IMX274 is not set +# CONFIG_VIDEO_IMX290 is not set +# CONFIG_VIDEO_IMX296 is not set +# CONFIG_VIDEO_IMX319 is not set +# CONFIG_VIDEO_IMX334 is not set +# CONFIG_VIDEO_IMX335 is not set +# CONFIG_VIDEO_IMX355 is not set +# CONFIG_VIDEO_IMX412 is not set +# CONFIG_VIDEO_IMX415 is not set +CONFIG_VIDEO_IMX708=y +# CONFIG_VIDEO_MT9M001 is not set +# CONFIG_VIDEO_MT9M111 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T112 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_MT9V111 is not set +# CONFIG_VIDEO_OG01A1B is not set +# CONFIG_VIDEO_OV01A10 is not set +# CONFIG_VIDEO_OV02A10 is not set +# CONFIG_VIDEO_OV08D10 is not set +# CONFIG_VIDEO_OV08X40 is not set +# CONFIG_VIDEO_OV13858 is not set +# CONFIG_VIDEO_OV13B10 is not set +# CONFIG_VIDEO_OV2640 is not set +# CONFIG_VIDEO_OV2659 is not set +# CONFIG_VIDEO_OV2680 is not set +# CONFIG_VIDEO_OV2685 is not set +# CONFIG_VIDEO_OV2740 is not set +# CONFIG_VIDEO_OV4689 is not set +# CONFIG_VIDEO_OV5640 is not set +# CONFIG_VIDEO_OV5645 is not set +# CONFIG_VIDEO_OV5647 is not set +# CONFIG_VIDEO_OV5648 is not set +# CONFIG_VIDEO_OV5670 is not set +# CONFIG_VIDEO_OV5675 is not set +# CONFIG_VIDEO_OV5693 is not set +# CONFIG_VIDEO_OV5695 is not set +# CONFIG_VIDEO_OV6650 is not set +# CONFIG_VIDEO_OV7251 is not set +# CONFIG_VIDEO_OV7640 is not set +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_OV772X is not set +# CONFIG_VIDEO_OV7740 is not set +# CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8858 is not set +# CONFIG_VIDEO_OV8865 is not set +# CONFIG_VIDEO_OV9282 is not set +# CONFIG_VIDEO_OV9640 is not set +# CONFIG_VIDEO_OV9650 is not set +# CONFIG_VIDEO_OV9734 is not set +# CONFIG_VIDEO_RDACM20 is not set +# CONFIG_VIDEO_RDACM21 is not set +# CONFIG_VIDEO_RJ54N1 is not set +# CONFIG_VIDEO_S5C73M3 is not set +# CONFIG_VIDEO_S5K5BAF is not set +# CONFIG_VIDEO_S5K6A3 is not set +# CONFIG_VIDEO_ST_VGXY61 is not set +# CONFIG_VIDEO_CCS is not set +# CONFIG_VIDEO_ET8EK8 is not set + +# +# Lens drivers +# +# CONFIG_VIDEO_AD5820 is not set +# CONFIG_VIDEO_AK7375 is not set +# CONFIG_VIDEO_DW9714 is not set +# CONFIG_VIDEO_DW9719 is not set +# CONFIG_VIDEO_DW9768 is not set +# CONFIG_VIDEO_DW9807_VCM is not set +# end of Lens drivers + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set +# CONFIG_VIDEO_LM3560 is not set +# CONFIG_VIDEO_LM3646 is not set +# end of Flash devices + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_CS3308 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_SONY_BTF_MPX is not set +# CONFIG_VIDEO_TDA1997X is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_UDA1342 is not set +# CONFIG_VIDEO_VP27SMPX is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_WM8775 is not set +# end of Audio decoders, processors and mixers + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set +# end of RDS decoders + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_ADV7183 is not set +# CONFIG_VIDEO_ADV748X is not set +# CONFIG_VIDEO_ADV7604 is not set +# CONFIG_VIDEO_ADV7842 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_ISL7998X is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_ML86V7667 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_TC358743 is not set +# CONFIG_VIDEO_TC358746 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_TW2804 is not set +# CONFIG_VIDEO_TW9903 is not set +# CONFIG_VIDEO_TW9906 is not set +# CONFIG_VIDEO_TW9910 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set +# end of Video decoders + +# +# Video encoders +# +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_ADV7393 is not set +# CONFIG_VIDEO_ADV7511 is not set +# CONFIG_VIDEO_AK881X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_THS8200 is not set +# end of Video encoders + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set +# end of Video improvement chips + +# +# Audio/Video compression chips +# +# CONFIG_VIDEO_SAA6752HS is not set +# end of Audio/Video compression chips + +# +# SDR tuner chips +# +# CONFIG_SDR_MAX2175 is not set +# end of SDR tuner chips + +# +# Miscellaneous helper chips +# +# CONFIG_VIDEO_I2C is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_ST_MIPID02 is not set +# CONFIG_VIDEO_THS7303 is not set +# end of Miscellaneous helper chips + +# +# Video serializers and deserializers +# +# CONFIG_VIDEO_DS90UB913 is not set +# CONFIG_VIDEO_DS90UB953 is not set +# CONFIG_VIDEO_DS90UB960 is not set +# end of Video serializers and deserializers + +# +# Media SPI Adapters +# +# CONFIG_CXD2880_SPI_DRV is not set +# CONFIG_VIDEO_GS1662 is not set +# end of Media SPI Adapters + +CONFIG_MEDIA_TUNER=y + +# +# Customize TV tuners +# +# CONFIG_MEDIA_TUNER_E4000 is not set +# CONFIG_MEDIA_TUNER_FC0011 is not set +# CONFIG_MEDIA_TUNER_FC0012 is not set +# CONFIG_MEDIA_TUNER_FC0013 is not set +# CONFIG_MEDIA_TUNER_FC2580 is not set +# CONFIG_MEDIA_TUNER_IT913X is not set +# CONFIG_MEDIA_TUNER_M88RS6000T is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set +# CONFIG_MEDIA_TUNER_MSI001 is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2063 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MXL301RF is not set +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set +# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set +# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_R820T is not set +# CONFIG_MEDIA_TUNER_SI2157 is not set +# CONFIG_MEDIA_TUNER_SIMPLE is not set +# CONFIG_MEDIA_TUNER_TDA18212 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_TDA18250 is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_TUA9001 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC4000 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# end of Customize TV tuners + +# +# Customise DVB Frontends +# + +# +# Multistandard (satellite) frontends +# +# CONFIG_DVB_MXL5XX is not set +# CONFIG_DVB_STB0899 is not set +# CONFIG_DVB_STB6100 is not set +# CONFIG_DVB_STV090x is not set +# CONFIG_DVB_STV0910 is not set +# CONFIG_DVB_STV6110x is not set +# CONFIG_DVB_STV6111 is not set + +# +# Multistandard (cable + terrestrial) frontends +# +# CONFIG_DVB_DRXK is not set +# CONFIG_DVB_MN88472 is not set +# CONFIG_DVB_MN88473 is not set +# CONFIG_DVB_SI2165 is not set +# CONFIG_DVB_TDA18271C2DD is not set + +# +# DVB-S (satellite) frontends +# +# CONFIG_DVB_CX24110 is not set +# CONFIG_DVB_CX24116 is not set +# CONFIG_DVB_CX24117 is not set +# CONFIG_DVB_CX24120 is not set +# CONFIG_DVB_CX24123 is not set +# CONFIG_DVB_DS3000 is not set +# CONFIG_DVB_MB86A16 is not set +# CONFIG_DVB_MT312 is not set +# CONFIG_DVB_S5H1420 is not set +# CONFIG_DVB_SI21XX is not set +# CONFIG_DVB_STB6000 is not set +# CONFIG_DVB_STV0288 is not set +# CONFIG_DVB_STV0299 is not set +# CONFIG_DVB_STV0900 is not set +# CONFIG_DVB_STV6110 is not set +# CONFIG_DVB_TDA10071 is not set +# CONFIG_DVB_TDA10086 is not set +# CONFIG_DVB_TDA8083 is not set +# CONFIG_DVB_TDA8261 is not set +# CONFIG_DVB_TDA826X is not set +# CONFIG_DVB_TS2020 is not set +# CONFIG_DVB_TUA6100 is not set +# CONFIG_DVB_TUNER_CX24113 is not set +# CONFIG_DVB_TUNER_ITD1000 is not set +# CONFIG_DVB_VES1X93 is not set +# CONFIG_DVB_ZL10036 is not set +# CONFIG_DVB_ZL10039 is not set + +# +# DVB-T (terrestrial) frontends +# +# CONFIG_DVB_CX22700 is not set +# CONFIG_DVB_CX22702 is not set +# CONFIG_DVB_CXD2820R is not set +# CONFIG_DVB_CXD2841ER is not set +# CONFIG_DVB_DIB3000MB is not set +# CONFIG_DVB_DIB3000MC is not set +# CONFIG_DVB_DIB7000M is not set +# CONFIG_DVB_DIB7000P is not set +# CONFIG_DVB_DIB9000 is not set +# CONFIG_DVB_DRXD is not set +# CONFIG_DVB_EC100 is not set +# CONFIG_DVB_L64781 is not set +# CONFIG_DVB_MT352 is not set +# CONFIG_DVB_NXT6000 is not set +# CONFIG_DVB_S5H1432 is not set +# CONFIG_DVB_SP887X is not set +# CONFIG_DVB_STV0367 is not set +# CONFIG_DVB_TDA10048 is not set +# CONFIG_DVB_TDA1004X is not set +# CONFIG_DVB_ZD1301_DEMOD is not set +# CONFIG_DVB_ZL10353 is not set +# CONFIG_DVB_CXD2880 is not set + +# +# DVB-C (cable) frontends +# +# CONFIG_DVB_STV0297 is not set +# CONFIG_DVB_TDA10021 is not set +# CONFIG_DVB_TDA10023 is not set +# CONFIG_DVB_VES1820 is not set + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +# CONFIG_DVB_AU8522_DTV is not set +# CONFIG_DVB_AU8522_V4L is not set +# CONFIG_DVB_BCM3510 is not set +# CONFIG_DVB_LG2160 is not set +# CONFIG_DVB_LGDT3305 is not set +# CONFIG_DVB_LGDT330X is not set +# CONFIG_DVB_MXL692 is not set +# CONFIG_DVB_NXT200X is not set +# CONFIG_DVB_OR51132 is not set +# CONFIG_DVB_OR51211 is not set +# CONFIG_DVB_S5H1409 is not set +# CONFIG_DVB_S5H1411 is not set + +# +# ISDB-T (terrestrial) frontends +# +# CONFIG_DVB_DIB8000 is not set +# CONFIG_DVB_MB86A20S is not set +# CONFIG_DVB_S921 is not set + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +# CONFIG_DVB_MN88443X is not set +# CONFIG_DVB_TC90522 is not set + +# +# Digital terrestrial only tuners/PLL +# +# CONFIG_DVB_PLL is not set +# CONFIG_DVB_TUNER_DIB0070 is not set +# CONFIG_DVB_TUNER_DIB0090 is not set + +# +# SEC control devices for DVB-S +# +# CONFIG_DVB_A8293 is not set +# CONFIG_DVB_AF9033 is not set +# CONFIG_DVB_ASCOT2E is not set +# CONFIG_DVB_ATBM8830 is not set +# CONFIG_DVB_HELENE is not set +# CONFIG_DVB_HORUS3A is not set +# CONFIG_DVB_ISL6405 is not set +# CONFIG_DVB_ISL6421 is not set +# CONFIG_DVB_ISL6423 is not set +# CONFIG_DVB_IX2505V is not set +# CONFIG_DVB_LGS8GL5 is not set +# CONFIG_DVB_LGS8GXX is not set +# CONFIG_DVB_LNBH25 is not set +# CONFIG_DVB_LNBH29 is not set +# CONFIG_DVB_LNBP21 is not set +# CONFIG_DVB_LNBP22 is not set +# CONFIG_DVB_M88RS2000 is not set +# CONFIG_DVB_TDA665x is not set +# CONFIG_DVB_DRX39XYJ is not set + +# +# Common Interface (EN50221) controller drivers +# +# CONFIG_DVB_CXD2099 is not set +# CONFIG_DVB_SP2 is not set +# end of Customise DVB Frontends + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set +# end of Media ancillary drivers + +# +# Graphics support +# +CONFIG_APERTURE_HELPERS=y +CONFIG_VIDEO_CMDLINE=y +CONFIG_VIDEO_NOMODESET=y +# CONFIG_AUXDISPLAY is not set +# CONFIG_TEGRA_HOST1X is not set +# CONFIG_IMX_IPUV3_CORE is not set +CONFIG_DRM=y +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DEBUG_MM is not set +CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=100 +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_GEM_DMA_HELPER=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips + +# +# ARM devices +# +# CONFIG_DRM_HDLCD is not set +# CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set +# end of ARM devices + +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_AMDGPU is not set +# CONFIG_DRM_NOUVEAU is not set +# CONFIG_DRM_KMB_DISPLAY is not set +# CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set +# CONFIG_DRM_EXYNOS is not set +# CONFIG_DRM_UDL is not set +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_RCAR_DW_HDMI is not set +# CONFIG_DRM_RCAR_USE_LVDS is not set +# CONFIG_DRM_RCAR_USE_MIPI_DSI is not set +# CONFIG_DRM_RZG2L_MIPI_DSI is not set +# CONFIG_DRM_SHMOBILE is not set +# CONFIG_DRM_SUN4I is not set +# CONFIG_DRM_QXL is not set +# CONFIG_DRM_TEGRA is not set +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set +# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set +# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set +# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set +# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set +# CONFIG_DRM_PANEL_DSI_CM is not set +# CONFIG_DRM_PANEL_LVDS is not set +CONFIG_DRM_PANEL_SIMPLE=y +# CONFIG_DRM_PANEL_EDP is not set +# CONFIG_DRM_PANEL_EBBG_FT8719 is not set +# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set +# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set +# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set +# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set +# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set +CONFIG_DRM_PANEL_STARFIVE_JADARD=y +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set +# CONFIG_DRM_PANEL_JDI_R63452 is not set +# CONFIG_DRM_PANEL_KHADAS_TS050 is not set +# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set +# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set +# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LB035Q02 is not set +# CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set +# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set +# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set +# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set +# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set +# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set +# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set +# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set +# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set +# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set +# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set +# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set +# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set +# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set +# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set +# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set +# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set +# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set +# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set +# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set +# CONFIG_DRM_PANEL_TPO_TPG110 is not set +# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set +# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set +# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set +# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set +# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_CHIPONE_ICN6211 is not set +# CONFIG_DRM_CHRONTEL_CH7033 is not set +# CONFIG_DRM_CROS_EC_ANX7688 is not set +# CONFIG_DRM_DISPLAY_CONNECTOR is not set +# CONFIG_DRM_FSL_LDB is not set +# CONFIG_DRM_ITE_IT6505 is not set +# CONFIG_DRM_LONTIUM_LT8912B is not set +# CONFIG_DRM_LONTIUM_LT9211 is not set +# CONFIG_DRM_LONTIUM_LT9611 is not set +# CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_ITE_IT66121 is not set +# CONFIG_DRM_LVDS_CODEC is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NWL_MIPI_DSI is not set +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_PARADE_PS8640 is not set +# CONFIG_DRM_SAMSUNG_DSIM is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_SIMPLE_BRIDGE is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set +CONFIG_DRM_TOSHIBA_TC358762=y +# CONFIG_DRM_TOSHIBA_TC358764 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TOSHIBA_TC358768 is not set +# CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TI_DLPC3433 is not set +# CONFIG_DRM_TI_TFP410 is not set +# CONFIG_DRM_TI_SN65DSI83 is not set +# CONFIG_DRM_TI_SN65DSI86 is not set +# CONFIG_DRM_TI_TPD12S015 is not set +# CONFIG_DRM_ANALOGIX_ANX6345 is not set +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_ANALOGIX_ANX7625 is not set +# CONFIG_DRM_I2C_ADV7511 is not set +# CONFIG_DRM_CDNS_DSI is not set +# CONFIG_DRM_CDNS_MHDP8546 is not set +# CONFIG_DRM_IMX8QM_LDB is not set +# CONFIG_DRM_IMX8QXP_LDB is not set +# CONFIG_DRM_IMX8QXP_PIXEL_COMBINER is not set +# CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI is not set +# end of Display Interface Bridges + +# CONFIG_DRM_IMX_LCDC is not set +# CONFIG_DRM_INGENIC is not set +# CONFIG_DRM_V3D is not set +# CONFIG_DRM_VC4 is not set +# CONFIG_DRM_LOONGSON is not set +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_HISI_HIBMC is not set +# CONFIG_DRM_LOGICVC is not set +# CONFIG_DRM_MXSFB is not set +# CONFIG_DRM_IMX_LCDIF is not set +# CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_BOCHS is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_DRM_OFDRM is not set +# CONFIG_DRM_PANEL_MIPI_DBI is not set +# CONFIG_DRM_SIMPLEDRM is not set +# CONFIG_TINYDRM_HX8357D is not set +# CONFIG_TINYDRM_ILI9163 is not set +# CONFIG_TINYDRM_ILI9225 is not set +# CONFIG_TINYDRM_ILI9341 is not set +# CONFIG_TINYDRM_ILI9486 is not set +# CONFIG_TINYDRM_MI0283QT is not set +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set +# CONFIG_TINYDRM_ST7735R is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_TVE200 is not set +# CONFIG_DRM_LIMA is not set +# CONFIG_DRM_PANFROST is not set +# CONFIG_DRM_ASPEED_GFX is not set +# CONFIG_DRM_MCDE is not set +# CONFIG_DRM_TIDSS is not set +# CONFIG_DRM_GUD is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_SPRD is not set +CONFIG_DRM_VERISILICON=y +CONFIG_SOC_STARFIVE_VF2_VOUT=y +# CONFIG_VERISILICON_VIRTUAL_DISPLAY is not set +# CONFIG_VERISILICON_MMU is not set +# CONFIG_VERISILICON_DEC is not set +CONFIG_STARFIVE_INNO_HDMI=y +CONFIG_STARFIVE_DSI=y +# CONFIG_DRM_I2C_ADV7513 is not set +CONFIG_DRM_IMG=y +CONFIG_DRM_IMG_ROGUE=y +CONFIG_DRM_LEGACY=y +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y + +# +# Frame buffer Devices +# +CONFIG_FB=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_ARMCLCD is not set +# CONFIG_FB_CLPS711X is not set +# CONFIG_FB_IMX is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_CONTROL is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_EFI is not set +# CONFIG_FB_GBE is not set +# CONFIG_FB_PVR2 is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_ATMEL is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_VIA is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_WM8505 is not set +# CONFIG_FB_PXA168 is not set +# CONFIG_FB_SH_MOBILE_LCDC is not set +# CONFIG_FB_S3C is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_GOLDFISH is not set +# CONFIG_FB_DA8XX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set +# CONFIG_FB_OMAP2 is not set +# CONFIG_MMP_DISP is not set +CONFIG_FB_CORE=y +CONFIG_FB_NOTIFY=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_DEVICE=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_DMAMEM_HELPERS=y +CONFIG_FB_SYSMEM_HELPERS=y +CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_KTD253 is not set +# CONFIG_BACKLIGHT_KTZ8866 is not set +# CONFIG_BACKLIGHT_OMAP1 is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_QCOM_WLED is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_LM3639 is not set +# CONFIG_BACKLIGHT_LP855X is not set +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +# CONFIG_BACKLIGHT_LED is not set +# end of Backlight & LCD device support + +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set +# end of Console display driver support + +# CONFIG_LOGO is not set +# end of Graphics support + +# CONFIG_DRM_ACCEL is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_DMAENGINE_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_RAWMIDI=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_CTL_FAST_LOOKUP=y +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_CTL_INPUT_VALIDATION is not set +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_PCMTEST is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_CS5535AUDIO is not set +# CONFIG_SND_CTXFI is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_LX6464ES is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SE6X is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +# CONFIG_SND_HDA_INTEL is not set +# end of HD-Audio + +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y +# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set +CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_US122L is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_ADI is not set +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_AMD_ACP_CONFIG is not set +# CONFIG_SND_SOC_APPLE_MCA is not set +# CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_BCM2835_SOC_I2S is not set +# CONFIG_SND_SOC_CYGNUS is not set +# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set +# CONFIG_SND_EP93XX_SOC is not set +CONFIG_SND_DESIGNWARE_I2S=y +# CONFIG_SND_DESIGNWARE_PCM is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_AUDMIX is not set +# 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_FSL_XCVR is not set +# CONFIG_SND_SOC_FSL_AUD2HTX is not set +# CONFIG_SND_SOC_FSL_RPMSG is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# CONFIG_SND_IMX_SOC is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_SOC_CHV3_I2S is not set +# CONFIG_SND_I2S_HI6210_I2S is not set +# CONFIG_SND_JZ4740_SOC_I2S is not set +# CONFIG_SND_KIRKWOOD_SOC is not set + +# +# SoC Audio for Loongson CPUs +# +# CONFIG_SND_SOC_LOONGSON_I2S_PCI is not set +# CONFIG_SND_SOC_LOONGSON_CARD is not set +# end of SoC Audio for Loongson CPUs + +# CONFIG_SND_SOC_IMG is not set +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y +# CONFIG_SND_SOC_INTEL_KEEMBAY is not set +# CONFIG_SND_SOC_INTEL_AVS is not set +CONFIG_SND_SOC_INTEL_MACH=y +# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set +# CONFIG_SND_SOC_MT8186 is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set +# CONFIG_SND_SOC_MT8188 is not set +# CONFIG_SND_SOC_MT8195 is not set + +# +# ASoC support for Amlogic platforms +# +# CONFIG_SND_MESON_AIU is not set +# CONFIG_SND_MESON_AXG_FRDDR is not set +# CONFIG_SND_MESON_AXG_TODDR is not set +# CONFIG_SND_MESON_AXG_TDMIN is not set +# CONFIG_SND_MESON_AXG_TDMOUT is not set +# CONFIG_SND_MESON_AXG_SOUND_CARD is not set +# CONFIG_SND_MESON_AXG_SPDIFOUT is not set +# CONFIG_SND_MESON_AXG_SPDIFIN is not set +# CONFIG_SND_MESON_AXG_PDM is not set +# CONFIG_SND_MESON_GX_SOUND_CARD is not set +# CONFIG_SND_MESON_G12A_TOACODEC is not set +# CONFIG_SND_MESON_G12A_TOHDMITX is not set +# CONFIG_SND_SOC_MESON_T9015 is not set +# end of ASoC support for Amlogic platforms + +# CONFIG_SND_MXS_SOC is not set +# CONFIG_SND_PXA2XX_SOC is not set +# CONFIG_SND_SOC_QCOM is not set +# CONFIG_SND_SOC_ROCKCHIP is not set +# CONFIG_SND_SOC_SAMSUNG is not set + +# +# SoC Audio support for Renesas SoCs +# +# CONFIG_SND_SOC_SH4_FSI is not set +# CONFIG_SND_SOC_RCAR is not set +CONFIG_SND_SOC_RZ=m +# end of SoC Audio support for Renesas SoCs + +# CONFIG_SND_SOC_SOF_TOPLEVEL is not set +# CONFIG_SND_SOC_SPRD is not set +CONFIG_SND_SOC_STARFIVE=y +# CONFIG_SND_SOC_JH7110_PDM is not set +CONFIG_SND_SOC_JH7110_PWMDAC=y +# CONFIG_SND_SOC_JH7110_SPDIF is not set +CONFIG_SND_SOC_JH7110_TDM=y +# CONFIG_SND_SOC_STI is not set + +# +# STMicroelectronics STM32 SOC audio support +# +# CONFIG_SND_SOC_STM32_SAI is not set +# CONFIG_SND_SOC_STM32_I2S is not set +# CONFIG_SND_SOC_STM32_SPDIFRX is not set +# end of STMicroelectronics STM32 SOC audio support + +# +# Allwinner SoC Audio support +# +# CONFIG_SND_SUN4I_CODEC is not set +# CONFIG_SND_SUN8I_CODEC is not set +# CONFIG_SND_SUN8I_CODEC_ANALOG is not set +# CONFIG_SND_SUN50I_CODEC_ANALOG is not set +# CONFIG_SND_SUN4I_I2S is not set +# CONFIG_SND_SUN4I_SPDIF is not set +# CONFIG_SND_SUN50I_DMIC is not set +# end of Allwinner SoC Audio support + +# CONFIG_SND_SOC_TEGRA is not set + +# +# Audio support for Texas Instruments SoCs +# + +# +# Texas Instruments DAI support for: +# +# CONFIG_SND_SOC_DAVINCI_ASP is not set +# CONFIG_SND_SOC_DAVINCI_MCASP is not set +# CONFIG_SND_SOC_OMAP_DMIC is not set +# CONFIG_SND_SOC_OMAP_MCBSP is not set +# CONFIG_SND_SOC_OMAP_MCPDM is not set + +# +# Audio support for boards with Texas Instruments SoCs +# +# CONFIG_SND_SOC_OMAP_HDMI is not set +# CONFIG_SND_SOC_J721E_EVM is not set +# end of Audio support for Texas Instruments SoCs + +# CONFIG_SND_SOC_UNIPHIER is not set +# CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_AC108=y +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1372_I2C is not set +# CONFIG_SND_SOC_ADAU1372_SPI is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +# CONFIG_SND_SOC_ADAU1761_SPI is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_ADAU7118_HW is not set +# CONFIG_SND_SOC_ADAU7118_I2C is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4375 is not set +# CONFIG_SND_SOC_AK4458 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set +# CONFIG_SND_SOC_AW8738 is not set +# CONFIG_SND_SOC_AW88395 is not set +# CONFIG_SND_SOC_AW88261 is not set +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CHV3_CODEC is not set +# CONFIG_SND_SOC_CPCAP is not set +# CONFIG_SND_SOC_CS35L32 is not set +# 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_CS35L41_SPI is not set +# CONFIG_SND_SOC_CS35L41_I2C is not set +# CONFIG_SND_SOC_CS35L45_SPI is not set +# CONFIG_SND_SOC_CS35L45_I2C is not set +# CONFIG_SND_SOC_CS35L56_I2C is not set +# CONFIG_SND_SOC_CS35L56_SPI 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 +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS42L83 is not set +# CONFIG_SND_SOC_CS4234 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# 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_CX2072X is not set +# CONFIG_SND_SOC_JZ4740_CODEC is not set +# CONFIG_SND_SOC_JZ4725B_CODEC is not set +# CONFIG_SND_SOC_JZ4760_CODEC is not set +# CONFIG_SND_SOC_JZ4770_CODEC is not set +# CONFIG_SND_SOC_DA7213 is not set +# CONFIG_SND_SOC_DMIC is not set +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +# CONFIG_SND_SOC_ES8316 is not set +# CONFIG_SND_SOC_ES8326 is not set +# CONFIG_SND_SOC_ES8328_I2C is not set +# CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_HDA is not set +# CONFIG_SND_SOC_ICS43432 is not set +# CONFIG_SND_SOC_IDT821034 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_LOCHNAGAR_SC is not set +# CONFIG_SND_SOC_MAX98088 is not set +# CONFIG_SND_SOC_MAX98090 is not set +# CONFIG_SND_SOC_MAX98357A is not set +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +# CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98520 is not set +# CONFIG_SND_SOC_MAX98373_I2C is not set +# CONFIG_SND_SOC_MAX98388 is not set +# CONFIG_SND_SOC_MAX98390 is not set +# CONFIG_SND_SOC_MAX98396 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set +# CONFIG_SND_SOC_PCM3060_I2C is not set +# CONFIG_SND_SOC_PCM3060_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM5102A is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_PEB2466 is not set +# CONFIG_SND_SOC_RK3328 is not set +# CONFIG_SND_SOC_RK817 is not set +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +# CONFIG_SND_SOC_RT5640 is not set +# CONFIG_SND_SOC_RT5659 is not set +# CONFIG_SND_SOC_RT9120 is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set +# CONFIG_SND_SOC_SIMPLE_MUX is not set +# CONFIG_SND_SOC_SMA1303 is not set +CONFIG_SND_SOC_SPDIF=y +# CONFIG_SND_SOC_SRC4XXX_I2C is not set +# CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2518 is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM3515 is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS2562 is not set +# CONFIG_SND_SOC_TAS2764 is not set +# CONFIG_SND_SOC_TAS2770 is not set +# CONFIG_SND_SOC_TAS2780 is not set +# CONFIG_SND_SOC_TAS2781_I2C is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS5805M is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TFA989X is not set +# CONFIG_SND_SOC_TLV320ADC3XXX is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set +# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set +# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set +# CONFIG_SND_SOC_TLV320ADCX140 is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set +# CONFIG_SND_SOC_UDA1334 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731_I2C is not set +# CONFIG_SND_SOC_WM8731_SPI is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set +# 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_WM8940 is not set +CONFIG_SND_SOC_WM8960=y +# CONFIG_SND_SOC_WM8961 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZL38060 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_MT6660 is not set +# CONFIG_SND_SOC_NAU8315 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8821 is not set +# CONFIG_SND_SOC_NAU8822 is not set +# CONFIG_SND_SOC_NAU8824 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_LPASS_VA_MACRO is not set +# CONFIG_SND_SOC_LPASS_RX_MACRO is not set +# CONFIG_SND_SOC_LPASS_TX_MACRO is not set +# end of CODEC drivers + +CONFIG_SND_SIMPLE_CARD_UTILS=y +CONFIG_SND_SIMPLE_CARD=y +# CONFIG_SND_AUDIO_GRAPH_CARD is not set +# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set +# CONFIG_SND_TEST_COMPONENT is not set +# CONFIG_SND_VIRTIO is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +CONFIG_UHID=y +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACCUTOUCH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_ASUS is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_BETOP_FF is not set +# CONFIG_HID_BIGBEN_FF is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CREATIVE_SB0540 is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELAN is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +# CONFIG_HID_EVISION is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GOOGLE_STADIA_FF is not set +# CONFIG_HID_VIVALDI 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_VRC2 is not set +# CONFIG_HID_XIAOMI is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_LETSKETCH is not set +# CONFIG_HID_LOGITECH is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MEGAWORLD_FF is not set +# CONFIG_HID_REDRAGON is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NINTENDO is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PENMOUNT is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PXRC is not set +# CONFIG_HID_RAZER is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SEMITEK is not set +# CONFIG_HID_SIGMAMICRO is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_TOPRE is not set +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_U2FZERO is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# CONFIG_HID_MCP2221 is not set +# end of Special HID drivers + +# +# HID-BPF support +# +# end of HID-BPF support + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set +# end of USB HID support + +CONFIG_I2C_HID=y +# CONFIG_I2C_HID_OF is not set +# CONFIG_I2C_HID_OF_ELAN is not set +# CONFIG_I2C_HID_OF_GOODIX is not set + +# +# Intel ISH HID support +# +# end of Intel ISH HID support + +# +# AMD SFH HID Support +# +# CONFIG_AMD_SFH_HID is not set +# end of AMD SFH HID Support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_LED_TRIG is not set +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_PRODUCTLIST is not set +# CONFIG_USB_OTG_DISABLE_EXTERNAL_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 + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +# CONFIG_USB_XHCI_PCI_RENESAS is not set +CONFIG_USB_XHCI_PLATFORM=y +# CONFIG_USB_XHCI_HISTB is not set +# CONFIG_USB_XHCI_MTK is not set +# CONFIG_USB_XHCI_MVEBU is not set +# CONFIG_USB_XHCI_RCAR is not set +# CONFIG_USB_BRCMSTB is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_RENESAS_USBHS_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set +CONFIG_USB_RENESAS_USBHS=y + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +CONFIG_USB_UAS=y + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set + +# +# USB dual-mode controller drivers +# +CONFIG_USB_CDNS_SUPPORT=y +CONFIG_USB_CDNS_HOST=y +CONFIG_USB_CDNS3=y +CONFIG_USB_CDNS3_GADGET=y +CONFIG_USB_CDNS3_HOST=y +CONFIG_USB_CDNS3_TI=y +CONFIG_USB_CDNS3_IMX=y +CONFIG_USB_CDNS3_STARFIVE=y +# CONFIG_USB_FOTG210 is not set +# CONFIG_USB_MTU3 is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_SIMPLE is not set +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_F81232=m +# CONFIG_USB_SERIAL_F8153X is not set +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +# CONFIG_USB_SERIAL_MXUPORT is not set +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_WWAN=m +# CONFIG_USB_SERIAL_OPTION is not set +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_SSU100=m +# CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_UPD78F0730 is not set +# CONFIG_USB_SERIAL_XR is not set +CONFIG_USB_SERIAL_DEBUG=m + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_QCOM_EUD is not set +# CONFIG_APPLE_MFI_FASTCHARGE is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +CONFIG_USB_EZUSB_FX2=m +# CONFIG_USB_HUB_USB251XB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set +# CONFIG_BRCM_USB_PINMAP is not set +# CONFIG_USB_ONBOARD_HUB is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_TEGRA_PHY is not set +# CONFIG_USB_ULPI is not set +# end of USB Physical Layer drivers + +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +# CONFIG_U_SERIAL_CONSOLE is not set + +# +# USB Peripheral Controller +# +# CONFIG_USB_LPC32XX is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +CONFIG_USB_RENESAS_USBHS_UDC=m +# CONFIG_USB_RZV2M_USB3DRD is not set +# CONFIG_USB_RENESAS_USBF is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_SNP_UDC_PLAT is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_BDC_UDC is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_NET2280 is not set +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_MAX3420_UDC is not set +# CONFIG_USB_ASPEED_UDC is not set +# CONFIG_USB_ASPEED_VHUB is not set +# CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + +CONFIG_USB_LIBCOMPOSITE=y +CONFIG_USB_F_ACM=y +CONFIG_USB_U_SERIAL=y +CONFIG_USB_U_ETHER=y +CONFIG_USB_F_SERIAL=y +CONFIG_USB_F_OBEX=y +CONFIG_USB_F_NCM=y +CONFIG_USB_F_ECM=y +CONFIG_USB_F_EEM=y +CONFIG_USB_F_SUBSET=y +CONFIG_USB_F_RNDIS=y +CONFIG_USB_F_MASS_STORAGE=y +CONFIG_USB_F_FS=y +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +# CONFIG_USB_CONFIGFS_F_LB_SS is not set +CONFIG_USB_CONFIGFS_F_FS=y +# CONFIG_USB_CONFIGFS_F_UAC1 is not set +# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set +# CONFIG_USB_CONFIGFS_F_UAC2 is not set +# CONFIG_USB_CONFIGFS_F_MIDI is not set +# CONFIG_USB_CONFIGFS_F_MIDI2 is not set +# CONFIG_USB_CONFIGFS_F_HID is not set +# CONFIG_USB_CONFIGFS_F_UVC is not set +# CONFIG_USB_CONFIGFS_F_PRINTER is not set + +# +# USB Gadget precomposed configurations +# +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_G_WEBCAM is not set +# CONFIG_USB_RAW_GADGET is not set +# end of USB Gadget precomposed configurations + +# CONFIG_TYPEC is not set +CONFIG_USB_ROLE_SWITCH=y +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_DEBUG=y +# CONFIG_MMC_SUNPLUS is not set +# CONFIG_MMC_ARMMMCI is not set +CONFIG_MMC_SDHCI=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_ASPEED is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_OF_ESDHC is not set +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +# CONFIG_MMC_SDHCI_OF_SPARX5 is not set +# CONFIG_MMC_SDHCI_CADENCE is not set +# CONFIG_MMC_SDHCI_ESDHC_IMX is not set +# CONFIG_MMC_SDHCI_DOVE is not set +# CONFIG_MMC_SDHCI_TEGRA is not set +# CONFIG_MMC_SDHCI_S3C is not set +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +# CONFIG_MMC_SDHCI_SPEAR is not set +# CONFIG_MMC_SDHCI_BCM_KONA is not set +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_SDHCI_MILBEAUT is not set +# CONFIG_MMC_SDHCI_IPROC is not set +# CONFIG_MMC_MESON_GX is not set +# CONFIG_MMC_MESON_MX_SDHC is not set +# CONFIG_MMC_MESON_MX_SDIO is not set +# CONFIG_MMC_MOXART is not set +# CONFIG_MMC_SDHCI_ST is not set +# CONFIG_MMC_OMAP_HS is not set +# CONFIG_MMC_SDHCI_MSM is not set +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_DAVINCI is not set +CONFIG_MMC_SPI=y +# CONFIG_MMC_SDHCI_SPRD is not set +CONFIG_MMC_TMIO_CORE=y +CONFIG_MMC_SDHI=y +# CONFIG_MMC_SDHI_SYS_DMAC is not set +# CONFIG_MMC_SDHI_INTERNAL_DMAC is not set +# CONFIG_MMC_UNIPHIER is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +CONFIG_MMC_DW=y +CONFIG_MMC_DW_PLTFM=y +# CONFIG_MMC_DW_BLUEFIELD is not set +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set +# CONFIG_MMC_DW_K3 is not set +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_STARFIVE=y +# CONFIG_MMC_SH_MMCIF is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_CQHCI is not set +# CONFIG_MMC_HSQ is not set +# CONFIG_MMC_TOSHIBA_PCI is not set +# CONFIG_MMC_BCM2835 is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_BRCMSTB is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MMC_SDHCI_OMAP is not set +# CONFIG_MMC_SDHCI_AM654 is not set +# CONFIG_MMC_OWL is not set +# CONFIG_MMC_LITEX is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_CLASS_MULTICOLOR is not set +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set + +# +# LED drivers +# +# CONFIG_LEDS_AN30259A is not set +# CONFIG_LEDS_ARIEL is not set +# CONFIG_LEDS_AW200XX is not set +# CONFIG_LEDS_AW2013 is not set +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_CR0014114 is not set +# CONFIG_LEDS_EL15203000 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3532 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3692X is not set +# CONFIG_LEDS_COBALT_QUBE is not set +# CONFIG_LEDS_COBALT_RAQ is not set +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP3952 is not set +# CONFIG_LEDS_LP50XX is not set +# CONFIG_LEDS_LP55XX_COMMON is not set +# CONFIG_LEDS_LP8860 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PCA995X is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_PWM is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2606MVV is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +CONFIG_LEDS_NS2=y +CONFIG_LEDS_NETXBIG=y +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_OT200 is not set +# CONFIG_LEDS_IS31FL319X is not set +# CONFIG_LEDS_IS31FL32XX is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_SYSCON is not set +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set +# CONFIG_LEDS_SPI_BYTE is not set +# CONFIG_LEDS_TI_LMU_COMMON is not set +# CONFIG_LEDS_LM3697 is not set +# CONFIG_LEDS_IP30 is not set +# CONFIG_LEDS_BCM63138 is not set +# CONFIG_LEDS_LGM is not set + +# +# Flash and Torch LED drivers +# + +# +# RGB LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_DISK is not set +# CONFIG_LEDS_TRIGGER_MTD is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set +# CONFIG_LEDS_TRIGGER_PATTERN is not set +# CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_LEDS_TRIGGER_TTY is not set + +# +# Simple LED drivers +# +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# 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_BRCMSTB is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_MAX8907 is not set +# CONFIG_RTC_DRV_MAX77686 is not set +# CONFIG_RTC_DRV_NCT3018Y is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# 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_RV3032 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_S5M is not set +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6916 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_EFI is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_GAMECUBE is not set +# CONFIG_RTC_DRV_SC27XX is not set +CONFIG_RTC_DRV_SPEAR=y +# CONFIG_RTC_DRV_ZYNQMP is not set +CONFIG_RTC_DRV_STARFIVE=y + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_ASM9260 is not set +# CONFIG_RTC_DRV_DIGICOLOR is not set +# CONFIG_RTC_DRV_FSL_FTM_ALARM is not set +# CONFIG_RTC_DRV_MESON is not set +# CONFIG_RTC_DRV_MESON_VRTC is not set +# CONFIG_RTC_DRV_OMAP is not set +# CONFIG_RTC_DRV_S3C is not set +# CONFIG_RTC_DRV_EP93XX is not set +# CONFIG_RTC_DRV_PL030 is not set +# CONFIG_RTC_DRV_PL031 is not set +# CONFIG_RTC_DRV_AT91RM9200 is not set +# CONFIG_RTC_DRV_AT91SAM9 is not set +# CONFIG_RTC_DRV_RZN1 is not set +# CONFIG_RTC_DRV_GENERIC is not set +# CONFIG_RTC_DRV_VT8500 is not set +# CONFIG_RTC_DRV_SUN6I is not set +# CONFIG_RTC_DRV_SUNXI is not set +# CONFIG_RTC_DRV_MV is not set +# CONFIG_RTC_DRV_ARMADA38X is not set +# CONFIG_RTC_DRV_CADENCE is not set +# CONFIG_RTC_DRV_FTRTC010 is not set +# CONFIG_RTC_DRV_STMP is not set +# CONFIG_RTC_DRV_JZ4740 is not set +# CONFIG_RTC_DRV_LOONGSON is not set +# CONFIG_RTC_DRV_LPC24XX is not set +# CONFIG_RTC_DRV_LPC32XX is not set +# CONFIG_RTC_DRV_PM8XXX is not set +# CONFIG_RTC_DRV_TEGRA is not set +# CONFIG_RTC_DRV_MXC is not set +# CONFIG_RTC_DRV_MXC_V2 is not set +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_BBNSM is not set +# CONFIG_RTC_DRV_MOXART is not set +# CONFIG_RTC_DRV_MT2712 is not set +# CONFIG_RTC_DRV_MT6397 is not set +# CONFIG_RTC_DRV_MT7622 is not set +# CONFIG_RTC_DRV_XGENE is not set +# CONFIG_RTC_DRV_R7301 is not set +# CONFIG_RTC_DRV_STM32 is not set +# CONFIG_RTC_DRV_RTD119X is not set +# CONFIG_RTC_DRV_ASPEED is not set +# CONFIG_RTC_DRV_TI_K3 is not set + +# +# HID Sensor RTC drivers +# +CONFIG_RTC_DRV_GOLDFISH=y +# CONFIG_RTC_DRV_MSC313 is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set +CONFIG_AMBA_PL08X=y +# CONFIG_APPLE_ADMAC is not set +# CONFIG_AXI_DMAC is not set +# CONFIG_BCM_SBA_RAID is not set +# CONFIG_DMA_JZ4780 is not set +# CONFIG_DMA_SA11X0 is not set +# CONFIG_DMA_SUN6I is not set +CONFIG_DW_AXI_DMAC=y +# CONFIG_EP93XX_DMA is not set +# CONFIG_FSL_EDMA is not set +# CONFIG_HISI_DMA is not set +# CONFIG_IMG_MDC_DMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_K3_DMA is not set +# CONFIG_LPC18XX_DMAMUX is not set +# CONFIG_MCF_EDMA is not set +# CONFIG_MILBEAUT_HDMAC is not set +# CONFIG_MILBEAUT_XDMAC is not set +# CONFIG_MMP_PDMA is not set +# CONFIG_MMP_TDMA is not set +# CONFIG_MV_XOR is not set +# CONFIG_MXS_DMA is not set +# CONFIG_NBPFAXI_DMA is not set +# CONFIG_PCH_DMA is not set +# CONFIG_PL330_DMA is not set +# CONFIG_PLX_DMA is not set +# CONFIG_STM32_DMA is not set +# CONFIG_STM32_DMAMUX is not set +# CONFIG_STM32_MDMA is not set +# CONFIG_SPRD_DMA is not set +# CONFIG_TEGRA20_APB_DMA is not set +# CONFIG_TEGRA210_ADMA is not set +# CONFIG_TIMB_DMA is not set +# CONFIG_UNIPHIER_MDMAC is not set +# CONFIG_UNIPHIER_XDMAC is not set +# CONFIG_XGENE_DMA is not set +# CONFIG_XILINX_DMA is not set +# CONFIG_XILINX_XDMA is not set +# CONFIG_XILINX_ZYNQMP_DMA is not set +# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_MTK_HSDMA is not set +# CONFIG_MTK_CQDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=y +# CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +# CONFIG_DW_EDMA is not set +CONFIG_HSU_DMA=y +# CONFIG_SF_PDMA is not set +CONFIG_RENESAS_DMA=y +CONFIG_SH_DMAE_BASE=y +# CONFIG_SH_DMAE is not set +# CONFIG_RCAR_DMAC is not set +# CONFIG_RENESAS_USB_DMAC is not set +# CONFIG_RZ_DMAC is not set +CONFIG_TI_EDMA=y +CONFIG_DMA_OMAP=y +CONFIG_TI_DMA_CROSSBAR=y +# CONFIG_INTEL_LDMA is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_DMATEST=y +CONFIG_DMA_ENGINE_RAID=y + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +# CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set +# end of DMABUF options + +# CONFIG_UIO is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VDPA is not set +# CONFIG_VHOST_MENU is not set + +# +# Microsoft Hyper-V guest support +# +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +# CONFIG_STAGING is not set +CONFIG_GOLDFISH=y +# CONFIG_GOLDFISH_PIPE is not set +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +# CONFIG_OLPC_XO175 is not set +CONFIG_SURFACE_PLATFORMS=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Clock driver for ARM Reference designs +# +# CONFIG_CLK_ICST is not set +# CONFIG_CLK_SP810 is not set +# end of Clock driver for ARM Reference designs + +# CONFIG_CLK_HSDK is not set +# CONFIG_LMK04832 is not set +# CONFIG_COMMON_CLK_APPLE_NCO is not set +# CONFIG_COMMON_CLK_MAX77686 is not set +# CONFIG_COMMON_CLK_MAX9485 is not set +# CONFIG_COMMON_CLK_HI655X is not set +# CONFIG_COMMON_CLK_SCMI is not set +# CONFIG_COMMON_CLK_SCPI is not set +# CONFIG_COMMON_CLK_SI5341 is not set +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_BM1880 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_TPS68470 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_COMMON_CLK_EN7523 is not set +# CONFIG_COMMON_CLK_FSL_FLEXSPI is not set +# CONFIG_COMMON_CLK_FSL_SAI is not set +# CONFIG_COMMON_CLK_GEMINI is not set +# CONFIG_COMMON_CLK_LAN966X is not set +# CONFIG_COMMON_CLK_ASPEED is not set +# CONFIG_COMMON_CLK_S2MPS11 is not set +# CONFIG_COMMON_CLK_AXI_CLKGEN is not set +# CONFIG_CLK_QORIQ is not set +# CONFIG_CLK_LS1028A_PLLDIG is not set +# CONFIG_COMMON_CLK_XGENE is not set +# CONFIG_COMMON_CLK_LOONGSON2 is not set +# CONFIG_COMMON_CLK_PWM is not set +# CONFIG_COMMON_CLK_RS9_PCIE is not set +# CONFIG_COMMON_CLK_SI521XX is not set +# CONFIG_COMMON_CLK_VC3 is not set +# CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_VC7 is not set +# CONFIG_COMMON_CLK_MMP2_AUDIO is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set +# CONFIG_COMMON_CLK_SP7021 is not set +# CONFIG_CLK_ACTIONS is not set +# CONFIG_CLK_BAIKAL_T1 is not set +# CONFIG_CLK_BCM2711_DVP is not set +# CONFIG_CLK_BCM2835 is not set +# CONFIG_CLK_BCM_63XX is not set +# CONFIG_CLK_BCM_63XX_GATE is not set +# CONFIG_CLK_BCM63268_TIMER is not set +# CONFIG_CLK_BCM_KONA is not set +# CONFIG_CLK_BCM_CYGNUS is not set +# CONFIG_CLK_BCM_HR2 is not set +# CONFIG_CLK_BCM_NSP is not set +# CONFIG_CLK_BCM_NS2 is not set +# CONFIG_CLK_BCM_SR is not set +# CONFIG_CLK_RASPBERRYPI is not set +# CONFIG_COMMON_CLK_HI3516CV300 is not set +# CONFIG_COMMON_CLK_HI3519 is not set +# CONFIG_COMMON_CLK_HI3559A is not set +# CONFIG_COMMON_CLK_HI3660 is not set +# CONFIG_COMMON_CLK_HI3670 is not set +# CONFIG_COMMON_CLK_HI3798CV200 is not set +# CONFIG_COMMON_CLK_HI6220 is not set +# CONFIG_RESET_HISI is not set +# CONFIG_STUB_CLK_HI6220 is not set +# CONFIG_STUB_CLK_HI3660 is not set +# CONFIG_COMMON_CLK_BOSTON is not set +# CONFIG_MXC_CLK is not set +# CONFIG_CLK_IMX8MM is not set +# CONFIG_CLK_IMX8MN is not set +# CONFIG_CLK_IMX8MP is not set +# CONFIG_CLK_IMX8MQ is not set +# CONFIG_CLK_IMX8ULP is not set +# CONFIG_CLK_IMX93 is not set +# CONFIG_CLK_IMXRT1050 is not set + +# +# Ingenic SoCs drivers +# +# CONFIG_INGENIC_CGU_JZ4740 is not set +# CONFIG_INGENIC_CGU_JZ4755 is not set +# CONFIG_INGENIC_CGU_JZ4725B is not set +# CONFIG_INGENIC_CGU_JZ4760 is not set +# CONFIG_INGENIC_CGU_JZ4770 is not set +# CONFIG_INGENIC_CGU_JZ4780 is not set +# CONFIG_INGENIC_CGU_X1000 is not set +# CONFIG_INGENIC_CGU_X1830 is not set +# CONFIG_INGENIC_TCU_CLK is not set +# end of Ingenic SoCs drivers + +# CONFIG_COMMON_CLK_KEYSTONE is not set +# CONFIG_TI_SYSCON_CLK is not set + +# +# Clock driver for MediaTek SoC +# +# CONFIG_COMMON_CLK_MEDIATEK_FHCTL is not set +# CONFIG_COMMON_CLK_MT2701 is not set +# CONFIG_COMMON_CLK_MT2712 is not set +# CONFIG_COMMON_CLK_MT6765 is not set +# CONFIG_COMMON_CLK_MT6779 is not set +# CONFIG_COMMON_CLK_MT6795 is not set +# CONFIG_COMMON_CLK_MT6797 is not set +# CONFIG_COMMON_CLK_MT7622 is not set +# CONFIG_COMMON_CLK_MT7629 is not set +# CONFIG_COMMON_CLK_MT7981 is not set +# CONFIG_COMMON_CLK_MT7986 is not set +# CONFIG_COMMON_CLK_MT8135 is not set +# CONFIG_COMMON_CLK_MT8167 is not set +# CONFIG_COMMON_CLK_MT8173 is not set +# CONFIG_COMMON_CLK_MT8183 is not set +# CONFIG_COMMON_CLK_MT8186 is not set +# CONFIG_COMMON_CLK_MT8188 is not set +# CONFIG_COMMON_CLK_MT8192 is not set +# CONFIG_COMMON_CLK_MT8195 is not set +# CONFIG_COMMON_CLK_MT8365 is not set +# CONFIG_COMMON_CLK_MT8516 is not set +# end of Clock driver for MediaTek SoC + +# +# Clock support for Amlogic platforms +# +# end of Clock support for Amlogic platforms + +# CONFIG_MSTAR_MSC313_CPUPLL is not set +# CONFIG_MSTAR_MSC313_MPLL is not set +# CONFIG_MCHP_CLK_MPFS is not set +CONFIG_COMMON_CLK_NUVOTON=y +CONFIG_CLK_MA35D1=y +# CONFIG_COMMON_CLK_PISTACHIO is not set +# CONFIG_COMMON_CLK_QCOM is not set +# CONFIG_CLK_MT7621 is not set +# CONFIG_CLK_MTMIPS is not set +# CONFIG_CLK_RENESAS is not set +# CONFIG_COMMON_CLK_SAMSUNG is not set +# CONFIG_CLK_SIFIVE is not set +# CONFIG_CLK_INTEL_SOCFPGA is not set +# CONFIG_SPRD_COMMON_CLK is not set +CONFIG_CLK_STARFIVE_JH71X0=y +CONFIG_CLK_STARFIVE_JH7100=y +# CONFIG_CLK_STARFIVE_JH7100_AUDIO is not set +CONFIG_CLK_STARFIVE_JH7110_PLL=y +CONFIG_CLK_STARFIVE_JH7110_SYS=y +CONFIG_CLK_STARFIVE_JH7110_AON=y +CONFIG_CLK_STARFIVE_JH7110_STG=y +CONFIG_CLK_STARFIVE_JH7110_ISP=y +CONFIG_CLK_STARFIVE_JH7110_VOUT=y +CONFIG_CLK_SUNXI=y +CONFIG_CLK_SUNXI_CLOCKS=y +CONFIG_CLK_SUNXI_PRCM_SUN6I=y +CONFIG_CLK_SUNXI_PRCM_SUN8I=y +CONFIG_CLK_SUNXI_PRCM_SUN9I=y +# CONFIG_SUNXI_CCU is not set +# CONFIG_COMMON_CLK_TI_ADPLL is not set +# CONFIG_CLK_UNIPHIER is not set +# CONFIG_COMMON_CLK_VISCONTI is not set +# CONFIG_CLK_LGM_CGU is not set +# CONFIG_XILINX_VCU is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_COMMON_CLK_ZYNQMP is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_CLKSRC_MMIO=y +# CONFIG_BCM2835_TIMER is not set +# CONFIG_BCM_KONA_TIMER is not set +# CONFIG_DAVINCI_TIMER is not set +# CONFIG_DIGICOLOR_TIMER is not set +# CONFIG_OMAP_DM_TIMER is not set +# CONFIG_DW_APB_TIMER is not set +# CONFIG_FTTMR010_TIMER is not set +# CONFIG_IXP4XX_TIMER is not set +# CONFIG_MESON6_TIMER is not set +# CONFIG_OWL_TIMER is not set +# CONFIG_RDA_TIMER is not set +# CONFIG_SUN4I_TIMER is not set +# CONFIG_SUN5I_HSTIMER is not set +# CONFIG_TEGRA_TIMER is not set +# CONFIG_TEGRA186_TIMER is not set +# CONFIG_VT8500_TIMER is not set +# CONFIG_NPCM7XX_TIMER is not set +# CONFIG_CADENCE_TTC_TIMER is not set +# CONFIG_ASM9260_TIMER is not set +# CONFIG_CLKSRC_DBX500_PRCMU is not set +# CONFIG_CLPS711X_TIMER is not set +# CONFIG_MXS_TIMER is not set +# CONFIG_NSPIRE_TIMER is not set +# CONFIG_INTEGRATOR_AP_TIMER is not set +# CONFIG_CLKSRC_PISTACHIO is not set +# CONFIG_CLKSRC_TI_32K is not set +# CONFIG_CLKSRC_STM32_LP is not set +# CONFIG_CLKSRC_MPS2 is not set +# CONFIG_ARC_TIMERS is not set +# CONFIG_ARM_TIMER_SP804 is not set +# CONFIG_ARMV7M_SYSTICK is not set +# CONFIG_ATMEL_PIT is not set +# CONFIG_ATMEL_ST is not set +# CONFIG_CLKSRC_SAMSUNG_PWM is not set +# CONFIG_FSL_FTM_TIMER is not set +# CONFIG_MTK_TIMER is not set +# CONFIG_MTK_CPUX_TIMER is not set +# CONFIG_SPRD_TIMER is not set +# CONFIG_CLKSRC_JCORE_PIT is not set +# CONFIG_SH_TIMER_CMT is not set +# CONFIG_SH_TIMER_MTU2 is not set +# CONFIG_RENESAS_OSTM is not set +# CONFIG_SH_TIMER_TMU is not set +# CONFIG_EM_TIMER_STI is not set +# CONFIG_CLKSRC_VERSATILE is not set +# CONFIG_CLKSRC_PXA is not set +# CONFIG_TIMER_IMX_SYS_CTR is not set +# CONFIG_CLKSRC_LOONGSON1_PWM is not set +# CONFIG_CLKSRC_ST_LPC is not set +# CONFIG_GXP_TIMER is not set +CONFIG_RISCV_TIMER=y +CONFIG_STARFIVE_JH7110_TIMER=y +# CONFIG_CLINT_TIMER is not set +# CONFIG_MSC313E_TIMER is not set +# CONFIG_INGENIC_TIMER is not set +# CONFIG_INGENIC_SYSOST is not set +# CONFIG_INGENIC_OST is not set +# CONFIG_GOLDFISH_TIMER is not set +# end of Clock Source drivers + +CONFIG_MAILBOX=y +# CONFIG_ARM_MHU is not set +# CONFIG_ARM_MHU_V2 is not set +# CONFIG_IMX_MBOX is not set +# CONFIG_PLATFORM_MHU is not set +# CONFIG_PL320_MBOX is not set +# CONFIG_ARMADA_37XX_RWTM_MBOX is not set +# CONFIG_ROCKCHIP_MBOX is not set +# CONFIG_ALTERA_MBOX is not set +# CONFIG_HI3660_MBOX is not set +# CONFIG_HI6220_MBOX is not set +# CONFIG_MAILBOX_TEST is not set +# CONFIG_POLARFIRE_SOC_MAILBOX is not set +# CONFIG_QCOM_APCS_IPC is not set +# CONFIG_BCM_PDC_MBOX is not set +# CONFIG_STM32_IPCC is not set +# CONFIG_MTK_ADSP_MBOX is not set +# CONFIG_MTK_CMDQ_MBOX is not set +# CONFIG_SUN6I_MSGBOX is not set +# CONFIG_SPRD_MBOX is not set +# CONFIG_QCOM_IPCC is not set +CONFIG_STARFIVE_IPI_MBOX=y +CONFIG_STARFIVE_MBOX=m +CONFIG_STARFIVE_MBOX_TEST=m +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +CONFIG_RPMSG=y +CONFIG_RPMSG_CHAR=y +CONFIG_RPMSG_CTRL=y +CONFIG_RPMSG_NS=y +CONFIG_RPMSG_STARFIVE=m +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +CONFIG_RPMSG_VIRTIO=y +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# +# CONFIG_OWL_PM_DOMAINS is not set + +# +# Amlogic SoC drivers +# +# CONFIG_MESON_CANVAS is not set +# CONFIG_MESON_CLK_MEASURE is not set +# CONFIG_MESON_GX_SOCINFO is not set +# CONFIG_MESON_GX_PM_DOMAINS is not set +# CONFIG_MESON_EE_PM_DOMAINS is not set +# CONFIG_MESON_MX_SOCINFO is not set +# end of Amlogic SoC drivers + +# +# Apple SoC drivers +# +# CONFIG_APPLE_PMGR_PWRSTATE is not set +# CONFIG_APPLE_RTKIT is not set +# CONFIG_APPLE_SART is not set +# end of Apple SoC drivers + +# +# ASPEED SoC drivers +# +# CONFIG_ASPEED_LPC_CTRL is not set +# CONFIG_ASPEED_LPC_SNOOP is not set +# CONFIG_ASPEED_UART_ROUTING is not set +# CONFIG_ASPEED_P2A_CTRL is not set +# CONFIG_ASPEED_SOCINFO is not set +# end of ASPEED SoC drivers + +# CONFIG_AT91_SOC_ID is not set +# CONFIG_AT91_SOC_SFR is not set + +# +# Broadcom SoC drivers +# +# CONFIG_BCM2835_POWER is not set +# CONFIG_SOC_BCM63XX is not set +# CONFIG_SOC_BRCMSTB is not set +# CONFIG_BCM_PMB is not set +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# CONFIG_QUICC_ENGINE is not set +CONFIG_DPAA2_CONSOLE=y +# end of NXP/Freescale QorIQ SoC drivers + +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + +# +# Hisilicon SoC drivers +# +# end of Hisilicon SoC drivers + +# +# i.MX SoC drivers +# +# CONFIG_IMX_GPCV2_PM_DOMAINS is not set +# CONFIG_SOC_IMX8M is not set +# CONFIG_SOC_IMX9 is not set +# end of i.MX SoC drivers + +# +# IXP4xx SoC drivers +# +# CONFIG_IXP4XX_QMGR is not set +# CONFIG_IXP4XX_NPE is not set +# end of IXP4xx SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# CONFIG_LITEX_SOC_CONTROLLER is not set +# end of Enable LiteX SoC Builder specific drivers + +# CONFIG_LOONGSON2_GUTS is not set + +# +# MediaTek SoC drivers +# +# CONFIG_MTK_CMDQ is not set +# CONFIG_MTK_DEVAPC is not set +# CONFIG_MTK_INFRACFG is not set +# CONFIG_MTK_PMIC_WRAP is not set +# CONFIG_MTK_REGULATOR_COUPLER is not set +# CONFIG_MTK_SCPSYS is not set +# CONFIG_MTK_SCPSYS_PM_DOMAINS is not set +# CONFIG_MTK_MMSYS is not set +# end of MediaTek SoC drivers + +# CONFIG_WPCM450_SOC is not set + +# +# Qualcomm SoC drivers +# +# CONFIG_QCOM_AOSS_QMP is not set +# CONFIG_QCOM_COMMAND_DB is not set +# CONFIG_QCOM_GENI_SE is not set +# CONFIG_QCOM_GSBI is not set +# CONFIG_QCOM_LLCC is not set +# CONFIG_QCOM_RAMP_CTRL is not set +# CONFIG_QCOM_RPM_MASTER_STATS is not set +# CONFIG_QCOM_RPMH is not set +# CONFIG_QCOM_SMD_RPM is not set +# CONFIG_QCOM_SPM is not set +# CONFIG_QCOM_WCNSS_CTRL is not set +# CONFIG_QCOM_APR is not set +# CONFIG_QCOM_ICC_BWMON is not set +# end of Qualcomm SoC drivers + +# CONFIG_SOC_RENESAS is not set +# CONFIG_ROCKCHIP_GRF is not set +# CONFIG_ROCKCHIP_IODOMAIN is not set +# CONFIG_ROCKCHIP_PM_DOMAINS is not set +# CONFIG_SOC_SAMSUNG is not set +CONFIG_SIFIVE_CCACHE=y +# CONFIG_SUN20I_PPU is not set +# CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER is not set +# CONFIG_SOC_TEGRA30_VOLTAGE_COUPLER is not set +# CONFIG_SOC_TI is not set +# CONFIG_UX500_SOC_ID is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# +# PM Domains +# +CONFIG_JH71XX_PMU=y +# end of PM Domains + +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set +# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set +# CONFIG_DEVFREQ_GOV_POWERSAVE is not set +# CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_GOV_PASSIVE is not set + +# +# DEVFREQ Drivers +# +# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set +# CONFIG_ARM_IMX_BUS_DEVFREQ is not set +# CONFIG_ARM_TEGRA_DEVFREQ is not set +# CONFIG_ARM_MEDIATEK_CCI_DEVFREQ is not set +# CONFIG_ARM_SUN8I_A33_MBUS_DEVFREQ is not set +# CONFIG_PM_DEVFREQ_EVENT is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +CONFIG_IIO=y +# CONFIG_IIO_BUFFER is not set +# CONFIG_IIO_CONFIGFS is not set +# CONFIG_IIO_TRIGGER is not set +# CONFIG_IIO_SW_DEVICE is not set +# CONFIG_IIO_SW_TRIGGER is not set +# CONFIG_IIO_TRIGGERED_EVENT is not set + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADXL313_I2C is not set +# CONFIG_ADXL313_SPI is not set +# CONFIG_ADXL345_I2C is not set +# CONFIG_ADXL345_SPI is not set +# CONFIG_ADXL355_I2C is not set +# CONFIG_ADXL355_SPI is not set +# CONFIG_ADXL367_SPI is not set +# CONFIG_ADXL367_I2C is not set +# CONFIG_ADXL372_SPI is not set +# CONFIG_ADXL372_I2C is not set +# CONFIG_BMA180 is not set +# CONFIG_BMA220 is not set +# CONFIG_BMA400 is not set +# CONFIG_BMC150_ACCEL is not set +# CONFIG_BMI088_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set +# CONFIG_DMARD06 is not set +# CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set +# CONFIG_FXLS8962AF_I2C is not set +# CONFIG_FXLS8962AF_SPI is not set +CONFIG_IIO_ST_ACCEL_3AXIS=y +CONFIG_IIO_ST_ACCEL_I2C_3AXIS=y +CONFIG_IIO_ST_ACCEL_SPI_3AXIS=y +# CONFIG_IIO_KX022A_SPI is not set +# CONFIG_IIO_KX022A_I2C is not set +# CONFIG_KXSD9 is not set +# CONFIG_KXCJK1013 is not set +# CONFIG_MC3230 is not set +# CONFIG_MMA7455_I2C is not set +# CONFIG_MMA7455_SPI is not set +# CONFIG_MMA7660 is not set +# CONFIG_MMA8452 is not set +# CONFIG_MMA9551 is not set +# CONFIG_MMA9553 is not set +# CONFIG_MSA311 is not set +# CONFIG_MXC4005 is not set +# CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set +# CONFIG_SCA3300 is not set +# CONFIG_STK8312 is not set +# CONFIG_STK8BA50 is not set +# end of Accelerometers + +# +# Analog to digital converters +# +# CONFIG_AD4130 is not set +# CONFIG_AD7091R5 is not set +# CONFIG_AD7124 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7266 is not set +# CONFIG_AD7280 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7292 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_AD7780 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD7949 is not set +# CONFIG_AD799X is not set +# CONFIG_ADI_AXI_ADC is not set +# CONFIG_ASPEED_ADC is not set +# CONFIG_AT91_ADC is not set +# CONFIG_AT91_SAMA5D2_ADC is not set +# CONFIG_AXP20X_ADC is not set +# CONFIG_AXP288_ADC is not set +# CONFIG_BCM_IPROC_ADC is not set +# CONFIG_BERLIN2_ADC is not set +# CONFIG_CC10001_ADC is not set +# CONFIG_ENVELOPE_DETECTOR is not set +# CONFIG_EP93XX_ADC is not set +# CONFIG_EXYNOS_ADC is not set +# CONFIG_HI8435 is not set +# CONFIG_HX711 is not set +# CONFIG_INA2XX_ADC is not set +# CONFIG_INGENIC_ADC is not set +# CONFIG_IMX7D_ADC is not set +# CONFIG_IMX8QXP_ADC is not set +# CONFIG_IMX93_ADC is not set +# CONFIG_LPC18XX_ADC is not set +# CONFIG_LPC32XX_ADC is not set +# CONFIG_LTC2471 is not set +# CONFIG_LTC2485 is not set +# CONFIG_LTC2496 is not set +# CONFIG_LTC2497 is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX11100 is not set +# CONFIG_MAX1118 is not set +# CONFIG_MAX11205 is not set +# CONFIG_MAX11410 is not set +# CONFIG_MAX1241 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MAX9611 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_MCP3911 is not set +# CONFIG_MEDIATEK_MT6577_AUXADC is not set +# CONFIG_MESON_SARADC is not set +# CONFIG_NAU7802 is not set +# CONFIG_NPCM_ADC is not set +# CONFIG_RCAR_GYRO_ADC is not set +# CONFIG_ROCKCHIP_SARADC is not set +# CONFIG_RICHTEK_RTQ6056 is not set +# CONFIG_RZG2L_ADC is not set +# CONFIG_SC27XX_ADC is not set +# CONFIG_SPEAR_ADC is not set +# CONFIG_SD_ADC_MODULATOR is not set +# CONFIG_STM32_ADC_CORE is not set +# CONFIG_STM32_DFSDM_CORE is not set +# CONFIG_STM32_DFSDM_ADC is not set +# CONFIG_SUN20I_GPADC is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC0832 is not set +# CONFIG_TI_ADC084S021 is not set +# CONFIG_TI_ADC12138 is not set +# CONFIG_TI_ADC108S102 is not set +# CONFIG_TI_ADC128S052 is not set +# CONFIG_TI_ADC161S626 is not set +# CONFIG_TI_ADS1015 is not set +# CONFIG_TI_ADS7924 is not set +# CONFIG_TI_ADS1100 is not set +# CONFIG_TI_ADS7950 is not set +# CONFIG_TI_ADS8344 is not set +# CONFIG_TI_ADS8688 is not set +# CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_ADS131E08 is not set +# CONFIG_TI_LMP92064 is not set +# CONFIG_TI_TLC4541 is not set +# CONFIG_TI_TSC2046 is not set +# CONFIG_VF610_ADC is not set +# CONFIG_XILINX_XADC is not set +# CONFIG_XILINX_AMS is not set +# end of Analog to digital converters + +# +# Analog to digital and digital to analog converters +# +# CONFIG_AD74115 is not set +# CONFIG_AD74413R is not set +# end of Analog to digital and digital to analog converters + +# +# Analog Front Ends +# +# CONFIG_IIO_RESCALE is not set +# end of Analog Front Ends + +# +# Amplifiers +# +# CONFIG_AD8366 is not set +# CONFIG_ADA4250 is not set +# CONFIG_HMC425 is not set +# end of Amplifiers + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7746 is not set +# end of Capacitance to digital converters + +# +# Chemical Sensors +# +# CONFIG_ATLAS_PH_SENSOR is not set +# CONFIG_ATLAS_EZO_SENSOR is not set +# CONFIG_BME680 is not set +# CONFIG_CCS811 is not set +# CONFIG_IAQCORE is not set +# CONFIG_SCD30_CORE is not set +# CONFIG_SCD4X is not set +# CONFIG_SENSIRION_SGP30 is not set +# CONFIG_SENSIRION_SGP40 is not set +# CONFIG_SPS30_I2C is not set +# CONFIG_SENSEAIR_SUNRISE_CO2 is not set +# CONFIG_VZ89X is not set +# end of Chemical Sensors + +# +# Hid Sensor IIO Common +# +# end of Hid Sensor IIO Common + +# +# IIO SCMI Sensors +# +# end of IIO SCMI Sensors + +# +# SSP Sensor Common +# +# CONFIG_IIO_SSP_SENSORHUB is not set +# end of SSP Sensor Common + +CONFIG_IIO_ST_SENSORS_I2C=y +CONFIG_IIO_ST_SENSORS_SPI=y +CONFIG_IIO_ST_SENSORS_CORE=y + +# +# Digital to analog converters +# +# CONFIG_AD3552R is not set +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5592R is not set +# CONFIG_AD5593R is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_LTC2688 is not set +# CONFIG_AD5686_SPI is not set +# CONFIG_AD5696_I2C is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5758 is not set +# CONFIG_AD5761 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5766 is not set +# CONFIG_AD5770R is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7293 is not set +# CONFIG_AD7303 is not set +# CONFIG_AD8801 is not set +# CONFIG_DPOT_DAC is not set +# CONFIG_DS4424 is not set +# CONFIG_LPC18XX_DAC is not set +# CONFIG_LTC1660 is not set +# CONFIG_LTC2632 is not set +# CONFIG_M62332 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5522 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4728 is not set +# CONFIG_MCP4922 is not set +# CONFIG_STM32_DAC is not set +# 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 +# end of Digital to analog converters + +# +# IIO dummy driver +# +# end of IIO dummy driver + +# +# Filters +# +# CONFIG_ADMV8818 is not set +# end of Filters + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set +# end of Clock Generator/Distribution + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set +# CONFIG_ADF4371 is not set +# CONFIG_ADF4377 is not set +# CONFIG_ADMV1013 is not set +# CONFIG_ADMV1014 is not set +# CONFIG_ADMV4420 is not set +# CONFIG_ADRF6780 is not set +# end of Phase-Locked Loop (PLL) frequency synthesizers +# end of Frequency Synthesizers DDS/PLL + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS290 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +# CONFIG_FXAS21002C is not set +# CONFIG_MPU3050_I2C is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set +# end of Digital gyroscope sensors + +# +# Health Sensors +# + +# +# Heart Rate Monitors +# +# CONFIG_AFE4403 is not set +# CONFIG_AFE4404 is not set +# CONFIG_MAX30100 is not set +# CONFIG_MAX30102 is not set +# end of Heart Rate Monitors +# end of Health Sensors + +# +# Humidity sensors +# +# CONFIG_AM2315 is not set +# CONFIG_DHT11 is not set +# CONFIG_HDC100X is not set +# CONFIG_HDC2010 is not set +# CONFIG_HTS221 is not set +# CONFIG_HTU21 is not set +# CONFIG_SI7005 is not set +# CONFIG_SI7020 is not set +# end of Humidity sensors + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16460 is not set +# CONFIG_ADIS16475 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_BMI160_I2C is not set +# CONFIG_BMI160_SPI is not set +# CONFIG_BOSCH_BNO055_I2C is not set +# CONFIG_FXOS8700_I2C is not set +# CONFIG_FXOS8700_SPI is not set +# CONFIG_KMX61 is not set +# CONFIG_INV_ICM42600_I2C is not set +# CONFIG_INV_ICM42600_SPI is not set +# CONFIG_INV_MPU6050_I2C is not set +# CONFIG_INV_MPU6050_SPI is not set +# CONFIG_IIO_ST_LSM6DSX is not set +# CONFIG_IIO_ST_LSM9DS0 is not set +# end of Inertial measurement units + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_ADUX1020 is not set +# CONFIG_AL3010 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_APDS9960 is not set +# CONFIG_AS73211 is not set +# CONFIG_BH1750 is not set +# CONFIG_BH1780 is not set +# CONFIG_CM32181 is not set +# CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set +# CONFIG_CM3605 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP002 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_IQS621_ALS is not set +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_ISL29125 is not set +# CONFIG_JSA1212 is not set +# CONFIG_ROHM_BU27008 is not set +# CONFIG_ROHM_BU27034 is not set +# CONFIG_RPR0521 is not set +# CONFIG_LTR501 is not set +# CONFIG_LTRF216A is not set +# CONFIG_LV0104CS is not set +# CONFIG_MAX44000 is not set +# CONFIG_MAX44009 is not set +# CONFIG_NOA1305 is not set +# CONFIG_OPT3001 is not set +# CONFIG_OPT4001 is not set +# CONFIG_PA12203001 is not set +# CONFIG_SI1133 is not set +# CONFIG_SI1145 is not set +# CONFIG_STK3310 is not set +# CONFIG_ST_UVIS25 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2591 is not set +# CONFIG_TSL2772 is not set +# CONFIG_TSL4531 is not set +# CONFIG_US5182D is not set +# CONFIG_VCNL4000 is not set +# CONFIG_VCNL4035 is not set +# CONFIG_VEML6030 is not set +# CONFIG_VEML6070 is not set +# CONFIG_VL6180 is not set +# CONFIG_ZOPT2201 is not set +# end of Light sensors + +# +# Magnetometer sensors +# +# CONFIG_AK8974 is not set +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_BMC150_MAGN_I2C is not set +# CONFIG_BMC150_MAGN_SPI is not set +# CONFIG_MAG3110 is not set +# CONFIG_MMC35240 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set +# CONFIG_SENSORS_RM3100_I2C is not set +# CONFIG_SENSORS_RM3100_SPI is not set +# CONFIG_TI_TMAG5273 is not set +# CONFIG_YAMAHA_YAS530 is not set +# end of Magnetometer sensors + +# +# Multiplexers +# +# CONFIG_IIO_MUX is not set +# end of Multiplexers + +# +# Inclinometer sensors +# +# end of Inclinometer sensors + +# +# Linear and angular position sensors +# +# CONFIG_IQS624_POS is not set +# end of Linear and angular position sensors + +# +# Digital potentiometers +# +# CONFIG_AD5110 is not set +# CONFIG_AD5272 is not set +# CONFIG_DS1803 is not set +# CONFIG_MAX5432 is not set +# CONFIG_MAX5481 is not set +# CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set +# CONFIG_MCP4131 is not set +# CONFIG_MCP4531 is not set +# CONFIG_MCP41010 is not set +# CONFIG_TPL0102 is not set +# CONFIG_X9250 is not set +# end of Digital potentiometers + +# +# Digital potentiostats +# +# CONFIG_LMP91000 is not set +# end of Digital potentiostats + +# +# Pressure sensors +# +# CONFIG_ABP060MG is not set +# CONFIG_BMP280 is not set +# CONFIG_DLHL60D is not set +# CONFIG_DPS310 is not set +# CONFIG_HP03 is not set +# CONFIG_ICP10100 is not set +# CONFIG_MPL115_I2C is not set +# CONFIG_MPL115_SPI is not set +# CONFIG_MPL3115 is not set +# CONFIG_MPRLS0025PA is not set +# CONFIG_MS5611 is not set +# CONFIG_MS5637 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set +# CONFIG_HP206C is not set +# CONFIG_ZPA2326 is not set +# end of Pressure sensors + +# +# Lightning sensors +# +# CONFIG_AS3935 is not set +# end of Lightning sensors + +# +# Proximity and distance sensors +# +# CONFIG_IRSD200 is not set +# CONFIG_ISL29501 is not set +# CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_MB1232 is not set +# CONFIG_PING is not set +# CONFIG_RFD77402 is not set +# CONFIG_SRF04 is not set +# CONFIG_SX9310 is not set +# CONFIG_SX9324 is not set +# CONFIG_SX9360 is not set +# CONFIG_SX9500 is not set +# CONFIG_SRF08 is not set +# CONFIG_VCNL3020 is not set +# CONFIG_VL53L0X_I2C is not set +# end of Proximity and distance sensors + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# end of Resolver to digital converters + +# +# Temperature sensors +# +# CONFIG_IQS620AT_TEMP is not set +# CONFIG_LTC2983 is not set +# CONFIG_MAXIM_THERMOCOUPLE is not set +# CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set +# CONFIG_TMP006 is not set +# CONFIG_TMP007 is not set +# CONFIG_TMP117 is not set +# CONFIG_TSYS01 is not set +# CONFIG_TSYS02D is not set +# CONFIG_MAX30208 is not set +# CONFIG_MAX31856 is not set +# CONFIG_MAX31865 is not set +# end of Temperature sensors + +# CONFIG_NTB is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +# CONFIG_PWM_DEBUG is not set +# CONFIG_PWM_APPLE is not set +# CONFIG_PWM_ATMEL is not set +# CONFIG_PWM_ATMEL_TCB is not set +# CONFIG_PWM_BCM_IPROC is not set +# CONFIG_PWM_BCM_KONA is not set +# CONFIG_PWM_BCM2835 is not set +# CONFIG_PWM_BERLIN is not set +# CONFIG_PWM_BRCMSTB is not set +# CONFIG_PWM_CLK is not set +# CONFIG_PWM_CLPS711X is not set +# CONFIG_PWM_DWC is not set +# CONFIG_PWM_EP93XX is not set +# CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_HIBVT is not set +# CONFIG_PWM_IMG is not set +# CONFIG_PWM_IMX1 is not set +# CONFIG_PWM_IMX27 is not set +# CONFIG_PWM_IMX_TPM is not set +# CONFIG_PWM_INTEL_LGM is not set +# CONFIG_PWM_IQS620A is not set +# CONFIG_PWM_JZ4740 is not set +# CONFIG_PWM_KEEMBAY is not set +# CONFIG_PWM_LPC18XX_SCT is not set +# CONFIG_PWM_LPC32XX is not set +# CONFIG_PWM_LPSS_PCI is not set +# CONFIG_PWM_LPSS_PLATFORM is not set +# CONFIG_PWM_MESON is not set +# CONFIG_PWM_MTK_DISP is not set +# CONFIG_PWM_MEDIATEK is not set +# CONFIG_PWM_MICROCHIP_CORE is not set +# CONFIG_PWM_MXS is not set +CONFIG_PWM_OCORES=y +# CONFIG_PWM_OMAP_DMTIMER is not set +# CONFIG_PWM_PCA9685 is not set +# CONFIG_PWM_PXA is not set +# CONFIG_PWM_RASPBERRYPI_POE is not set +# CONFIG_PWM_RCAR is not set +# CONFIG_PWM_RENESAS_TPU is not set +# CONFIG_PWM_ROCKCHIP is not set +# CONFIG_PWM_SAMSUNG is not set +# CONFIG_PWM_SIFIVE is not set +# CONFIG_PWM_SL28CPLD is not set +# CONFIG_PWM_SPEAR is not set +# CONFIG_PWM_SPRD is not set +# CONFIG_PWM_STI is not set +# CONFIG_PWM_STM32 is not set +# CONFIG_PWM_STM32_LP is not set +# CONFIG_PWM_SUN4I is not set +# CONFIG_PWM_SUNPLUS is not set +# CONFIG_PWM_TEGRA is not set +# CONFIG_PWM_TIECAP is not set +# CONFIG_PWM_TIEHRPWM is not set +# CONFIG_PWM_VISCONTI is not set +# CONFIG_PWM_VT8500 is not set +# CONFIG_PWM_XILINX is not set + +# +# IRQ chip support +# +CONFIG_IRQCHIP=y +# CONFIG_AL_FIC is not set +# CONFIG_JCORE_AIC is not set +# CONFIG_RENESAS_INTC_IRQPIN is not set +# CONFIG_RENESAS_IRQC is not set +# CONFIG_RENESAS_RZA1_IRQC is not set +# CONFIG_RENESAS_RZG2L_IRQC is not set +# CONFIG_SL28CPLD_INTC is not set +# CONFIG_TS4800_IRQ is not set +# CONFIG_XILINX_INTC is not set +# CONFIG_INGENIC_TCU_IRQ is not set +# CONFIG_IRQ_UNIPHIER_AIDET is not set +# CONFIG_MESON_IRQ_GPIO is not set +# CONFIG_IMX_IRQSTEER is not set +# CONFIG_IMX_INTMUX is not set +# CONFIG_IMX_MU_MSI is not set +CONFIG_RISCV_INTC=y +CONFIG_SIFIVE_PLIC=y +# CONFIG_EXYNOS_IRQ_COMBINER is not set +# CONFIG_MST_IRQ is not set +# CONFIG_MCHP_EIC is not set +# CONFIG_SUNPLUS_SP7021_INTC is not set +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_A10SR is not set +# CONFIG_RESET_ATH79 is not set +# CONFIG_RESET_AXS10X is not set +# CONFIG_RESET_BCM6345 is not set +# CONFIG_RESET_BERLIN is not set +# CONFIG_RESET_BRCMSTB is not set +# CONFIG_RESET_BRCMSTB_RESCAL is not set +# CONFIG_RESET_HSDK is not set +# CONFIG_RESET_IMX7 is not set +# CONFIG_RESET_INTEL_GW is not set +# CONFIG_RESET_K210 is not set +# CONFIG_RESET_LANTIQ is not set +# CONFIG_RESET_LPC18XX is not set +# CONFIG_RESET_MCHP_SPARX5 is not set +# CONFIG_RESET_MESON is not set +# CONFIG_RESET_MESON_AUDIO_ARB is not set +# CONFIG_RESET_NPCM is not set +# CONFIG_RESET_NUVOTON_MA35D1 is not set +# CONFIG_RESET_PISTACHIO is not set +# CONFIG_RESET_QCOM_AOSS is not set +# CONFIG_RESET_QCOM_PDC is not set +CONFIG_RESET_RASPBERRYPI=y +# CONFIG_RESET_RZG2L_USBPHY_CTRL is not set +# CONFIG_RESET_SCMI is not set +# CONFIG_RESET_SIMPLE is not set +# CONFIG_RESET_SOCFPGA is not set +# CONFIG_RESET_SUNPLUS is not set +# CONFIG_RESET_SUNXI is not set +# CONFIG_RESET_TI_SCI is not set +# CONFIG_RESET_TI_SYSCON is not set +# CONFIG_RESET_TI_TPS380X is not set +# CONFIG_RESET_TN48M_CPLD is not set +# CONFIG_RESET_UNIPHIER is not set +# CONFIG_RESET_UNIPHIER_GLUE is not set +# CONFIG_RESET_ZYNQ is not set +CONFIG_RESET_STARFIVE_JH71X0=y +CONFIG_RESET_STARFIVE_JH7100=y +CONFIG_RESET_STARFIVE_JH7110=y +# CONFIG_COMMON_RESET_HI3660 is not set +# CONFIG_COMMON_RESET_HI6220 is not set + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PHY_MIPI_DPHY=y +# CONFIG_PHY_LPC18XX_USB_OTG is not set +# CONFIG_PHY_PISTACHIO_USB is not set +# CONFIG_PHY_XGENE is not set +# CONFIG_USB_LGM_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set +# CONFIG_PHY_SUN6I_MIPI_DPHY is not set +# CONFIG_PHY_SUN9I_USB is not set +# CONFIG_PHY_SUN50I_USB3 is not set +# CONFIG_PHY_MESON8_HDMI_TX is not set +# CONFIG_PHY_MESON8B_USB2 is not set +# CONFIG_PHY_MESON_GXL_USB2 is not set +# CONFIG_PHY_MESON_G12A_MIPI_DPHY_ANALOG is not set +# CONFIG_PHY_MESON_G12A_USB2 is not set +# CONFIG_PHY_MESON_G12A_USB3_PCIE is not set +# CONFIG_PHY_MESON_AXG_PCIE is not set +# CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG is not set +# CONFIG_PHY_MESON_AXG_MIPI_DPHY is not set + +# +# PHY drivers for Broadcom platforms +# +# CONFIG_PHY_BCM63XX_USBH is not set +# CONFIG_PHY_CYGNUS_PCIE is not set +# CONFIG_PHY_BCM_SR_USB is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_BCM_NS_USB2 is not set +# CONFIG_PHY_BCM_NS_USB3 is not set +# CONFIG_PHY_NS2_PCIE is not set +# CONFIG_PHY_NS2_USB_DRD is not set +# CONFIG_PHY_BRCM_SATA is not set +# CONFIG_PHY_BRCM_USB is not set +# CONFIG_PHY_BCM_SR_PCIE is not set +# end of PHY drivers for Broadcom platforms + +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_DPHY_RX is not set +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_CADENCE_SALVO is not set +# CONFIG_PHY_FSL_IMX8MQ_USB is not set +# CONFIG_PHY_MIXEL_LVDS_PHY is not set +# CONFIG_PHY_MIXEL_MIPI_DPHY is not set +# CONFIG_PHY_FSL_IMX8M_PCIE is not set +# CONFIG_PHY_FSL_LYNX_28G is not set +# CONFIG_PHY_HI6220_USB is not set +# CONFIG_PHY_HI3660_USB is not set +# CONFIG_PHY_HI3670_USB is not set +# CONFIG_PHY_HI3670_PCIE is not set +# CONFIG_PHY_HISTB_COMBPHY is not set +# CONFIG_PHY_HISI_INNO_USB2 is not set +# CONFIG_PHY_INGENIC_USB is not set +# CONFIG_PHY_LANTIQ_VRX200_PCIE is not set +# CONFIG_PHY_LANTIQ_RCU_USB2 is not set +# CONFIG_ARMADA375_USBCLUSTER_PHY is not set +# CONFIG_PHY_BERLIN_SATA is not set +# CONFIG_PHY_BERLIN_USB is not set +CONFIG_PHY_MVEBU_A3700_UTMI=y +# CONFIG_PHY_MVEBU_A38X_COMPHY is not set +# CONFIG_PHY_MVEBU_CP110_UTMI is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_PXA_USB is not set +# CONFIG_PHY_MMP3_USB is not set +# CONFIG_PHY_MMP3_HSIC is not set +# CONFIG_PHY_MTK_PCIE is not set +# CONFIG_PHY_MTK_TPHY is not set +# CONFIG_PHY_MTK_UFS is not set +# CONFIG_PHY_MTK_XSPHY is not set +# CONFIG_PHY_MTK_HDMI is not set +# CONFIG_PHY_MTK_MIPI_DSI is not set +# CONFIG_PHY_MTK_DP is not set +# CONFIG_PHY_SPARX5_SERDES is not set +# CONFIG_PHY_LAN966X_SERDES is not set +# CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set +# CONFIG_PHY_OCELOT_SERDES is not set +# CONFIG_PHY_ATH79_USB is not set +# CONFIG_PHY_QCOM_EDP is not set +# CONFIG_PHY_QCOM_IPQ4019_USB is not set +# CONFIG_PHY_QCOM_PCIE2 is not set +# CONFIG_PHY_QCOM_QMP is not set +# CONFIG_PHY_QCOM_QUSB2 is not set +# CONFIG_PHY_QCOM_SNPS_EUSB2 is not set +# CONFIG_PHY_QCOM_EUSB2_REPEATER is not set +# CONFIG_PHY_QCOM_M31_USB is not set +# CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set +# CONFIG_PHY_QCOM_USB_HS_28NM is not set +# CONFIG_PHY_QCOM_USB_SS is not set +# CONFIG_PHY_QCOM_IPQ806X_USB is not set +# CONFIG_PHY_QCOM_SGMII_ETH is not set +# CONFIG_PHY_MT7621_PCI is not set +# CONFIG_PHY_RALINK_USB is not set +# CONFIG_PHY_R8A779F0_ETHERNET_SERDES is not set +# CONFIG_PHY_RCAR_GEN3_USB3 is not set +# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set +# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set +# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set +# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set +# CONFIG_PHY_ROCKCHIP_PCIE is not set +# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set +# CONFIG_PHY_ROCKCHIP_TYPEC is not set +# CONFIG_PHY_EXYNOS_DP_VIDEO is not set +# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set +# CONFIG_PHY_EXYNOS_PCIE is not set +# CONFIG_PHY_SAMSUNG_UFS is not set +# CONFIG_PHY_SAMSUNG_USB2 is not set +# CONFIG_PHY_UNIPHIER_USB2 is not set +# CONFIG_PHY_UNIPHIER_USB3 is not set +# CONFIG_PHY_UNIPHIER_PCIE is not set +# CONFIG_PHY_UNIPHIER_AHCI is not set +# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set +# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set +# CONFIG_PHY_STIH407_USB is not set +# CONFIG_PHY_STM32_USBPHYC is not set +# CONFIG_PHY_STARFIVE_JH7110_DPHY_RX is not set +CONFIG_PHY_STARFIVE_JH7110_PCIE=y +CONFIG_PHY_STARFIVE_JH7110_USB=y +# CONFIG_PHY_SUNPLUS_USB is not set +# CONFIG_PHY_TEGRA194_P2U is not set +# CONFIG_PHY_DA8XX_USB is not set +# CONFIG_PHY_DM816X_USB is not set +# CONFIG_PHY_AM654_SERDES is not set +# CONFIG_PHY_J721E_WIZ is not set +# CONFIG_OMAP_CONTROL_PHY is not set +# CONFIG_TI_PIPE3 is not set +# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set +# CONFIG_PHY_INTEL_KEEMBAY_USB is not set +# CONFIG_PHY_INTEL_LGM_COMBO is not set +# CONFIG_PHY_INTEL_LGM_EMMC is not set +# CONFIG_PHY_XILINX_ZYNQMP is not set +CONFIG_PHY_M31_DPHY_RX0=y +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# CONFIG_ARM_CCN is not set +# CONFIG_ARM_CMN is not set +CONFIG_RISCV_PMU=y +CONFIG_RISCV_PMU_LEGACY=y +CONFIG_RISCV_PMU_SBI=y +# CONFIG_ARM_SMMU_V3_PMU is not set +# CONFIG_FSL_IMX8_DDR_PMU is not set +# CONFIG_XGENE_PMU is not set +# CONFIG_ARM_DMC620_PMU is not set +# CONFIG_MARVELL_CN10K_TAD_PMU is not set +# CONFIG_ALIBABA_UNCORE_DRW_PMU is not set +# CONFIG_HNS3_PMU is not set +# CONFIG_MARVELL_CN10K_DDR_PMU is not set +# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set +# CONFIG_MESON_DDR_PMU is not set +CONFIG_SIFIVE_U74_L2_PMU=y +# end of Performance monitor support + +CONFIG_RAS=y +# CONFIG_USB4 is not set + +# +# Android +# +# CONFIG_ANDROID_BINDER_IPC is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y + +# +# Layout Types +# +# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set +# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set +# end of Layout Types + +# CONFIG_NVMEM_APPLE_EFUSES is not set +# CONFIG_NVMEM_BCM_OCOTP is not set +# CONFIG_NVMEM_BRCM_NVRAM is not set +# CONFIG_NVMEM_IMX_IIM is not set +# CONFIG_NVMEM_IMX_OCOTP is not set +# CONFIG_NVMEM_IMX_OCOTP_ELE is not set +# CONFIG_NVMEM_JZ4780_EFUSE is not set +# CONFIG_NVMEM_LAN9662_OTPC is not set +# CONFIG_NVMEM_LAYERSCAPE_SFP is not set +# CONFIG_NVMEM_LPC18XX_EEPROM is not set +# CONFIG_NVMEM_LPC18XX_OTP is not set +# CONFIG_NVMEM_MESON_MX_EFUSE is not set +# CONFIG_NVMEM_MICROCHIP_OTPC is not set +# CONFIG_NVMEM_MTK_EFUSE is not set +# CONFIG_NVMEM_MXS_OCOTP is not set +# CONFIG_NVMEM_NINTENDO_OTP is not set +# CONFIG_NVMEM_QCOM_QFPROM is not set +# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set +# CONFIG_NVMEM_RMEM is not set +# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set +# CONFIG_NVMEM_ROCKCHIP_OTP is not set +# CONFIG_NVMEM_SC27XX_EFUSE is not set +# CONFIG_NVMEM_SNVS_LPGPR is not set +# CONFIG_NVMEM_SPRD_EFUSE is not set +# CONFIG_NVMEM_STM32_ROMEM is not set +# CONFIG_NVMEM_SUNPLUS_OCOTP is not set +# CONFIG_NVMEM_U_BOOT_ENV is not set +# CONFIG_NVMEM_UNIPHIER_EFUSE is not set +# CONFIG_NVMEM_VF610_OCOTP is not set +# CONFIG_NVMEM_QORIQ_EFUSE is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# CONFIG_HISI_PTT is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_FSI is not set +# CONFIG_TEE is not set +CONFIG_PM_OPP=y +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_MOST is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set +CONFIG_E24=m +# end of Device Drivers + +# +# File systems +# +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +CONFIG_BUFFER_HEAD=y +CONFIG_LEGACY_DIRECT_IO=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +CONFIG_AUTOFS_FS=y +CONFIG_FUSE_FS=y +CONFIG_CUSE=y +CONFIG_VIRTIO_FS=y +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +CONFIG_NETFS_SUPPORT=y +CONFIG_NETFS_STATS=y +CONFIG_FSCACHE=y +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_CACHEFILES is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_UTF8=y +CONFIG_EXFAT_FS=y +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y +# CONFIG_NTFS3_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +# CONFIG_TMPFS_QUOTA is not set +CONFIG_ARCH_SUPPORTS_HUGETLBFS=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=m +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_PNFS_FILE_LAYOUT=y +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_FLEXFILE_LAYOUT=y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +# CONFIG_NFS_V4_1_MIGRATION is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFS_DISABLE_UDP_SUPPORT=y +CONFIG_NFS_V4_2_READ_PLUS=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_V4_2_SSC_HELPER=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG is not set +CONFIG_CIFS_DFS_UPCALL=y +# CONFIG_CIFS_SWN_UPCALL is not set +CONFIG_CIFS_FSCACHE=y +CONFIG_SMB_SERVER=m +CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y +# CONFIG_SMB_SERVER_KERBEROS5 is not set +CONFIG_SMBFS=m +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_9P_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=m +CONFIG_NLS_UCS2_UTILS=m +# CONFIG_DLM is not set +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_KEYS_REQUEST_CACHE is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_TRUSTED_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set +# end of Memory initialization + +# +# Hardening of kernel data structures +# +CONFIG_LIST_HARDENED=y +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Hardening of kernel data structures + +# CONFIG_RANDSTRUCT_NONE is not set +CONFIG_RANDSTRUCT_FULL=y +# CONFIG_RANDSTRUCT_PERFORMANCE is not set +CONFIG_RANDSTRUCT=y +CONFIG_GCC_PLUGIN_RANDSTRUCT=y +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_ENGINE=y +# end of Crypto core or helper + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_ECC=y +CONFIG_CRYPTO_ECDH=y +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +# end of Public-key cryptography + +# +# Block ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_ARIA is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set +# end of Block ciphers + +# +# Length-preserving ciphers and modes +# +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CFB is not set +CONFIG_CRYPTO_CTR=y +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_HCTR2 is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# end of Length-preserving ciphers and modes + +# +# AEAD (authenticated encryption with associated data) ciphers +# +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=y +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_ESSIV is not set +# end of AEAD (authenticated encryption with associated data) ciphers + +# +# Hashes, digests, and MACs +# +CONFIG_CRYPTO_BLAKE2B=m +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=y +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_SHA1 is not set +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA3=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_GENERIC=y +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_VMAC is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_XCBC is not set +CONFIG_CRYPTO_XXHASH=m +# end of Hashes, digests, and MACs + +# +# CRCs (cyclic redundancy checks) +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# end of CRCs (cyclic redundancy checks) + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set +# end of Compression + +# +# Random number generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set +# end of Random number generation + +# +# Userspace interface +# +CONFIG_CRYPTO_USER_API=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_USER_API_RNG=y +# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set +CONFIG_CRYPTO_USER_API_AEAD=y +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y +# CONFIG_CRYPTO_STATS is not set +# end of Userspace interface + +CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_ALLWINNER is not set +# CONFIG_CRYPTO_DEV_SL3516 is not set +# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set +# CONFIG_CRYPTO_DEV_S5P is not set +# CONFIG_CRYPTO_DEV_ATMEL_AES is not set +# CONFIG_CRYPTO_DEV_ATMEL_TDES is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA is not set +# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set +# CONFIG_CAVIUM_CPT is not set +# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set +# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set +# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4 is not set +# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_ECC is not set +# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set +# CONFIG_CRYPTO_DEV_QAT_C62X is not set +# CONFIG_CRYPTO_DEV_QAT_4XXX is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set +# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set +# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set +# CONFIG_CRYPTO_DEV_QCE is not set +# CONFIG_CRYPTO_DEV_QCOM_RNG is not set +# CONFIG_CRYPTO_DEV_IMGTEC_HASH is not set +# CONFIG_CRYPTO_DEV_ZYNQMP_AES is not set +# CONFIG_CRYPTO_DEV_ZYNQMP_SHA3 is not set +CONFIG_CRYPTO_DEV_VIRTIO=y +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +# CONFIG_CRYPTO_DEV_CCREE is not set +# CONFIG_CRYPTO_DEV_HISI_SEC is not set +# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set +# CONFIG_CRYPTO_DEV_SA2UL is not set +# CONFIG_CRYPTO_DEV_ASPEED is not set +CONFIG_CRYPTO_DEV_JH7110=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_RAID6_PQ_BENCHMARK=y +CONFIG_LINEAR_RANGES=y +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=y +CONFIG_CRYPTO_LIB_GF128MUL=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_DES=m +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA1=y +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC64_ROCKSOFT is not set +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +CONFIG_CRC7=y +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_COMPRESS=m +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +# CONFIG_XZ_DEC_MICROLZMA is not set +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=y +CONFIG_TEXTSEARCH_BM=y +CONFIG_TEXTSEARCH_FSM=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=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_PREP_COHERENT=y +CONFIG_ARCH_DMA_DEFAULT_COHERENT=y +CONFIG_SWIOTLB=y +# CONFIG_SWIOTLB_DYNAMIC is not set +CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y +# CONFIG_DMA_RESTRICTED_POOL is not set +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_COHERENT_POOL=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +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_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +# CONFIG_IRQ_POLL is not set +CONFIG_MPILIB=y +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_SBITMAP=y +# CONFIG_PARMAN is not set +# CONFIG_OBJAGG is not set +# end of Library routines + +CONFIG_GENERIC_IOREMAP=y +CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_DEBUG_CORE is not set +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO_NONE=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_DWARF5 is not set +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_VMLINUX_MAP is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_KCSAN_COMPILER=y +# end of Generic Kernel Debugging Instruments + +# +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set +# end of Networking Debugging + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SHRINKER_DEBUG is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_WQ_WATCHDOG=y +# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +# end of Scheduler Debugging + +CONFIG_DEBUG_TIMEKEEPING=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_SPINLOCK=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +CONFIG_DEBUG_RWSEMS=y +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_PLIST=y +CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_MAPLE_TREE is not set +# end of Debug kernel data structures + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +# CONFIG_RCU_CPU_STALL_CPUTIME is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_EQS_DEBUG=y +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_RETHOOK=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_SAMPLES is not set +# CONFIG_STRICT_DEVMEM is not set + +# +# riscv Debugging +# +# end of riscv Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_ARCH_USE_MEMTEST=y +CONFIG_MEMTEST=y +# end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking +# end of Kernel hacking + +# +# Documentation +# +# CONFIG_WARN_MISSING_DOCUMENTS is not set +# CONFIG_WARN_ABI_ERRORS is not set +# end of Documentation diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index fffafa86d964e..fca920729f857 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -369,8 +370,8 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, if (status == DMA_COMPLETE || !txstate) return status; - spin_lock_irqsave(&chan->vc.lock, flags); - + // spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc,flags); vdesc = vchan_find_desc(&chan->vc, cookie); if (vdesc) { length = vd_to_axi_desc(vdesc)->length; @@ -380,7 +381,8 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, bytes = length - completed_length; } - spin_unlock_irqrestore(&chan->vc.lock, flags); + // spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc,flags); dma_set_residue(txstate, bytes); return status; @@ -480,6 +482,11 @@ static void axi_chan_block_xfer_start(struct axi_dma_chan *chan, axi_chan_enable(chan); } +static inline bool dw_axi_dma_oob_capable(void) +{ + return IS_ENABLED(CONFIG_DW_AXI_DMAC_OOB); +} + static void axi_chan_start_first_queued(struct axi_dma_chan *chan) { struct axi_dma_desc *desc; @@ -492,7 +499,11 @@ static void axi_chan_start_first_queued(struct axi_dma_chan *chan) desc = vd_to_axi_desc(vd); dev_vdbg(chan2dev(chan), "%s: started %u\n", axi_chan_name(chan), vd->tx.cookie); - axi_chan_block_xfer_start(chan, desc); + // axi_chan_block_xfer_start(chan, desc); + //filter the desc:ib context OR non-oob desc + if(!dw_axi_dma_oob_capable() || !vchan_oob_pulsed(vd)) + axi_chan_block_xfer_start(chan, desc); + } static void dma_chan_issue_pending(struct dma_chan *dchan) @@ -500,12 +511,37 @@ static void dma_chan_issue_pending(struct dma_chan *dchan) struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); unsigned long flags; - spin_lock_irqsave(&chan->vc.lock, flags); + // spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc,flags); if (vchan_issue_pending(&chan->vc)) axi_chan_start_first_queued(chan); - spin_unlock_irqrestore(&chan->vc.lock, flags); + // spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc,flags); } +#ifdef CONFIG_DW_AXI_DMAC_OOB +static int dw_axi_dma_pulse_oob(struct dma_chan *dchan) +{ + struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + unsigned long flags; + int ret = -EIO; + + vchan_lock_irqsave(&chan->vc, flags); + if (chan->desc && vchan_oob_pulsed(&chan->desc->vd)) { + axi_chan_block_xfer_start(chan,chan->desc); + ret = 0; + } + vchan_unlock_irqrestore(&chan->vc, flags); + + return ret; +} +#else +static int dw_axi_dma_pulse_oob(struct dma_chan *dchan) +{ + return -ENOTSUPP; +} +#endif + static void dw_axi_dma_synchronize(struct dma_chan *dchan) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); @@ -779,6 +815,22 @@ dw_axi_dma_chan_prep_cyclic(struct dma_chan *dchan, dma_addr_t dma_addr, u64 llp = 0; u8 lms = 0; /* Select AXI0 master for LLI fetching */ + //check flags + if(!dw_axi_dma_oob_capable()) { + if (flags & DMA_OOB_INTERRUPT) { + dev_err(dchan2dev(dchan), + "%s: out-of-band cyclic transfers disabled\n", + __func__); + return NULL; + } + } else if(flags & DMA_OOB_PULSE) { + dev_err(dchan2dev(dchan), + "%s: no pulse mode with out-of-band cyclic transfers\n", + __func__); + return NULL; + } + + num_periods = buf_len / period_len; axi_block_len = calculate_block_len(chan, dma_addr, buf_len, direction); @@ -857,6 +909,15 @@ dw_axi_dma_chan_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, u64 llp = 0; u8 lms = 0; /* Select AXI0 master for LLI fetching */ + if(!dw_axi_dma_oob_capable()) { + if(flags & (DMA_OOB_INTERRUPT|DMA_OOB_PULSE)) { + dev_err(dchan2dev(dchan), + "%s: out-of-band slave transfers disabled\n", + __func__); + return NULL; + } + } + if (unlikely(!is_slave_direction(direction) || !sg_len)) return NULL; @@ -1063,8 +1124,8 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) struct virt_dma_desc *vd; unsigned long flags; - spin_lock_irqsave(&chan->vc.lock, flags); - + // spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc, flags); axi_chan_disable(chan); /* The bad descriptor currently is in the head of vc list */ @@ -1089,7 +1150,8 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) axi_chan_start_first_queued(chan); out: - spin_unlock_irqrestore(&chan->vc.lock, flags); + // spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc, flags); } static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) @@ -1102,7 +1164,8 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) u64 llp; int i; - spin_lock_irqsave(&chan->vc.lock, flags); + // spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc, flags); if (unlikely(axi_chan_is_hw_enable(chan))) { dev_err(chan2dev(chan), "BUG: %s caught DWAXIDMAC_IRQ_DMA_TRF, but channel not idle!\n", axi_chan_name(chan)); @@ -1143,7 +1206,8 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) } out: - spin_unlock_irqrestore(&chan->vc.lock, flags); + // spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc, flags); } static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) @@ -1200,13 +1264,13 @@ static int dma_chan_terminate_all(struct dma_chan *dchan) if (chan->direction == DMA_MEM_TO_DEV) dw_axi_dma_set_byte_halfword(chan, false); - spin_lock_irqsave(&chan->vc.lock, flags); - + // spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc, flags); vchan_get_all_descriptors(&chan->vc, &head); chan->cyclic = false; - spin_unlock_irqrestore(&chan->vc.lock, flags); - + // spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc, flags); vchan_dma_desc_free_list(&chan->vc, &head); dev_vdbg(dchan2dev(dchan), "terminated: %s\n", axi_chan_name(chan)); @@ -1532,6 +1596,7 @@ static int dw_probe(struct platform_device *pdev) return ret; INIT_LIST_HEAD(&dw->dma.channels); + dma_cap_set(DMA_OOB,dw->dma.cap_mask); for (i = 0; i < hdata->nr_channels; i++) { struct axi_dma_chan *chan = &dw->chan[i]; @@ -1572,6 +1637,7 @@ static int dw_probe(struct platform_device *pdev) dw->dma.device_config = dw_axi_dma_chan_slave_config; dw->dma.device_prep_slave_sg = dw_axi_dma_chan_prep_slave_sg; dw->dma.device_prep_dma_cyclic = dw_axi_dma_chan_prep_cyclic; + dw->dma.device_pulse_oob = dw_axi_dma_pulse_oob; /* * Synopsis DesignWare AxiDMA datasheet mentioned Maximum From cf86c9b1ecb299fe5f4dff7878d7b014b3f95c29 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 3 Sep 2025 23:21:19 -0700 Subject: [PATCH 04/25] git fix:enable kconfig DW_AXI_DMAC_OOB,replace all lock api in driver to do ib dma operation successfully --- drivers/dma/Kconfig | 7 +++++++ .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 19 ++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index d9ec1e69e4283..3fe638afc98f7 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -190,6 +190,13 @@ config DW_AXI_DMAC NOTE: This driver wasn't tested on 64 bit platform because of lack 64 bit platform with Synopsys DW AXI DMAC. +config DW_AXI_DMAC_OOB + bool "Out-of-band support for DW AXI DMA" + depends on DW_AXI_DMAC && DOVETAIL + select DMA_VIRTUAL_CHANNELS_OOB + help + Enable out-of-band requests to DW AXI DMA. + config EP93XX_DMA bool "Cirrus Logic EP93xx DMA support" depends on ARCH_EP93XX || COMPILE_TEST diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index fca920729f857..2cdc9ce65af3f 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -370,7 +370,6 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, if (status == DMA_COMPLETE || !txstate) return status; - // spin_lock_irqsave(&chan->vc.lock, flags); vchan_lock_irqsave(&chan->vc,flags); vdesc = vchan_find_desc(&chan->vc, cookie); if (vdesc) { @@ -381,7 +380,6 @@ dma_chan_tx_status(struct dma_chan *dchan, dma_cookie_t cookie, bytes = length - completed_length; } - // spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_unlock_irqrestore(&chan->vc,flags); dma_set_residue(txstate, bytes); @@ -511,11 +509,9 @@ static void dma_chan_issue_pending(struct dma_chan *dchan) struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); unsigned long flags; - // spin_lock_irqsave(&chan->vc.lock, flags); vchan_lock_irqsave(&chan->vc,flags); if (vchan_issue_pending(&chan->vc)) axi_chan_start_first_queued(chan); - // spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_unlock_irqrestore(&chan->vc,flags); } @@ -1124,7 +1120,6 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) struct virt_dma_desc *vd; unsigned long flags; - // spin_lock_irqsave(&chan->vc.lock, flags); vchan_lock_irqsave(&chan->vc, flags); axi_chan_disable(chan); @@ -1150,7 +1145,6 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) axi_chan_start_first_queued(chan); out: - // spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_unlock_irqrestore(&chan->vc, flags); } @@ -1164,7 +1158,6 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) u64 llp; int i; - // spin_lock_irqsave(&chan->vc.lock, flags); vchan_lock_irqsave(&chan->vc, flags); if (unlikely(axi_chan_is_hw_enable(chan))) { dev_err(chan2dev(chan), "BUG: %s caught DWAXIDMAC_IRQ_DMA_TRF, but channel not idle!\n", @@ -1206,7 +1199,6 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) } out: - // spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_unlock_irqrestore(&chan->vc, flags); } @@ -1264,12 +1256,10 @@ static int dma_chan_terminate_all(struct dma_chan *dchan) if (chan->direction == DMA_MEM_TO_DEV) dw_axi_dma_set_byte_halfword(chan, false); - // spin_lock_irqsave(&chan->vc.lock, flags); vchan_lock_irqsave(&chan->vc, flags); vchan_get_all_descriptors(&chan->vc, &head); chan->cyclic = false; - // spin_unlock_irqrestore(&chan->vc.lock, flags); vchan_unlock_irqrestore(&chan->vc, flags); vchan_dma_desc_free_list(&chan->vc, &head); @@ -1285,7 +1275,7 @@ static int dma_chan_pause(struct dma_chan *dchan) unsigned int timeout = 20; /* timeout iterations */ u64 val; - spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc, flags); if (chan->chip->dw->hdata->nr_channels >= DMAC_CHAN_16) { val = axi_dma_ioread64(chan->chip, DMAC_CHSUSPREG); @@ -1324,8 +1314,7 @@ static int dma_chan_pause(struct dma_chan *dchan) chan->is_paused = true; - spin_unlock_irqrestore(&chan->vc.lock, flags); - + vchan_unlock_irqrestore(&chan->vc, flags); return timeout ? 0 : -EAGAIN; } @@ -1368,12 +1357,12 @@ static int dma_chan_resume(struct dma_chan *dchan) struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); unsigned long flags; - spin_lock_irqsave(&chan->vc.lock, flags); + vchan_lock_irqsave(&chan->vc,flags); if (chan->is_paused) axi_chan_resume(chan); - spin_unlock_irqrestore(&chan->vc.lock, flags); + vchan_unlock_irqrestore(&chan->vc,flags); return 0; } From f7a6be7b6e878497238700edd4792cd63a243a09 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Thu, 4 Sep 2025 00:04:44 -0700 Subject: [PATCH 05/25] feat:enable oob irq forward,the ib dma operation still success --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 60 +++++++++++++++---- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 2cdc9ce65af3f..800bb0725b0f5 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1148,7 +1148,7 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) vchan_unlock_irqrestore(&chan->vc, flags); } -static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) +static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) { int count = atomic_read(&chan->descs_allocated); struct axi_dma_hw_desc *hw_desc; @@ -1157,8 +1157,35 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) unsigned long flags; u64 llp; int i; + struct dmaengine_desc_callback cb; + bool ret = true; vchan_lock_irqsave(&chan->vc, flags); + + if(running_oob()) {//oob + if (unlikely(axi_chan_is_hw_enable(chan))) { + ret = false;//caught bug,no operation in oob,forward to inband + } + vd = vchan_next_desc(&chan->vc); + if (!vd) { + ret = false; + goto out;//caught bug,no operation in oob,forward to inband + } + if(!vchan_oob_handled(vd)) { + ret = false; + goto out; + } + dmaengine_desc_get_callback(&vd->tx,&cb);//get callback + if(dmaengine_desc_callback_valid(&cb)) { + vchan_unlock_irqrestore(&chan->vc, flags); + dmaengine_desc_callback_invoke(&cb,NULL); + vchan_lock_irqsave(&chan->vc, flags); + } + ret = true; + goto out; + } + + //ib:we don't care about ret in ib context,for we won't forward the irq again if (unlikely(axi_chan_is_hw_enable(chan))) { dev_err(chan2dev(chan), "BUG: %s caught DWAXIDMAC_IRQ_DMA_TRF, but channel not idle!\n", axi_chan_name(chan)); @@ -1200,6 +1227,7 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan) out: vchan_unlock_irqrestore(&chan->vc, flags); + return ret; } static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) @@ -1209,6 +1237,7 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) struct axi_dma_chan *chan; u32 status, i; + irqreturn_t ret = IRQ_HANDLED; /* Disable DMAC interrupts. We'll enable them after processing channels */ axi_dma_irq_disable(chip); @@ -1219,19 +1248,26 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) status = axi_chan_irq_read(chan); axi_chan_irq_clear(chan, status); - dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", - axi_chan_name(chan), i, status); - - if (status & DWAXIDMAC_IRQ_ALL_ERR) - axi_chan_handle_err(chan, status); - else if (status & DWAXIDMAC_IRQ_DMA_TRF) - axi_chan_block_xfer_complete(chan); + if(dw_axi_dma_oob_capable() && running_oob()) { + if(status & DWAXIDMAC_IRQ_ALL_ERR) { + ret = IRQ_FORWARD; + } else if(status & DWAXIDMAC_IRQ_DMA_TRF) { + if(!axi_chan_block_xfer_complete(chan)) + ret = IRQ_FORWARD; + } + } else { + dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", + axi_chan_name(chan), i, status); + if (status & DWAXIDMAC_IRQ_ALL_ERR) + axi_chan_handle_err(chan, status); + else if (status & DWAXIDMAC_IRQ_DMA_TRF) + axi_chan_block_xfer_complete(chan); + } } /* Re-enable interrupts */ axi_dma_irq_enable(chip); - - return IRQ_HANDLED; + return ret; } static int dma_chan_terminate_all(struct dma_chan *dchan) @@ -1666,7 +1702,9 @@ static int dw_probe(struct platform_device *pdev) dev_info(chip->dev, "DesignWare AXI DMA Controller, %d channels\n", dw->hdata->nr_channels); - + if(dw_axi_dma_oob_capable()) { + dev_info(chip->dev,"this driver is oob capable"); + } return 0; err_pm_disable: From b9968846dc9a2c013acca768e6fbf90500cae4e4 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sat, 6 Sep 2025 06:08:52 -0700 Subject: [PATCH 06/25] test:add spi loop back test script --- user_scripts/spi_test/Makefile | 16 ++++++ user_scripts/spi_test/spi_loopback | Bin 0 -> 8928 bytes user_scripts/spi_test/spi_loopback.c | 71 +++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 user_scripts/spi_test/Makefile create mode 100755 user_scripts/spi_test/spi_loopback create mode 100644 user_scripts/spi_test/spi_loopback.c diff --git a/user_scripts/spi_test/Makefile b/user_scripts/spi_test/Makefile new file mode 100644 index 0000000000000..03d26d4927dda --- /dev/null +++ b/user_scripts/spi_test/Makefile @@ -0,0 +1,16 @@ +# 交叉编译工具链前缀 +CROSS_COMPILE = riscv64-linux-gnu- +CC = $(CROSS_COMPILE)gcc + +# the exec finally generated +TARGET = spi_loopback +# source code +SRC = spi_loopback.c + +all: $(TARGET) + +$(TARGET): $(SRC) + $(CC) -Wall -O2 -o $@ $^ + +clean: + rm -f $(TARGET) diff --git a/user_scripts/spi_test/spi_loopback b/user_scripts/spi_test/spi_loopback new file mode 100755 index 0000000000000000000000000000000000000000..90f8ebbc4b26c44978ddc8c025006f27dc86f4cc GIT binary patch literal 8928 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 +#include +#include +#include +#include +#include +#include +#include +#include + +int main() { + //open char device + const char *device = "/dev/spidev1.0"; + int fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + return 1; + } + + // setting mode,bit width,frequency + uint8_t mode = SPI_MODE_0; + if (ioctl(fd, SPI_IOC_WR_MODE, &mode) == -1) { + perror("SPI_IOC_WR_MODE"); + close(fd); + return 1; + } + + uint8_t bits = 8; + if (ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits) == -1) { + perror("SPI_IOC_WR_BITS_PER_WORD"); + close(fd); + return 1; + } + + uint32_t speed = 399193; // 399 kHz + if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed) == -1) { + perror("SPI_IOC_WR_MAX_SPEED_HZ"); + close(fd); + return 1; + } + + // prepare data + uint8_t tx[5] = { 'h', 'e', 'l', 'l', 'o' }; + uint8_t rx[5] = {0}; + + struct spi_ioc_transfer tr = { + .tx_buf = (unsigned long)tx, + .rx_buf = (unsigned long)rx, + .len = sizeof(tx), + .speed_hz = speed, + .bits_per_word = bits, + .delay_usecs = 0, + }; + + // trigger send and recv + if (ioctl(fd, SPI_IOC_MESSAGE(1), &tr) < 1) { + perror("SPI_IOC_MESSAGE"); + close(fd); + return 1; + } + + // 打印接收到的数据 + printf("Received: "); + for (int i = 0; i < sizeof(rx); i++) { + printf("%02x ", rx[i]); + } + printf("\n"); + + close(fd); + return 0; +} From 56d5ce896a451ceec2a7605b3462bcebe32359c6 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sat, 6 Sep 2025 06:13:38 -0700 Subject: [PATCH 07/25] test:merge all test scripts into tt comand --- user_scripts/testtool/Makefile | 16 ++++++++ user_scripts/testtool/tt | Bin 0 -> 9000 bytes user_scripts/testtool/tt.c | 69 +++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 user_scripts/testtool/Makefile create mode 100755 user_scripts/testtool/tt create mode 100644 user_scripts/testtool/tt.c diff --git a/user_scripts/testtool/Makefile b/user_scripts/testtool/Makefile new file mode 100644 index 0000000000000..29bdf1f437832 --- /dev/null +++ b/user_scripts/testtool/Makefile @@ -0,0 +1,16 @@ +# 交叉编译工具链前缀 +CROSS_COMPILE = riscv64-linux-gnu- +CC = $(CROSS_COMPILE)gcc + +# the exec finally generated +TARGET = tt +# source code +SRC = tt.c + +all: $(TARGET) + +$(TARGET): $(SRC) + $(CC) -Wall -O2 -o $@ $^ + +clean: + rm -f $(TARGET) diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt new file mode 100755 index 0000000000000000000000000000000000000000..df1a1f25d0c86b82942ca82dd7357055308a0d2b GIT binary patch literal 9000 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 literal 0 HcmV?d00001 diff --git a/user_scripts/testtool/tt.c b/user_scripts/testtool/tt.c new file mode 100644 index 0000000000000..3d7e4988b6c83 --- /dev/null +++ b/user_scripts/testtool/tt.c @@ -0,0 +1,69 @@ +#include +#include +#include +#include +#include +#include +#include + +// 这里定义与驱动中一致的 ioctl 命令 +// 假设驱动里是 _IO('M', 1) +// #define MY_IOCTL_CMD _IO('M', 1) + +enum Command { + CMD_UNKNOWN, + CMD_MEMCPY_IB_TEST, + CMD_SPILOOP_IB_TEST, + CMD_SPILOOP_OOB_TEST +}; + +enum Command parse_command(const char *arg) { + if (strcmp(arg, "memib") == 0) return CMD_MEMCPY_IB_TEST; + if (strcmp(arg, "spiib") == 0) return CMD_SPILOOP_IB_TEST; + if (strcmp(arg, "spioob") == 0) return CMD_SPILOOP_OOB_TEST; + return CMD_UNKNOWN; +} + +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) + +int main(int argc, char *argv[]) +{ + const char *dev = "/dev/user_dma"; + int fd; + int value; + + fd = open(dev, O_RDWR); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + + printf("Opened device %s successfully.\n", dev); + + switch (parse_command(argv[1])) { + case CMD_MEMCPY_IB_TEST: { + int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("inband memcpy executed success\n"); + printf("Got value from kernel: %d\n", value); + break; + } + case CMD_SPILOOP_IB_TEST: { + break; + } + + case CMD_SPILOOP_OOB_TEST: { + break; + } + + default: + printf("Unknown command: %s\n", argv[1]); + } + + close(fd); + return 0; +} From 0c80c29d7a740cad8ff44fc26d5c6cc02c7cc283 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 10 Sep 2025 04:57:06 -0700 Subject: [PATCH 08/25] chore:clean up debug code for future development --- user_scripts/testtool/tt | Bin 9000 -> 13232 bytes user_scripts/testtool/tt.c | 141 ++++++++++++++++++++++++++++++------- 2 files changed, 115 insertions(+), 26 deletions(-) diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index df1a1f25d0c86b82942ca82dd7357055308a0d2b..0358c2ba72f52daa1205394c40a3ad559be9b25a 100755 GIT binary patch literal 13232 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 F{{XthFuDK$ literal 9000 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 diff --git a/user_scripts/testtool/tt.c b/user_scripts/testtool/tt.c index 3d7e4988b6c83..7b670bdd0e646 100644 --- a/user_scripts/testtool/tt.c +++ b/user_scripts/testtool/tt.c @@ -5,6 +5,9 @@ #include #include #include +#include +#include +#include // 这里定义与驱动中一致的 ioctl 命令 // 假设驱动里是 _IO('M', 1) @@ -12,21 +15,19 @@ enum Command { CMD_UNKNOWN, - CMD_MEMCPY_IB_TEST, - CMD_SPILOOP_IB_TEST, - CMD_SPILOOP_OOB_TEST + CMD_DW_MEMCPY_IB_TEST,//test inband memcpy by dw-axi-dmac + CMD_SPILOOP_TEST //test dma by PL08 using spi loopback }; enum Command parse_command(const char *arg) { - if (strcmp(arg, "memib") == 0) return CMD_MEMCPY_IB_TEST; - if (strcmp(arg, "spiib") == 0) return CMD_SPILOOP_IB_TEST; - if (strcmp(arg, "spioob") == 0) return CMD_SPILOOP_OOB_TEST; + if (strcmp(arg, "dw_mem_ib") == 0) return CMD_DW_MEMCPY_IB_TEST; + if (strcmp(arg, "spi") == 0) return CMD_SPILOOP_TEST; return CMD_UNKNOWN; } -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) -int main(int argc, char *argv[]) +int do_dw_memcpy_ib_test(void) { const char *dev = "/dev/user_dma"; int fd; @@ -37,33 +38,121 @@ int main(int argc, char *argv[]) perror("open"); return EXIT_FAILURE; } + int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("inband memcpy executed finish\n"); + if(value==0) { + printf("inband memcpy success!\n"); + } else { + printf("inband memcpy error!\n"); + } + close(fd); + return 0; +} - printf("Opened device %s successfully.\n", dev); +int do_spi_loop_test(void) +{ + bool test_success = true; - switch (parse_command(argv[1])) { - case CMD_MEMCPY_IB_TEST: { - int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); - if (ret < 0) { - perror("ioctl"); - close(fd); - return EXIT_FAILURE; - } - printf("inband memcpy executed success\n"); - printf("Got value from kernel: %d\n", value); + //open char device + const char *device = "/dev/spidev1.0"; + int fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + return 1; + } + + // setting mode,bit width,frequency + uint8_t mode = SPI_MODE_0; + if (ioctl(fd, SPI_IOC_WR_MODE, &mode) == -1) { + perror("SPI_IOC_WR_MODE"); + close(fd); + return 1; + } + + uint8_t bits = 8; + if (ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits) == -1) { + perror("SPI_IOC_WR_BITS_PER_WORD"); + close(fd); + return 1; + } + + uint32_t speed = 399193; // 399 kHz + if (ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed) == -1) { + perror("SPI_IOC_WR_MAX_SPEED_HZ"); + close(fd); + return 1; + } + + // prepare data + uint8_t tx[1024] = {0}; + uint8_t rx[1024] = {0}; + int num = 0; + for(int i=0;i<1024;i++) + { + tx[i] = (unsigned char)(0xff & num); + num++; + } + memset(rx,0,1024); + + struct spi_ioc_transfer tr = { + .tx_buf = (unsigned long)tx, + .rx_buf = (unsigned long)rx, + .len = sizeof(tx), + .speed_hz = speed, + .bits_per_word = bits, + .delay_usecs = 0, + }; + + // trigger send and recv + if (ioctl(fd, SPI_IOC_MESSAGE(1), &tr) < 1) { + perror("SPI_IOC_MESSAGE"); + close(fd); + return 1; + } + + // ckeck data + for(int i=0;i<1024;i++) + { + if(tx[i]!=rx[i]) + { + test_success = false; break; } - case CMD_SPILOOP_IB_TEST: { - break; + } + + if(test_success) + { + printf("spi loopback success!\n"); + } + else + { + printf("spi loopback error!\n"); + } + + close(fd); + return 0; +} +int main(int argc, char *argv[]) +{ + int ret = 0; + + switch (parse_command(argv[1])) { + case CMD_DW_MEMCPY_IB_TEST: { + ret = do_dw_memcpy_ib_test(); + break; } - - case CMD_SPILOOP_OOB_TEST: { + case CMD_SPILOOP_TEST: { + ret = do_spi_loop_test(); break; } - default: printf("Unknown command: %s\n", argv[1]); } - close(fd); - return 0; + return ret; } From 9c84e69e0d5168cff38e25f27f9f01f37d994ee0 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 10 Sep 2025 05:04:11 -0700 Subject: [PATCH 09/25] refactor:remove useless logics in user_dma --- my_driver/user_dma.c | 146 ++++++++++++++++++++++++++----------------- 1 file changed, 89 insertions(+), 57 deletions(-) diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index 1a2b0aa6e2a53..68974f3a0d224 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -9,21 +9,18 @@ #include #include #include +#include +#include +#include +#include #include - +#include +#include #define DEVICE_NAME "user_dma" #define BUF_LEN 4096 -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac -//char device -static dev_t dev_num; -static struct cdev user_dma_cdev; -static struct class *user_dma_class; -//dma channel -static struct dma_chan *dma_chan; -dma_cap_mask_t mask; -//transfer info struct transfer_config { //bus addr that dmac can use dma_addr_t dma_buf_src; @@ -32,14 +29,33 @@ struct transfer_config { void *buf_src; void *buf_des; }; + +//transfer info static struct transfer_config trans_config; -// -struct completion cmp; -// 完成中断回调 -static void dma_complete_func(void *completion) +//char device +static dev_t dev_num; +static struct cdev user_dma_cdev; +static struct class *user_dma_class; +//dma channel +static struct dma_chan *dma_chan_tx; +static struct dma_chan *dma_chan_rx; +dma_cap_mask_t mask; + +//complete +struct completion cmp_tx; +struct completion cmp_rx; + +static void dma_complete_func_tx(void *completion) { complete(completion); - pr_info("\ndma complete callback is called\n"); + pr_info("\ndma tx complete callback is called\n"); + return; +} + +static void dma_complete_func_rx(void *completion) +{ + complete(completion); + pr_info("\ndma rx complete callback is called\n"); return; } @@ -50,6 +66,7 @@ static void fill_source_buffer(void) for(int i=0;icallback = dma_complete_func; - tx->callback_param = &cmp; + tx->callback = dma_complete_func_tx; + tx->callback_param = &cmp_tx; pr_info("\ndma prepare comp\n"); //submit - cookie = dmaengine_submit(tx); + cookie_tx = dmaengine_submit(tx); pr_info("\ndma submit comp\n"); //issue pending - dma_async_issue_pending(dma_chan); + dma_async_issue_pending(dma_chan_tx); pr_info("\ndma issue pending comp\n"); //wait for dma to comp pr_info("\nwait for dma to comp\n"); - wait_for_completion(&cmp); + wait_for_completion(&cmp_tx); pr_info("\nwait finish\n"); //check the pattern in dest buffer output = (check_dest_buffer())?(0):(1); @@ -109,21 +128,6 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar return -ENOTTY; return 0; } - - - - // tx = dmaengine_prep_dma_memcpy(dma_chan, xfer.dst, xfer.src, xfer.len, DMA_PREP_INTERRUPT); - // if (!tx) - // return -EIO; - - // tx->callback = dma_complete_func; - // tx->callback_param = &cmp; - - // cookie = dmaengine_submit(tx); - // dma_async_issue_pending(dma_chan); - - // // 等待完成 - // wait_for_completion(&cmp); return 0; } @@ -131,26 +135,33 @@ static int user_dma_open(struct inode *inode, struct file *file) { pr_info("\nuser_dma opened\n"); //print the channel info here - if (!dma_chan) + if (!dma_chan_tx ||!dma_chan_rx) { pr_err("\nDMA channel not initialized\n"); return -ENODEV; } - pr_info("\nDMA channel info: name=%s id=%d\n", - dma_chan_name(dma_chan), - dma_chan->chan_id); + pr_info("\nDMA tx channel info: name=%s id=%d\n", + dma_chan_name(dma_chan_tx), + dma_chan_tx->chan_id); + pr_info("\nDMA rx channel info: name=%s id=%d\n", + dma_chan_name(dma_chan_rx), + dma_chan_rx->chan_id); + //use dma_alloc_coherent to allocate memory that dmac can reach //better use the dev of the dmac to get buffer //when using the dev of this driver,error will occur - trans_config.buf_src = dma_alloc_coherent(dma_chan->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); - trans_config.buf_des = dma_alloc_coherent(dma_chan->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); + trans_config.buf_src = dma_alloc_coherent(dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); + trans_config.buf_des = dma_alloc_coherent(dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); if(!trans_config.buf_src && !trans_config.buf_des) { pr_err("\nDMAC reachable buffer not initialized\n"); return -ENODEV; } pr_info("\nallocate DMAC reachable buffer success\n"); + memset(trans_config.buf_src,0,BUF_LEN); + memset(trans_config.buf_des,0,BUF_LEN); + return 0; } @@ -185,33 +196,57 @@ static bool my_dma_filter(struct dma_chan *chan, void *param) return strcmp(node_name, target_name) == 0; } -static int __init user_dma_init(void) -{ - int ret; +static bool prep_dma_chans(void) +{ dma_cap_zero(mask); dma_cap_set(DMA_MEMCPY, mask); pr_info("start to request for dma channel\n"); // request for dma channels - dma_chan = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); + dma_chan_tx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); + dma_chan_rx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); pr_info("end to request for dma channel\n"); - if (IS_ERR(dma_chan)) { + if (IS_ERR(dma_chan_tx) || IS_ERR(dma_chan_rx)) { pr_err("Failed to request DMA channel\n"); - return PTR_ERR(dma_chan); + return false; } else { - if(dma_chan && dma_chan->device && dma_chan->device->dev) { - pr_info("Got channel: %s\n", dma_chan_name(dma_chan)); + if(dma_chan_tx && dma_chan_rx && dma_chan_tx->device && dma_chan_tx->device->dev) { + pr_info("Got tx channel: %s\n", dma_chan_name(dma_chan_tx)); + pr_info("Got rx channel: %s\n", dma_chan_name(dma_chan_rx)); } else { pr_info("Got channel, but device not ready yet\n"); } } + return true; +} + +static void release_dma_chans(void) +{ + //release dma buffer + dma_free_coherent(dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); + dma_free_coherent(dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); + + dma_release_channel(dma_chan_tx); + dma_release_channel(dma_chan_rx); + return; +} + +static int __init user_dma_init(void) +{ + int ret; + + if(!prep_dma_chans()) { + pr_err("fetch spi fail\n"); + } + // register char device ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); if (ret < 0) { pr_err("Failed to alloc chrdev\n"); - dma_release_channel(dma_chan); + dma_release_channel(dma_chan_tx); + dma_release_channel(dma_chan_rx); return ret; } @@ -227,9 +262,7 @@ static int __init user_dma_init(void) static void __exit user_dma_exit(void) { - //release dma buffer - dma_free_coherent(dma_chan->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); - dma_free_coherent(dma_chan->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); + release_dma_chans(); device_destroy(user_dma_class, dev_num); class_destroy(user_dma_class); @@ -237,7 +270,6 @@ static void __exit user_dma_exit(void) cdev_del(&user_dma_cdev); unregister_chrdev_region(dev_num, 1); - dma_release_channel(dma_chan); pr_info("user_dma module unloaded\n"); } From 5ca2e1299249e6f6ef5203eab2045869e87e32fc Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 10 Sep 2025 22:01:50 -0700 Subject: [PATCH 10/25] feat:replace lock apis in driver from spin_lock to vchan_lock,the inband dma operation by spi is successful --- drivers/dma/amba-pl08x.c | 57 +++++++++++++++++++++++++--------------- drivers/spi/spi-pl022.c | 10 ++++--- 2 files changed, 43 insertions(+), 24 deletions(-) diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c index 38cdbca59485c..c39901d0fed2b 100644 --- a/drivers/dma/amba-pl08x.c +++ b/drivers/dma/amba-pl08x.c @@ -940,12 +940,14 @@ static void pl08x_phy_free(struct pl08x_dma_chan *plchan) * Eww. We know this isn't going to deadlock * but lockdep probably doesn't. */ - spin_lock(&next->vc.lock); + // spin_lock(&next->vc.lock); + vchan_lock(&next->vc); /* Re-check the state now that we have the lock */ success = next->state == PL08X_CHAN_WAITING; if (success) pl08x_phy_reassign_start(plchan->phychan, next); - spin_unlock(&next->vc.lock); + // spin_unlock(&next->vc.lock); + vchan_unlock(&next->vc); /* If the state changed, try to find another channel */ if (!success) @@ -1563,7 +1565,8 @@ static enum dma_status pl08x_dma_tx_status(struct dma_chan *chan, return ret; } - spin_lock_irqsave(&plchan->vc.lock, flags); + // spin_lock_irqsave(&plchan->vc.lock, flags); + vchan_lock_irqsave(&plchan->vc,flags); ret = dma_cookie_status(chan, cookie, txstate); if (ret != DMA_COMPLETE) { vd = vchan_find_desc(&plchan->vc, cookie); @@ -1578,8 +1581,8 @@ static enum dma_status pl08x_dma_tx_status(struct dma_chan *chan, bytes = pl08x_getbytes_chan(plchan); } } - spin_unlock_irqrestore(&plchan->vc.lock, flags); - + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); /* * This cookie not complete yet * Get number of bytes left in the active transactions and queue @@ -1733,12 +1736,14 @@ static void pl08x_issue_pending(struct dma_chan *chan) struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); unsigned long flags; - spin_lock_irqsave(&plchan->vc.lock, flags); + // spin_lock_irqsave(&plchan->vc.lock, flags); + vchan_lock_irqsave(&plchan->vc,flags); if (vchan_issue_pending(&plchan->vc)) { if (!plchan->phychan && plchan->state != PL08X_CHAN_WAITING) pl08x_phy_alloc_and_start(plchan); } - spin_unlock_irqrestore(&plchan->vc.lock, flags); + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); } static struct pl08x_txd *pl08x_get_txd(struct pl08x_dma_chan *plchan) @@ -2155,9 +2160,11 @@ static int pl08x_terminate_all(struct dma_chan *chan) struct pl08x_driver_data *pl08x = plchan->host; unsigned long flags; - spin_lock_irqsave(&plchan->vc.lock, flags); + // spin_lock_irqsave(&plchan->vc.lock, flags); + vchan_lock_irqsave(&plchan->vc,flags); if (!plchan->phychan && !plchan->at) { - spin_unlock_irqrestore(&plchan->vc.lock, flags); + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } @@ -2178,8 +2185,8 @@ static int pl08x_terminate_all(struct dma_chan *chan) /* Dequeue jobs not yet fired as well */ pl08x_free_txd_list(pl08x, plchan); - spin_unlock_irqrestore(&plchan->vc.lock, flags); - + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } @@ -2199,16 +2206,19 @@ static int pl08x_pause(struct dma_chan *chan) * Anything succeeds on channels with no physical allocation and * no queued transfers. */ - spin_lock_irqsave(&plchan->vc.lock, flags); + // spin_lock_irqsave(&plchan->vc.lock, flags); + vchan_lock_irqsave(&plchan->vc,flags); if (!plchan->phychan && !plchan->at) { - spin_unlock_irqrestore(&plchan->vc.lock, flags); + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } pl08x_pause_phy_chan(plchan->phychan); plchan->state = PL08X_CHAN_PAUSED; - spin_unlock_irqrestore(&plchan->vc.lock, flags); + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } @@ -2222,17 +2232,19 @@ static int pl08x_resume(struct dma_chan *chan) * Anything succeeds on channels with no physical allocation and * no queued transfers. */ - spin_lock_irqsave(&plchan->vc.lock, flags); + // spin_lock_irqsave(&plchan->vc.lock, flags); + vchan_lock_irqsave(&plchan->vc,flags); if (!plchan->phychan && !plchan->at) { - spin_unlock_irqrestore(&plchan->vc.lock, flags); + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } pl08x_resume_phy_chan(plchan->phychan); plchan->state = PL08X_CHAN_RUNNING; - spin_unlock_irqrestore(&plchan->vc.lock, flags); - + // spin_unlock_irqrestore(&plchan->vc.lock, flags); + vchan_unlock_irqrestore(&plchan->vc,flags); return 0; } @@ -2314,7 +2326,8 @@ static irqreturn_t pl08x_irq(int irq, void *dev) continue; } - spin_lock(&plchan->vc.lock); + // spin_lock(&plchan->vc.lock); + vchan_lock(&plchan->vc); tx = plchan->at; if (tx && tx->cyclic) { vchan_cyclic_callback(&tx->vd); @@ -2337,7 +2350,8 @@ static irqreturn_t pl08x_irq(int irq, void *dev) else pl08x_phy_free(plchan); } - spin_unlock(&plchan->vc.lock); + // spin_unlock(&plchan->vc.lock); + vchan_unlock(&plchan->vc); mask |= BIT(i); } @@ -2952,7 +2966,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id) dev_info(&pl08x->adev->dev, "DMA: PL%03x%s rev%u at 0x%08llx irq %d\n", amba_part(adev), pl08x->vd->pl080s ? "s" : "", amba_rev(adev), (unsigned long long)adev->res.start, adev->irq[0]); - + + dev_info(&pl08x->adev->dev, "probe modify success\n"); return 0; out_no_slave_reg: diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index de63cf0557cec..89cd06a732e22 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -1246,7 +1246,7 @@ static int do_interrupt_dma_transfer(struct pl022 *pl022) * this will be enabled once TX is complete */ u32 irqflags = (u32)(ENABLE_ALL_INTERRUPTS & ~SSP_IMSC_MASK_RXIM); - + dev_info(&pl022->adev->dev,"do_interrupt_dma_transfere \n"); ret = set_up_next_transfer(pl022, pl022->cur_transfer); if (ret) return ret; @@ -1685,7 +1685,9 @@ static int pl022_setup(struct spi_device *spi) pl022->tx_lev_trig = chip_info->tx_lev_trig; /* Now set controller state based on controller data */ - chip->xfer_type = chip_info->com_mode; + // chip->xfer_type = chip_info->com_mode; + chip->xfer_type = DMA_TRANSFER; + dev_info(&spi->dev,"com_mode set to DMA_TRANSFER\n"); /* Check bits per word with vendor specific range */ if ((bits <= 3) || (bits > pl022->vendor->max_bpw)) { @@ -1950,8 +1952,10 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) } /* If that failed, use channels from platform_info */ - if (status == 0) + if (status == 0) { platform_info->enable_dma = 1; + dev_info(dev, "dma auto probe success\n"); + } else if (platform_info->enable_dma) { status = pl022_dma_probe(pl022); if (status != 0) From 18c834818a49d9b242c884fcc7e2b874b37efe37 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Thu, 11 Sep 2025 02:38:40 -0700 Subject: [PATCH 11/25] refactor:specify dma channel can be from dw-axi-dmac and pl08 --- my_driver/user_dma.c | 120 ++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 65 deletions(-) diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index 68974f3a0d224..43dfc1a8f5399 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -37,13 +37,10 @@ static dev_t dev_num; static struct cdev user_dma_cdev; static struct class *user_dma_class; //dma channel -static struct dma_chan *dma_chan_tx; -static struct dma_chan *dma_chan_rx; -dma_cap_mask_t mask; +static struct dma_chan *dw_dma_chan_tx;//memcpy test //complete struct completion cmp_tx; -struct completion cmp_rx; static void dma_complete_func_tx(void *completion) { @@ -52,13 +49,6 @@ static void dma_complete_func_tx(void *completion) return; } -static void dma_complete_func_rx(void *completion) -{ - complete(completion); - pr_info("\ndma rx complete callback is called\n"); - return; -} - static void fill_source_buffer(void) { int num = 0; @@ -85,42 +75,46 @@ static bool check_dest_buffer(void) return true; } -static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +static int do_dw_dmac_ib_memcpy_test(void) { - // struct dma_transfer xfer; struct dma_async_tx_descriptor *tx; dma_cookie_t cookie_tx; + + fill_source_buffer();//fill pattern in source buffer + memset(trans_config.buf_des,0,BUF_LEN); + init_completion(&cmp_tx); + //prepare + tx = dmaengine_prep_dma_memcpy(dw_dma_chan_tx, + trans_config.dma_buf_src , + trans_config.dma_buf_des , + BUF_LEN, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT + ); + tx->callback = dma_complete_func_tx; + tx->callback_param = &cmp_tx; + pr_info("\ndma prepare comp\n"); + //submit + cookie_tx = dmaengine_submit(tx); + pr_info("\ndma submit comp\n"); + //issue pending + dma_async_issue_pending(dw_dma_chan_tx); + pr_info("\ndma issue pending comp\n"); + //wait for dma to comp + pr_info("\nwait for dma to comp\n"); + wait_for_completion(&cmp_tx); + pr_info("\nwait finish\n"); + //check the pattern in dest buffer + return (check_dest_buffer())?(0):(1); +} + +static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ int output; - switch (cmd) { - case USER_DMA_IOCTL_IB_TEST: - fill_source_buffer();//fill pattern in source buffer - memset(trans_config.buf_des,0,BUF_LEN); - init_completion(&cmp_tx); - //prepare - tx = dmaengine_prep_dma_memcpy(dma_chan_tx, - trans_config.dma_buf_src , - trans_config.dma_buf_des , - BUF_LEN, - DMA_CTRL_ACK | DMA_PREP_INTERRUPT - ); - tx->callback = dma_complete_func_tx; - tx->callback_param = &cmp_tx; - pr_info("\ndma prepare comp\n"); - //submit - cookie_tx = dmaengine_submit(tx); - pr_info("\ndma submit comp\n"); - //issue pending - dma_async_issue_pending(dma_chan_tx); - pr_info("\ndma issue pending comp\n"); - //wait for dma to comp - pr_info("\nwait for dma to comp\n"); - wait_for_completion(&cmp_tx); - pr_info("\nwait finish\n"); - //check the pattern in dest buffer - output = (check_dest_buffer())?(0):(1); + case USER_DMA_IOCTL_IB_TEST: + output = do_dw_dmac_ib_memcpy_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; @@ -135,24 +129,20 @@ static int user_dma_open(struct inode *inode, struct file *file) { pr_info("\nuser_dma opened\n"); //print the channel info here - if (!dma_chan_tx ||!dma_chan_rx) + if (!dw_dma_chan_tx) { - pr_err("\nDMA channel not initialized\n"); + pr_err("\nDW DMA channel not initialized\n"); return -ENODEV; } - pr_info("\nDMA tx channel info: name=%s id=%d\n", - dma_chan_name(dma_chan_tx), - dma_chan_tx->chan_id); - - pr_info("\nDMA rx channel info: name=%s id=%d\n", - dma_chan_name(dma_chan_rx), - dma_chan_rx->chan_id); + pr_info("\nDW DMA tx channel info: name=%s id=%d\n", + dma_chan_name(dw_dma_chan_tx), + dw_dma_chan_tx->chan_id); //use dma_alloc_coherent to allocate memory that dmac can reach //better use the dev of the dmac to get buffer //when using the dev of this driver,error will occur - trans_config.buf_src = dma_alloc_coherent(dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); - trans_config.buf_des = dma_alloc_coherent(dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); + trans_config.buf_src = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); + trans_config.buf_des = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); if(!trans_config.buf_src && !trans_config.buf_des) { pr_err("\nDMAC reachable buffer not initialized\n"); @@ -199,22 +189,24 @@ static bool my_dma_filter(struct dma_chan *chan, void *param) static bool prep_dma_chans(void) { + dma_cap_mask_t mask; dma_cap_zero(mask); dma_cap_set(DMA_MEMCPY, mask); - pr_info("start to request for dma channel\n"); - // request for dma channels - dma_chan_tx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); - dma_chan_rx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); + pr_info("start to request for dw axi dma channel\n"); + // request for dw dma channels + dw_dma_chan_tx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); + + pr_info("end to request for dma channel\n"); - if (IS_ERR(dma_chan_tx) || IS_ERR(dma_chan_rx)) { + if (IS_ERR(dw_dma_chan_tx)) { pr_err("Failed to request DMA channel\n"); return false; } else { - if(dma_chan_tx && dma_chan_rx && dma_chan_tx->device && dma_chan_tx->device->dev) { - pr_info("Got tx channel: %s\n", dma_chan_name(dma_chan_tx)); - pr_info("Got rx channel: %s\n", dma_chan_name(dma_chan_rx)); + if(dw_dma_chan_tx && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) { + pr_info("Got dw tx channel: %s\n", dma_chan_name(dw_dma_chan_tx)); + } else { pr_info("Got channel, but device not ready yet\n"); } @@ -225,11 +217,10 @@ static bool prep_dma_chans(void) static void release_dma_chans(void) { //release dma buffer - dma_free_coherent(dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); - dma_free_coherent(dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); + dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); + dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); - dma_release_channel(dma_chan_tx); - dma_release_channel(dma_chan_rx); + dma_release_channel(dw_dma_chan_tx); return; } @@ -245,8 +236,7 @@ static int __init user_dma_init(void) ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); if (ret < 0) { pr_err("Failed to alloc chrdev\n"); - dma_release_channel(dma_chan_tx); - dma_release_channel(dma_chan_rx); + dma_release_channel(dw_dma_chan_tx); return ret; } From d41b9fbb3e6f28aac342f088c540de14673669d4 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sun, 14 Sep 2025 05:18:16 -0700 Subject: [PATCH 12/25] feat:mimic the operation of spi and dac drivers:successfully use dma to send data to dac device.The spi path is still not working for now. --- drivers/dma/amba-pl08x.c | 153 +++++-- drivers/spi/spi-pl022.c | 144 +++++- my_driver/update.sh | 3 + my_driver/user_dma.c | 837 +++++++++++++++++++++++++++++++++-- user_scripts/testtool/tt | Bin 13232 -> 13280 bytes user_scripts/testtool/tt.c | 40 +- user_scripts/testtool/update | 2 + 7 files changed, 1104 insertions(+), 75 deletions(-) create mode 100755 my_driver/update.sh create mode 100755 user_scripts/testtool/update diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c index c39901d0fed2b..dcfd548f9cb96 100644 --- a/drivers/dma/amba-pl08x.c +++ b/drivers/dma/amba-pl08x.c @@ -851,6 +851,13 @@ static inline void pl08x_put_phy_channel(struct pl08x_driver_data *pl08x, ch->serving = NULL; } +static inline bool pl08_dma_oob_capable(void) +{ + // return IS_ENABLED(CONFIG_PL08_DMAC_OOB); + //Kconfig is not modified for now + return true; +} + /* * Try to allocate a physical channel. When successful, assign it to * this virtual channel, and initiate the next descriptor. The @@ -860,6 +867,7 @@ static void pl08x_phy_alloc_and_start(struct pl08x_dma_chan *plchan) { struct pl08x_driver_data *pl08x = plchan->host; struct pl08x_phy_chan *ch; + struct virt_dma_desc *vd; ch = pl08x_get_phy_channel(pl08x, plchan); if (!ch) { @@ -874,7 +882,10 @@ static void pl08x_phy_alloc_and_start(struct pl08x_dma_chan *plchan) plchan->phychan = ch; plchan->state = PL08X_CHAN_RUNNING; - pl08x_start_next_txd(plchan); + vd = vchan_next_desc(&plchan->vc); + // pl08x_start_next_txd(plchan); + if(!pl08_dma_oob_capable() || !vchan_oob_pulsed(vd))//when oob is enable and desc is oob,desc is not triggered here + pl08x_start_next_txd(plchan); } static void pl08x_phy_reassign_start(struct pl08x_phy_chan *ch, @@ -1746,6 +1757,24 @@ static void pl08x_issue_pending(struct dma_chan *chan) vchan_unlock_irqrestore(&plchan->vc,flags); } +static int pl08x_dma_pulse_oob(struct dma_chan *chan) +{ + struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); + unsigned long flags; + struct virt_dma_desc *vd; + int ret = -EIO; + + vchan_lock_irqsave(&plchan->vc, flags); + vd = vchan_next_desc(&plchan->vc); + if (vd!=NULL && vchan_oob_pulsed(vd)) { + pl08x_start_next_txd(plchan); + ret = 0; + } + vchan_unlock_irqrestore(&plchan->vc, flags); + + return ret; +} + static struct pl08x_txd *pl08x_get_txd(struct pl08x_dma_chan *plchan) { struct pl08x_txd *txd = kzalloc(sizeof(*txd), GFP_NOWAIT); @@ -2055,6 +2084,14 @@ static struct dma_async_tx_descriptor *pl08x_prep_slave_sg( int ret, tmp; dma_addr_t slave_addr; + if(!pl08_dma_oob_capable()) { + if(flags & (DMA_OOB_INTERRUPT|DMA_OOB_PULSE)) { + dev_err(&pl08x->adev->dev, + "%s: out-of-band slave transfers disabled\n", + __func__); + return NULL; + } + } dev_dbg(&pl08x->adev->dev, "%s prepare transaction of %d bytes from %s\n", __func__, sg_dma_len(sgl), plchan->name); @@ -2096,6 +2133,20 @@ static struct dma_async_tx_descriptor *pl08x_prep_dma_cyclic( int ret, tmp; dma_addr_t slave_addr; + //check flags + if(!pl08_dma_oob_capable()) { + if (flags & DMA_OOB_INTERRUPT) { + dev_err(&pl08x->adev->dev, + "%s: out-of-band cyclic transfers disabled\n", + __func__); + return NULL; + } + } else if(flags & DMA_OOB_PULSE) { + dev_err(&pl08x->adev->dev, + "%s: no pulse mode with out-of-band cyclic transfers\n", + __func__); + return NULL; + } dev_dbg(&pl08x->adev->dev, "%s prepare cyclic transaction of %zd/%zd bytes %s %s\n", __func__, period_len, buf_len, @@ -2293,20 +2344,60 @@ static void pl08x_ensure_on(struct pl08x_driver_data *pl08x) writel(PL080_CONFIG_ENABLE, pl08x->base + PL080_CONFIG); } +static bool do_channel(struct pl08x_txd *tx,struct pl08x_dma_chan *plchan) +{ + struct dmaengine_desc_callback cb; + //oob process + if(running_oob()){ + if(!vchan_oob_handled(&tx->vd)) + return false;//ib desc need to be forward + dmaengine_desc_get_callback(&tx->vd.tx,&cb); + if (dmaengine_desc_callback_valid(&cb)) { + vchan_unlock(&plchan->vc); + dmaengine_desc_callback_invoke(&cb, NULL); + vchan_lock(&plchan->vc); + } + return true; + } + //ib process + if (tx && tx->cyclic) { + vchan_cyclic_callback(&tx->vd); + } else if (tx) { + plchan->at = NULL; + /* + * This descriptor is done, release its mux + * reservation. + */ + pl08x_release_mux(plchan); + tx->done = true; + vchan_cookie_complete(&tx->vd); + + /* + * And start the next descriptor (if any), + * otherwise free this channel. + */ + if (vchan_next_desc(&plchan->vc)) + pl08x_start_next_txd(plchan); + else + pl08x_phy_free(plchan); + } + return true; +} + static irqreturn_t pl08x_irq(int irq, void *dev) { struct pl08x_driver_data *pl08x = dev; u32 mask = 0, err, tc, i; - + bool oob_need_forward = false; /* check & clear - ERR & TC interrupts */ err = readl(pl08x->base + PL080_ERR_STATUS); - if (err) { + if (err && !running_oob()) { dev_err(&pl08x->adev->dev, "%s error interrupt, register value 0x%08x\n", __func__, err); writel(err, pl08x->base + PL080_ERR_CLEAR); } tc = readl(pl08x->base + PL080_TC_STATUS); - if (tc) + if (tc && !running_oob()) writel(tc, pl08x->base + PL080_TC_CLEAR); if (!err && !tc) @@ -2318,46 +2409,47 @@ static irqreturn_t pl08x_irq(int irq, void *dev) struct pl08x_phy_chan *phychan = &pl08x->phy_chans[i]; struct pl08x_dma_chan *plchan = phychan->serving; struct pl08x_txd *tx; + //oob process if (!plchan) { - dev_err(&pl08x->adev->dev, + if(!running_oob()) { + dev_err(&pl08x->adev->dev, "%s Error TC interrupt on unused channel: 0x%08x\n", __func__, i); + } continue; } // spin_lock(&plchan->vc.lock); - vchan_lock(&plchan->vc); + vchan_lock(&plchan->vc); tx = plchan->at; - if (tx && tx->cyclic) { - vchan_cyclic_callback(&tx->vd); - } else if (tx) { - plchan->at = NULL; - /* - * This descriptor is done, release its mux - * reservation. - */ - pl08x_release_mux(plchan); - tx->done = true; - vchan_cookie_complete(&tx->vd); - /* - * And start the next descriptor (if any), - * otherwise free this channel. - */ - if (vchan_next_desc(&plchan->vc)) - pl08x_start_next_txd(plchan); - else - pl08x_phy_free(plchan); + if(pl08_dma_oob_capable() && running_oob()) { + if(!do_channel(tx,plchan)) { + oob_need_forward = true; + } else { + //oob process success,clear the corresponding tc and err bit + if((BIT(i) & err)) + writel(BIT(i), pl08x->base + PL080_ERR_CLEAR); + if((BIT(i) & tc)) + writel(BIT(i), pl08x->base + PL080_TC_CLEAR); + } + } else { + do_channel(tx,plchan); } // spin_unlock(&plchan->vc.lock); vchan_unlock(&plchan->vc); - - mask |= BIT(i); + if(!running_oob()) + mask |= BIT(i); } } - - return mask ? IRQ_HANDLED : IRQ_NONE; + //在oob阶段:遍历所有待处理通道,根据do_channel,只要有任意一个是带内的无法处理,那么就需要return forward;反之返回handled + //在ib阶段,有mask返回handled,无mask返回none + if(running_oob()) { + return oob_need_forward ? IRQ_FORWARD : IRQ_HANDLED; + } else { + return mask ? IRQ_HANDLED : IRQ_NONE; + } } static void pl08x_dma_slave_init(struct pl08x_dma_chan *chan) @@ -2796,6 +2888,7 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id) pl08x->slave.device_issue_pending = pl08x_issue_pending; pl08x->slave.device_prep_slave_sg = pl08x_prep_slave_sg; pl08x->slave.device_prep_dma_cyclic = pl08x_prep_dma_cyclic; + pl08x->slave.device_pulse_oob = pl08x_dma_pulse_oob; pl08x->slave.device_config = pl08x_config; pl08x->slave.device_pause = pl08x_pause; pl08x->slave.device_resume = pl08x_resume; @@ -2922,6 +3015,7 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id) } /* Register as many memcpy channels as there are physical channels */ + // dma_cap_set(DMA_OOB,pl08x->slave.cap_mask);//no oob for memcpy virt channels ret = pl08x_dma_init_virtual_channels(pl08x, &pl08x->memcpy, pl08x->vd->channels, false); if (ret <= 0) { @@ -2932,6 +3026,7 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id) } /* Register slave channels */ + dma_cap_set(DMA_OOB,pl08x->slave.cap_mask); if (pl08x->has_slave) { ret = pl08x_dma_init_virtual_channels(pl08x, &pl08x->slave, pl08x->pd->num_slave_channels, true); diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 89cd06a732e22..6f378bcc5171f 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -791,6 +791,37 @@ static void setup_dma_scatter(struct pl022 *pl022, BUG_ON(bytesleft); } + +static void print_spi_regs(void __iomem *spi_base_addr_virt) +{ + u32 read_cr0; + u16 read_cr1, read_dmacr, read_sr, read_cpsr ,read_imsc; + + read_cr0 = readw(SSP_CR0(spi_base_addr_virt)); + read_cr1 = readw(SSP_CR1(spi_base_addr_virt)); + read_dmacr = readw(SSP_DMACR(spi_base_addr_virt)); + read_sr = readw(SSP_SR(spi_base_addr_virt)); + read_cpsr = readw(SSP_CPSR(spi_base_addr_virt)); + read_imsc = readw(SSP_IMSC(spi_base_addr_virt)); + + pr_info("SPI CR0=0x%x\n",read_cr0); + + pr_info("SPI CR1=0x%x, SPI enable=%d\n", + read_cr1, + !!(read_cr1 & SSP_CR1_MASK_SSE)); + + pr_info("SPI SR=0x%x\n",read_sr); + + pr_info("SPI CPSR=0x%x\n",read_cpsr); + + pr_info("SPI IMSC=0x%x\n",read_imsc); + + pr_info("SPI DMACR=0x%x, SPI DMA rx dmaenable=%d, SPI DMA tx dmaenable=%d\n", + read_dmacr, + !!(read_dmacr & SSP_DMACR_MASK_RXDMAE), + !!(read_dmacr & SSP_DMACR_MASK_TXDMAE)); + return; +} /** * configure_dma - configures the channels for the next transfer * @pl022: SSP driver's private data structure @@ -819,6 +850,7 @@ static int configure_dma(struct pl022 *pl022) if (!rxchan || !txchan) return -ENODEV; + pr_info("c_dma:1\n"); /* * If supplied, the DMA burstsize should equal the FIFO trigger level. * Notice that the DMA engine uses one-to-one mapping. Since we can @@ -908,7 +940,7 @@ static int configure_dma(struct pl022 *pl022) dmaengine_slave_config(rxchan, &rx_conf); dmaengine_slave_config(txchan, &tx_conf); - + pr_info("c_dma:2\n"); /* Create sglists for the transfers */ pages = DIV_ROUND_UP(pl022->cur_transfer->len, PAGE_SIZE); dev_dbg(&pl022->adev->dev, "using %d pages for transfer\n", pages); @@ -920,7 +952,7 @@ static int configure_dma(struct pl022 *pl022) ret = sg_alloc_table(&pl022->sgt_tx, pages, GFP_ATOMIC); if (ret) goto err_alloc_tx_sg; - + pr_info("c_dma:3\n"); /* Fill in the scatterlists for the RX+TX buffers */ setup_dma_scatter(pl022, pl022->rx, pl022->cur_transfer->len, &pl022->sgt_rx); @@ -932,7 +964,7 @@ static int configure_dma(struct pl022 *pl022) pl022->sgt_rx.nents, DMA_FROM_DEVICE); if (!rx_sglen) goto err_rx_sgmap; - + pr_info("c_dma:4\n"); tx_sglen = dma_map_sg(txchan->device->dev, pl022->sgt_tx.sgl, pl022->sgt_tx.nents, DMA_TO_DEVICE); if (!tx_sglen) @@ -946,7 +978,7 @@ static int configure_dma(struct pl022 *pl022) DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!rxdesc) goto err_rxdesc; - + pr_info("c_dma:5\n"); txdesc = dmaengine_prep_slave_sg(txchan, pl022->sgt_tx.sgl, tx_sglen, @@ -954,7 +986,7 @@ static int configure_dma(struct pl022 *pl022) DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!txdesc) goto err_txdesc; - + pr_info("c_dma:6\n"); /* Put the callback on the RX transfer only, that should finish last */ rxdesc->callback = dma_callback; rxdesc->callback_param = pl022; @@ -965,6 +997,8 @@ static int configure_dma(struct pl022 *pl022) dma_async_issue_pending(rxchan); dma_async_issue_pending(txchan); pl022->dma_running = true; + pr_info("after issuepending\n"); + print_spi_regs(pl022->virtbase); return 0; @@ -984,6 +1018,72 @@ static int configure_dma(struct pl022 *pl022) err_alloc_rx_sg: return -ENOMEM; } +//filter dmac by device name,target for dw-axi-dmac +static bool my_dma_filter(struct dma_chan *chan, void *param) +{ + if (!chan || !chan->device) + return false; + + struct device *dev = chan->device->dev; + const char *target_name = param; + + if (!dev || !dev->of_node) + return false; + + const char *node_name = of_node_full_name(dev->of_node); + if (!node_name) { + return false; + } + + return strcmp(node_name, target_name) == 0; +} +static int pl022_dma_probe_debug(struct pl022 *pl022) +{ + dma_cap_mask_t mask; + + /* Try to acquire a generic DMA engine slave channel */ + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + /* + * We need both RX and TX channels to do DMA, else do none + * of them. + */ + pl022->dma_rx_channel = dma_request_channel(mask, + my_dma_filter, + "dma-controller@16008000"); + if (!pl022->dma_rx_channel) { + dev_info(&pl022->adev->dev, "no RX DMA channel!\n"); + goto err_no_rxchan; + } + + pl022->dma_tx_channel = dma_request_channel(mask, + my_dma_filter, + "dma-controller@16008000"); + if (!pl022->dma_tx_channel) { + dev_info(&pl022->adev->dev, "no TX DMA channel!\n"); + goto err_no_txchan; + } + + pl022->dummypage = kmalloc(PAGE_SIZE, GFP_KERNEL); + if (!pl022->dummypage) + goto err_no_dummypage; + + dev_info(&pl022->adev->dev, "setup for DMA on RX %s, TX %s\n", + dma_chan_name(pl022->dma_rx_channel), + dma_chan_name(pl022->dma_tx_channel)); + + return 0; + +err_no_dummypage: + dma_release_channel(pl022->dma_tx_channel); +err_no_txchan: + dma_release_channel(pl022->dma_rx_channel); + pl022->dma_rx_channel = NULL; +err_no_rxchan: + dev_err(&pl022->adev->dev, + "Failed to work in dma mode, work without dma!\n"); + return -ENODEV; +} static int pl022_dma_probe(struct pl022 *pl022) { @@ -1000,7 +1100,7 @@ static int pl022_dma_probe(struct pl022 *pl022) pl022->host_info->dma_filter, pl022->host_info->dma_rx_param); if (!pl022->dma_rx_channel) { - dev_dbg(&pl022->adev->dev, "no RX DMA channel!\n"); + dev_info(&pl022->adev->dev, "no RX DMA channel!\n"); goto err_no_rxchan; } @@ -1008,7 +1108,7 @@ static int pl022_dma_probe(struct pl022 *pl022) pl022->host_info->dma_filter, pl022->host_info->dma_tx_param); if (!pl022->dma_tx_channel) { - dev_dbg(&pl022->adev->dev, "no TX DMA channel!\n"); + dev_info(&pl022->adev->dev, "no TX DMA channel!\n"); goto err_no_txchan; } @@ -1250,10 +1350,13 @@ static int do_interrupt_dma_transfer(struct pl022 *pl022) ret = set_up_next_transfer(pl022, pl022->cur_transfer); if (ret) return ret; - + pr_info("before configure\n"); + print_spi_regs(pl022->virtbase); + pl022->cur_chip->enable_dma = true; /* If we're using DMA, set up DMA here */ if (pl022->cur_chip->enable_dma) { /* Configure DMA transfer */ + pr_info("c_dma:0\n"); if (configure_dma(pl022)) { dev_dbg(&pl022->adev->dev, "configuration of DMA failed, fall back to interrupt mode\n"); @@ -1567,7 +1670,8 @@ static int calculate_effective_freq(struct pl022 *pl022, int freq, struct * supplies it. */ static const struct pl022_config_chip pl022_default_chip_info = { - .com_mode = INTERRUPT_TRANSFER, + // .com_mode = INTERRUPT_TRANSFER, + .com_mode = DMA_TRANSFER, .iface = SSP_INTERFACE_MOTOROLA_SPI, .hierarchy = SSP_MASTER, .slave_tx_disable = DO_NOT_DRIVE_TX, @@ -1618,9 +1722,9 @@ static int pl022_setup(struct spi_device *spi) /* Get controller data if one is supplied */ chip_info = spi->controller_data; - if (chip_info == NULL) { if (np) { + dev_info(&spi->dev,"using pl022_default_chip_info\n"); chip_info_dt = pl022_default_chip_info; chip_info_dt.hierarchy = SSP_MASTER; @@ -1643,11 +1747,11 @@ static int pl022_setup(struct spi_device *spi) } else { chip_info = &pl022_default_chip_info; /* spi_board_info.controller_data not is supplied */ - dev_dbg(&spi->dev, + dev_info(&spi->dev, "using default controller_data settings\n"); } } else - dev_dbg(&spi->dev, + dev_info(&spi->dev, "using user supplied controller_data settings\n"); /* @@ -1685,8 +1789,7 @@ static int pl022_setup(struct spi_device *spi) pl022->tx_lev_trig = chip_info->tx_lev_trig; /* Now set controller state based on controller data */ - // chip->xfer_type = chip_info->com_mode; - chip->xfer_type = DMA_TRANSFER; + chip->xfer_type = chip_info->com_mode; dev_info(&spi->dev,"com_mode set to DMA_TRANSFER\n"); /* Check bits per word with vendor specific range */ @@ -1721,14 +1824,14 @@ static int pl022_setup(struct spi_device *spi) if ((chip_info->com_mode == DMA_TRANSFER) && ((pl022->host_info)->enable_dma)) { chip->enable_dma = true; - dev_dbg(&spi->dev, "DMA mode set in controller state\n"); + dev_info(&spi->dev, "DMA mode set in controller state\n"); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_ENABLED, SSP_DMACR_MASK_RXDMAE, 0); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_ENABLED, SSP_DMACR_MASK_TXDMAE, 1); } else { chip->enable_dma = false; - dev_dbg(&spi->dev, "DMA mode NOT set in controller state\n"); + dev_info(&spi->dev, "DMA mode NOT set in controller state\n"); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_DISABLED, SSP_DMACR_MASK_RXDMAE, 0); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_DISABLED, @@ -1862,6 +1965,10 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) struct pl022 *pl022 = NULL; /*Data for this driver */ int status = 0; + if (id && id->data) + pr_info("Matched AMBA ID: 0x%08x, vendor_data pointer: %p\n", + id->id, id->data); + dev_info(&adev->dev, "ARM PL022 driver, device ID: 0x%08x\n", adev->periphid); if (!platform_info && IS_ENABLED(CONFIG_OF)) @@ -1882,6 +1989,7 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) pl022 = spi_controller_get_devdata(host); pl022->host = host; pl022->host_info = platform_info; + pl022->host_info->enable_dma = true; pl022->adev = adev; pl022->vendor = id->data; @@ -1957,9 +2065,11 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) dev_info(dev, "dma auto probe success\n"); } else if (platform_info->enable_dma) { - status = pl022_dma_probe(pl022); + status = pl022_dma_probe_debug(pl022); if (status != 0) platform_info->enable_dma = 0; + else + dev_info(dev, "dma probe success\n"); } /* Register with the SPI framework */ diff --git a/my_driver/update.sh b/my_driver/update.sh new file mode 100755 index 0000000000000..a4d70973e07f0 --- /dev/null +++ b/my_driver/update.sh @@ -0,0 +1,3 @@ +make && \ +md5sum user_dma.ko && \ +scp user_dma.ko root@192.168.138.2:/root diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index 43dfc1a8f5399..dbd3550553419 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -16,11 +16,503 @@ #include #include #include +#include +#include +#include +#include + + +extern unsigned long loops_per_jiffy; +//mocking PL022 spi driver + +#define GEN_MASK_BITS(val, mask, sb) \ + (((val)<<(sb)) & (mask)) + +/* + * Macros to access SSP Registers with their offsets + */ +#define SSP_CR0(r) (r + 0x000) +#define SSP_CR1(r) (r + 0x004) +#define SSP_DR(r) (r + 0x008) +#define SSP_SR(r) (r + 0x00C) +#define SSP_CPSR(r) (r + 0x010) +#define SSP_IMSC(r) (r + 0x014) +#define SSP_ICR(r) (r + 0x020) +#define SSP_DMACR(r) (r + 0x024) + +//spi control:masks and flag + +//cr0 +#define SSP_CR0_MASK_DSS (0x0FUL << 0) +#define SSP_CR0_MASK_FRF (0x3UL << 4) +#define SSP_CR0_MASK_SPO (0x1UL << 6) +#define SSP_CR0_MASK_SPH (0x1UL << 7) +#define SSP_CR0_MASK_SCR (0xFFUL << 8) + +//cr1 +#define SSP_CR1_MASK_LBM (0x1UL << 0) +#define SSP_CR1_MASK_SSE (0x1UL << 1) +#define SSP_CR1_MASK_MS (0x1UL << 2) +#define SSP_CR1_MASK_SOD (0x1UL << 3) + +#define SSP_DISABLED (0) +#define SSP_ENABLED (1) +#define DRIVE_TX 0 +#define DO_NOT_DRIVE_TX 1 + +//dmacr +#define SSP_DMACR_MASK_RXDMAE (0x1UL << 0)/* Receive DMA Enable bit */ +#define SSP_DMACR_MASK_TXDMAE (0x1UL << 1)/* Transmit DMA Enable bit */ + +#define SSP_DMA_ENABLED (1) + +//sr +#define SSP_SR_MASK_RNE (0x1UL << 2) /* Receive FIFO not empty */ +#define SSP_SR_MASK_BSY (0x1UL << 4) /* Busy Flag */ + +//cpsr +#define SSP_CPSR_MASK_CPSDVSR (0xFFUL << 0) + +#define SSP_DEFAULT_PRESCALE 0x2 +#define SSP_DEFAULT_CLKRATE 0x3d + +//imsc +#define DEFAULT_SSP_REG_IMSC 0x0UL + +#define DEFAULT_SSP_REG_CR0 ( \ + GEN_MASK_BITS(SSP_DATA_BITS_8, SSP_CR0_MASK_DSS, 0) | \ + GEN_MASK_BITS(SSP_INTERFACE_MOTOROLA_SPI, SSP_CR0_MASK_FRF, 4) | \ + GEN_MASK_BITS(SSP_CLK_POL_IDLE_LOW, SSP_CR0_MASK_SPO, 6) | \ + GEN_MASK_BITS(SSP_CLK_FIRST_EDGE, SSP_CR0_MASK_SPH, 7) | \ + GEN_MASK_BITS(SSP_DEFAULT_CLKRATE, SSP_CR0_MASK_SCR, 8) \ +) + +#define DEFAULT_SSP_REG_CR1 ( \ + GEN_MASK_BITS(LOOPBACK_DISABLED, SSP_CR1_MASK_LBM, 0) | \ + GEN_MASK_BITS(SSP_DISABLED, SSP_CR1_MASK_SSE, 1) | \ + GEN_MASK_BITS(SSP_MASTER, SSP_CR1_MASK_MS, 2) | \ + GEN_MASK_BITS(DO_NOT_DRIVE_TX, SSP_CR1_MASK_SOD, 3) \ +) + +#define DEFAULT_SSP_REG_DMACR (\ + GEN_MASK_BITS(SSP_DMA_ENABLED, SSP_DMACR_MASK_RXDMAE, 0) | \ + GEN_MASK_BITS(SSP_DMA_ENABLED, SSP_DMACR_MASK_TXDMAE, 1) \ +) + +#define DEFAULT_SSP_REG_CPSR ( \ + GEN_MASK_BITS(SSP_DEFAULT_PRESCALE, SSP_CPSR_MASK_CPSDVSR, 0) \ +) + +#define DISABLE_ALL_INTERRUPTS DEFAULT_SSP_REG_IMSC +#define CLEAR_ALL_INTERRUPTS 0x3 + +//pl022 functions +static void flush_spi_fifo(void __iomem *spi_base_addr_virt) +{ + unsigned long limit = loops_per_jiffy << 1; + + do { + while (readw(SSP_SR(spi_base_addr_virt)) & SSP_SR_MASK_RNE) + readw(SSP_DR(spi_base_addr_virt)); + } while ((readw(SSP_SR(spi_base_addr_virt)) & SSP_SR_MASK_BSY) && limit--); + + return; +} +static void spi_enable(void __iomem *spi_base_addr_virt) +{ + //enable spi + writew((readw(SSP_CR1(spi_base_addr_virt)) | SSP_CR1_MASK_SSE), + SSP_CR1(spi_base_addr_virt)); +} +static void spi_dma_config(void __iomem *spi_base_addr_virt) +{ + //1-the DMA burstsize should equal the FIFO trigger levels + //2-the addr width should be the same + //3-config fifo trigger level:the pl022 on vf2 will trigger interrupt when fifo is not empty + + writew(DEFAULT_SSP_REG_CR0, SSP_CR0(spi_base_addr_virt)); + writew(DEFAULT_SSP_REG_CR1, SSP_CR1(spi_base_addr_virt)); + writew(DEFAULT_SSP_REG_DMACR, SSP_DMACR(spi_base_addr_virt));//enable fifo for dma + writew(DEFAULT_SSP_REG_CPSR, SSP_CPSR(spi_base_addr_virt)); + writew(DISABLE_ALL_INTERRUPTS, SSP_IMSC(spi_base_addr_virt));//Disable interrupts in DMA mode, IRQ from DMA controller + writew(CLEAR_ALL_INTERRUPTS, SSP_ICR(spi_base_addr_virt)); + + flush_spi_fifo(spi_base_addr_virt); + pr_info("\nspi fifo flushed\n"); +} + +static void print_spi_regs(void __iomem *spi_base_addr_virt) +{ + u32 read_cr0; + u16 read_cr1, read_dmacr, read_sr, read_cpsr ,read_imsc; + + read_cr0 = readw(SSP_CR0(spi_base_addr_virt)); + read_cr1 = readw(SSP_CR1(spi_base_addr_virt)); + read_dmacr = readw(SSP_DMACR(spi_base_addr_virt)); + read_sr = readw(SSP_SR(spi_base_addr_virt)); + read_cpsr = readw(SSP_CPSR(spi_base_addr_virt)); + read_imsc = readw(SSP_IMSC(spi_base_addr_virt)); + + pr_info("SPI CR0=0x%x\n",read_cr0); + + pr_info("SPI CR1=0x%x, SPI enable=%d\n", + read_cr1, + !!(read_cr1 & SSP_CR1_MASK_SSE)); + + pr_info("SPI SR=0x%x\n",read_sr); + + pr_info("SPI CPSR=0x%x\n",read_cpsr); + + pr_info("SPI IMSC=0x%x\n",read_imsc); + + pr_info("SPI DMACR=0x%x, SPI DMA rx dmaenable=%d, SPI DMA tx dmaenable=%d\n", + read_dmacr, + !!(read_dmacr & SSP_DMACR_MASK_RXDMAE), + !!(read_dmacr & SSP_DMACR_MASK_TXDMAE)); + return; +} + +//end of PL022 content + + +//start of pwmdac + +#define JH7110_PWMDAC_WDATA 0x00 +#define JH7110_PWMDAC_CTRL 0x04 +#define JH7110_PWMDAC_ENABLE BIT(0) +#define JH7110_PWMDAC_SHIFT BIT(1) +#define JH7110_PWMDAC_DUTY_CYCLE_SHIFT 2 +#define JH7110_PWMDAC_DUTY_CYCLE_MASK GENMASK(3, 2) +#define JH7110_PWMDAC_CNT_N_SHIFT 4 +#define JH7110_PWMDAC_CNT_N_MASK GENMASK(12, 4) +#define JH7110_PWMDAC_DATA_CHANGE BIT(13) +#define JH7110_PWMDAC_DATA_MODE BIT(14) +#define JH7110_PWMDAC_DATA_SHIFT_SHIFT 15 +#define JH7110_PWMDAC_DATA_SHIFT_MASK GENMASK(17, 15) + +#define PWMDAC_CLKRATE 12288000 + +enum JH7110_PWMDAC_SHIFT_VAL { + PWMDAC_SHIFT_8 = 0, + PWMDAC_SHIFT_10, +}; + +enum JH7110_PWMDAC_DUTY_CYCLE_VAL { + PWMDAC_CYCLE_LEFT = 0, + PWMDAC_CYCLE_RIGHT, + PWMDAC_CYCLE_CENTER, +}; + +enum JH7110_PWMDAC_CNT_N_VAL { + PWMDAC_SAMPLE_CNT_1 = 1, + PWMDAC_SAMPLE_CNT_2, + PWMDAC_SAMPLE_CNT_3, + PWMDAC_SAMPLE_CNT_512 = 512, /* max */ +}; + +enum JH7110_PWMDAC_DATA_CHANGE_VAL { + NO_CHANGE = 0, + CHANGE, +}; + +enum JH7110_PWMDAC_DATA_MODE_VAL { + UNSIGNED_DATA = 0, + INVERTER_DATA_MSB, +}; + +enum JH7110_PWMDAC_DATA_SHIFT_VAL { + PWMDAC_DATA_LEFT_SHIFT_BIT_0 = 0, + PWMDAC_DATA_LEFT_SHIFT_BIT_1, + PWMDAC_DATA_LEFT_SHIFT_BIT_2, + PWMDAC_DATA_LEFT_SHIFT_BIT_3, + PWMDAC_DATA_LEFT_SHIFT_BIT_4, + PWMDAC_DATA_LEFT_SHIFT_BIT_5, + PWMDAC_DATA_LEFT_SHIFT_BIT_6, + PWMDAC_DATA_LEFT_SHIFT_BIT_7, +}; + +struct jh7110_pwmdac_cfg { + enum JH7110_PWMDAC_SHIFT_VAL shift; + enum JH7110_PWMDAC_DUTY_CYCLE_VAL duty_cycle; + u16 cnt_n; + enum JH7110_PWMDAC_DATA_CHANGE_VAL data_change; + enum JH7110_PWMDAC_DATA_MODE_VAL data_mode; + enum JH7110_PWMDAC_DATA_SHIFT_VAL data_shift; +}; + + +struct jh7110_pwmdac_dev { + void __iomem *base; + resource_size_t mapbase; + struct jh7110_pwmdac_cfg cfg; + + struct clk_bulk_data clks[2]; + struct reset_control *rst_apb; + struct device *dev; + struct snd_dmaengine_dai_dma_data play_dma_data; + u32 saved_ctrl; +}; + + +static void jh7110_pwmdac_dump_cfg(struct jh7110_pwmdac_dev *pwmdac) +{ + struct jh7110_pwmdac_cfg *cfg = &pwmdac->cfg; + + if (!pwmdac || !pwmdac->dev) + return; + + dev_info(pwmdac->dev, "----- JH7110 PWMDAC CFG DUMP -----\n"); + dev_info(pwmdac->dev, "shift : %d\n", cfg->shift); + dev_info(pwmdac->dev, "duty_cycle : %d\n", cfg->duty_cycle); + dev_info(pwmdac->dev, "cnt_n : %u\n", cfg->cnt_n); + dev_info(pwmdac->dev, "data_change : %d\n", cfg->data_change); + dev_info(pwmdac->dev, "data_mode : %d\n", cfg->data_mode); + dev_info(pwmdac->dev, "data_shift : %d\n", cfg->data_shift); + dev_info(pwmdac->dev, "----------------------------------\n"); +} +static inline void jh7110_pwmdac_write_reg(void __iomem *io_base, int reg, u32 val) +{ + writel(val, io_base + reg); +} + +static inline u32 jh7110_pwmdac_read_reg(void __iomem *io_base, int reg) +{ + return readl(io_base + reg); +} + +static void dump_pwmdac_regs(void __iomem *base_addr_virt) +{ + u32 read_ctrl; + read_ctrl = jh7110_pwmdac_read_reg(base_addr_virt, JH7110_PWMDAC_CTRL); + pr_info("ctrl value=0x%x\n",read_ctrl); + return; +} + +static void jh7110_pwmdac_init_params(struct jh7110_pwmdac_dev *dev) +{ + dev->cfg.shift = PWMDAC_SHIFT_8; + dev->cfg.duty_cycle = PWMDAC_CYCLE_CENTER; + dev->cfg.cnt_n = PWMDAC_SAMPLE_CNT_1; + dev->cfg.data_change = NO_CHANGE; + dev->cfg.data_mode = INVERTER_DATA_MSB; + dev->cfg.data_shift = PWMDAC_DATA_LEFT_SHIFT_BIT_0; + + dev->play_dma_data.addr = dev->mapbase + JH7110_PWMDAC_WDATA; + dev->play_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; + dev->play_dma_data.fifo_size = 1; + dev->play_dma_data.maxburst = 16; +} + +static int jh7110_pwmdac_crg_enable(struct jh7110_pwmdac_dev *dev, bool enable) +{ + int ret; + + if (enable) { + ret = clk_bulk_prepare_enable(ARRAY_SIZE(dev->clks), dev->clks); + if (ret) + return dev_err_probe(dev->dev, ret, + "failed to enable pwmdac clocks\n"); + + ret = reset_control_deassert(dev->rst_apb); + if (ret) { + dev_err(dev->dev, "failed to deassert pwmdac apb reset\n"); + goto err_rst_apb; + } + } else { + clk_bulk_disable_unprepare(ARRAY_SIZE(dev->clks), dev->clks); + } + + return 0; + +err_rst_apb: + clk_bulk_disable_unprepare(ARRAY_SIZE(dev->clks), dev->clks); + + return ret; +} +static int jh7110_pwmdac_runtime_resume(struct device *dev) +{ + struct jh7110_pwmdac_dev *pwmdac = dev_get_drvdata(dev); + + return jh7110_pwmdac_crg_enable(pwmdac, true); +} + +static int jh7110_pwmdac_probe(struct platform_device *pdev) +{ + struct jh7110_pwmdac_dev *dev; + struct resource *res; + int ret; + + dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL); + if (!dev) + return -ENOMEM; + + dev->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); + if (IS_ERR(dev->base)) + return PTR_ERR(dev->base); + + dev->mapbase = res->start; + + dev->clks[0].id = "apb"; + dev->clks[1].id = "core"; + + ret = devm_clk_bulk_get(&pdev->dev, ARRAY_SIZE(dev->clks), dev->clks); + if (ret) + return dev_err_probe(&pdev->dev, ret, + "failed to get pwmdac clocks\n"); + + dev->rst_apb = devm_reset_control_get_exclusive(&pdev->dev, NULL); + if (IS_ERR(dev->rst_apb)) + return dev_err_probe(&pdev->dev, PTR_ERR(dev->rst_apb), + "failed to get pwmdac apb reset\n"); + + jh7110_pwmdac_init_params(dev); + + dev->dev = &pdev->dev; + dev_set_drvdata(&pdev->dev, dev); + + dev_info(&pdev->dev,"use this pwmdac to test dmac\n"); + pm_runtime_enable(dev->dev); + if (!pm_runtime_enabled(&pdev->dev)) { + ret = jh7110_pwmdac_runtime_resume(&pdev->dev); + if (ret) + goto err_pm_disable; + } + + return 0; + +err_pm_disable: + pm_runtime_disable(&pdev->dev); + + return ret; +} + + +static void jh7110_pwmdac_set_enable(struct jh7110_pwmdac_dev *dev, bool enable) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + if (enable) + value |= JH7110_PWMDAC_ENABLE; + else + value &= ~JH7110_PWMDAC_ENABLE; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_shift(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + if (dev->cfg.shift == PWMDAC_SHIFT_8) + value &= ~JH7110_PWMDAC_SHIFT; + else if (dev->cfg.shift == PWMDAC_SHIFT_10) + value |= JH7110_PWMDAC_SHIFT; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_duty_cycle(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + value &= ~JH7110_PWMDAC_DUTY_CYCLE_MASK; + value |= (dev->cfg.duty_cycle & 0x3) << JH7110_PWMDAC_DUTY_CYCLE_SHIFT; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_cnt_n(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + value &= ~JH7110_PWMDAC_CNT_N_MASK; + value |= ((dev->cfg.cnt_n - 1) & 0x1ff) << JH7110_PWMDAC_CNT_N_SHIFT; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_data_change(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + if (dev->cfg.data_change == NO_CHANGE) + value &= ~JH7110_PWMDAC_DATA_CHANGE; + else if (dev->cfg.data_change == CHANGE) + value |= JH7110_PWMDAC_DATA_CHANGE; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_data_mode(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + if (dev->cfg.data_mode == UNSIGNED_DATA) + value &= ~JH7110_PWMDAC_DATA_MODE; + else if (dev->cfg.data_mode == INVERTER_DATA_MSB) + value |= JH7110_PWMDAC_DATA_MODE; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} + +static void jh7110_pwmdac_set_data_shift(struct jh7110_pwmdac_dev *dev) +{ + u32 value; + + value = jh7110_pwmdac_read_reg(dev->base, JH7110_PWMDAC_CTRL); + value &= ~JH7110_PWMDAC_DATA_SHIFT_MASK; + value |= (dev->cfg.data_shift & 0x7) << JH7110_PWMDAC_DATA_SHIFT_SHIFT; + + jh7110_pwmdac_write_reg(dev->base, JH7110_PWMDAC_CTRL, value); +} +static void jh7110_pwmdac_set(struct jh7110_pwmdac_dev *dev) +{ + jh7110_pwmdac_set_shift(dev); + jh7110_pwmdac_set_duty_cycle(dev); + jh7110_pwmdac_set_cnt_n(dev); + jh7110_pwmdac_set_enable(dev, true); + + jh7110_pwmdac_set_data_change(dev); + jh7110_pwmdac_set_data_mode(dev); + jh7110_pwmdac_set_data_shift(dev); +} + +static void jh7110_pwmdac_stop(struct jh7110_pwmdac_dev *dev) +{ + jh7110_pwmdac_set_enable(dev, false); +} + +static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) +{ + int ret; + jh7110_pwmdac_set(dev); + ret = clk_set_rate(dev->clks[1].clk, PWMDAC_CLKRATE+64); + if (ret) + pr_err("failed to set rate %u for core clock\n",PWMDAC_CLKRATE+64); + return; +} + +//end of pwmdac #define DEVICE_NAME "user_dma" #define BUF_LEN 4096 +#define DW_AXI_DMAC_NAME "dma-controller@16050000" +#define PL08_DMAC_NAME "dma-controller@16008000" -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac +#define SPI_PATH "/soc/spi@10060000" +#define PWMDAC_PATH "/soc/pwmdac@100b0000" +#define PWMDAC_ADDR 0x100b0000 + + +#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac +#define USER_DMA_IOCTL_SPI_LOOP_IB _IOR('M', 2, int)//test inband spi dma loopback +#define USER_DMA_IOCTL_IIS_LOOP_IB _IOR('M', 3, int)// struct transfer_config { //bus addr that dmac can use dma_addr_t dma_buf_src; @@ -30,6 +522,15 @@ struct transfer_config { void *buf_des; }; + + +struct spi_ctrl { + void __iomem *virt_addr; + dma_addr_t phy_addr; /* phy addr for dmac */ + struct clk *clk; + struct reset_control *rst; +}; + //transfer info static struct transfer_config trans_config; //char device @@ -38,9 +539,25 @@ static struct cdev user_dma_cdev; static struct class *user_dma_class; //dma channel static struct dma_chan *dw_dma_chan_tx;//memcpy test - +static struct dma_chan *dw_dma_chan_dev;//memcpy to dev test +static struct dma_chan *pl_dma_chan_tx;//mem2dev +static struct dma_chan *pl_dma_chan_rx;//dev2mem //complete struct completion cmp_tx; +struct completion cmp_rx; + +struct jh7110_pwmdac_dev *pwmdac; +struct platform_device *pdev_dac; +static void dma_complete_func_rx_ib(void *completion) +{ + complete(completion); + pr_info("\ndma rx complete callback is called\n"); + return; +} + +//spi +static struct spi_ctrl spi; + static void dma_complete_func_tx(void *completion) { @@ -75,6 +592,100 @@ static bool check_dest_buffer(void) return true; } +static bool fetch_spi_addr(void) +{ + struct device_node *np; + struct resource res; + + /* 1. 找到 SPI 节点,名字要和 DTS 一致 */ + np = of_find_node_by_path(SPI_PATH); + if (!np) { + pr_err("cannot find spi0 node\n"); + return false; + } + + /* 2. 获取 resource */ + if (of_address_to_resource(np, 0, &res)) { + pr_err("failed to get spi resource\n"); + of_node_put(np); + return false; + } + + /* 3. 物理基地址 */ + spi.phy_addr = res.start; + + /* 4. CPU 访问寄存器(可选) */ + spi.virt_addr = ioremap(res.start, resource_size(&res)); + if (!spi.virt_addr) { + pr_err("user_dma: ioremap failed\n"); + of_node_put(np); + return false; + } + pr_info("user_dma: spi phys=%pad virt=%p\n", + &spi.phy_addr, spi.virt_addr); + + /* 通过 node 获取 clk */ + spi.clk = of_clk_get(np, 0); // 索引 0, 对应 clocks 属性的第一个 + if (IS_ERR(spi.clk)) { + pr_err("failed to get clk\n"); + return PTR_ERR(spi.clk); + } + clk_prepare_enable(spi.clk); + /* 通过 node 获取 reset */ + spi.rst = of_reset_control_get(np, NULL); // NULL = 默认reset + if (IS_ERR(spi.rst)) { + pr_err("failed to get reset\n"); + return PTR_ERR(spi.rst); + } + reset_control_deassert(spi.rst); + + of_node_put(np); + return true; +} + +static bool fetch_dac_addr(void) +{ + struct device_node *np; + int ret; + /* 1. 找到 dac 节点,名字要和 DTS 一致 */ + np = of_find_node_by_path(PWMDAC_PATH); + if (!np) { + pr_err("cannot find pwmdac node\n"); + return false; + } + pdev_dac = of_find_device_by_node(np); + if (!pdev_dac) { + pr_err("cannot find platform_device for DAC\n"); + return false; + } + + ret = jh7110_pwmdac_probe(pdev_dac); + if(ret) { + pr_err("probe fails\n"); + return false; + } + pwmdac = dev_get_drvdata(&pdev_dac->dev); + jh7110_pwmdac_dump_cfg(pwmdac); + pr_info( "dac base (virt addr) : %p\n", pwmdac->base); + pr_info( "dac mapbase (phys) : %pa\n", &pwmdac->mapbase); + //enable the device + ret = clk_bulk_prepare_enable(ARRAY_SIZE(pwmdac->clks), pwmdac->clks); + if (ret) { + pr_err("clk enable error\n"); + return false; + } + ret = reset_control_deassert(pwmdac->rst_apb); + if (ret) { + pr_err("failed to deassert pwmdac apb reset\n"); + return false; + } + pr_info("pwmdac clocks enabled, reset released\n"); + + of_node_put(np); + dump_pwmdac_regs(pwmdac->base); + return true; +} + static int do_dw_dmac_ib_memcpy_test(void) { // struct dma_transfer xfer; @@ -108,6 +719,148 @@ static int do_dw_dmac_ib_memcpy_test(void) return (check_dest_buffer())?(0):(1); } +static int do_pl_dmac_ib_spiloopback_test(void) +{ + struct dma_slave_config chan_tx_config = {0}; + struct dma_slave_config chan_rx_config = {0}; + struct scatterlist sg_tx[1], sg_rx[1]; + struct dma_async_tx_descriptor *rx; + struct dma_async_tx_descriptor *tx; + dma_cookie_t cookie_rx; + dma_cookie_t cookie_tx; + int xfer_len = 8; + pr_info("\nstart PL022 spi config\n"); + spi_dma_config(spi.virt_addr); + print_spi_regs(spi.virt_addr); + pr_info("\nPL022 spi config and enable finish\n"); + init_completion(&cmp_tx); + init_completion(&cmp_rx); + fill_source_buffer();//fill pattern in source buffer + memset(trans_config.buf_des,0,BUF_LEN); + + //config dma channel + //tx + chan_tx_config.direction = DMA_MEM_TO_DEV; + chan_tx_config.dst_addr = SSP_DR(spi.phy_addr); + chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;// + chan_tx_config.dst_maxburst = 1;// + chan_tx_config.device_fc = false; + + dmaengine_slave_config(pl_dma_chan_tx, &chan_tx_config); + //rx + chan_rx_config.direction = DMA_DEV_TO_MEM; + chan_rx_config.src_addr = SSP_DR(spi.phy_addr); + chan_rx_config.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE;// + chan_rx_config.src_maxburst = 1;// + chan_rx_config.device_fc = false; + + dmaengine_slave_config(pl_dma_chan_rx, &chan_rx_config); + pr_info("\ndma slave config comp\n"); + //init scatter list + sg_init_table(sg_tx, 1); + sg_init_table(sg_rx, 1); + sg_init_one(&sg_tx[0], trans_config.buf_src, xfer_len); + sg_init_one(&sg_rx[0], trans_config.buf_des, xfer_len); + + sg_dma_address(&sg_tx[0]) = trans_config.dma_buf_src; + sg_dma_len(&sg_tx[0]) = xfer_len; + + sg_dma_address(&sg_rx[0]) = trans_config.dma_buf_des; + sg_dma_len(&sg_rx[0]) = xfer_len; + + //prepare dma desc + tx = dmaengine_prep_slave_sg(pl_dma_chan_tx, + sg_tx, + 1, + DMA_MEM_TO_DEV, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK + ); + // tx->callback = dma_complete_func_tx; + // tx->callback_param = &cmp_tx; + rx = dmaengine_prep_slave_sg(pl_dma_chan_rx, + sg_rx, + 1, + DMA_DEV_TO_MEM, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK + ); + rx->callback = dma_complete_func_rx_ib; + rx->callback_param = &cmp_rx; + pr_info("\ndma prepare comp\n"); + //submit + cookie_rx = dmaengine_submit(rx); + cookie_tx = dmaengine_submit(tx); + pr_info("TX cookie=%u RX cookie=%u\n", cookie_tx, cookie_rx); + //issue pending + dma_async_issue_pending(pl_dma_chan_rx); + dma_async_issue_pending(pl_dma_chan_tx); + spi_enable(spi.virt_addr); + print_spi_regs(spi.virt_addr); + pr_info("\ndma issue pending comp\n"); + pr_info("\nwait for dma to comp\n"); + + if (!wait_for_completion_timeout(&cmp_rx, msecs_to_jiffies(5000))) { + pr_err("rx DMA timeout error!\n"); + dmaengine_terminate_sync(pl_dma_chan_tx); + dmaengine_terminate_sync(pl_dma_chan_rx); + pr_info("\npl dma channels terminated\n"); + return 1; + } else { + pr_info("\nwait finish\n"); + } + return 0; +} + +static int do_dw_dmac_dac_tx_test(void) +{ + struct dma_slave_config chan_tx_config = {0}; + struct dma_async_tx_descriptor *tx; + dma_cookie_t cookie_tx; + fill_source_buffer();//fill pattern in source buffer + init_completion(&cmp_tx); + + //mocking jh7110_pwmdac_hw_params + mocking_jh7110_pwmdac_hw_params(pwmdac); + + //slave config + memset(&chan_tx_config, 0, sizeof(chan_tx_config)); + chan_tx_config.direction = DMA_MEM_TO_DEV; + chan_tx_config.dst_addr = PWMDAC_ADDR; + chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;// + chan_tx_config.dst_maxburst = 16;// + chan_tx_config.device_fc = false; + dmaengine_slave_config(dw_dma_chan_dev, &chan_tx_config); + + //prepare + tx = dmaengine_prep_dma_cyclic(dw_dma_chan_dev, + trans_config.dma_buf_src, + BUF_LEN, + BUF_LEN, + DMA_MEM_TO_DEV, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT + ); + tx->callback = dma_complete_func_tx; + tx->callback_param = &cmp_tx; + //submit + cookie_tx = dmaengine_submit(tx); + pr_info("TX cookie=%u\n", cookie_tx); + + dma_async_issue_pending(dw_dma_chan_dev); + + jh7110_pwmdac_set(pwmdac); + dump_pwmdac_regs(pwmdac->base); + if (!wait_for_completion_timeout(&cmp_tx, msecs_to_jiffies(5000))) { + pr_err("tx DMA timeout error!\n"); + jh7110_pwmdac_stop(pwmdac); + dump_pwmdac_regs(pwmdac->base); + dmaengine_terminate_async(dw_dma_chan_dev); + pr_info("\npl dma channels terminated\n"); + return 1; + } else { + jh7110_pwmdac_stop(pwmdac); + pr_info("\nwait finish\n"); + } + return 0; +} static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int output; @@ -118,6 +871,18 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; + case USER_DMA_IOCTL_SPI_LOOP_IB:{ + output = do_pl_dmac_ib_spiloopback_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } + case USER_DMA_IOCTL_IIS_LOOP_IB:{ + output = do_dw_dmac_dac_tx_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } default: return -ENOTTY; return 0; @@ -128,21 +893,13 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar static int user_dma_open(struct inode *inode, struct file *file) { pr_info("\nuser_dma opened\n"); - //print the channel info here - if (!dw_dma_chan_tx) - { - pr_err("\nDW DMA channel not initialized\n"); - return -ENODEV; - } - pr_info("\nDW DMA tx channel info: name=%s id=%d\n", - dma_chan_name(dw_dma_chan_tx), - dw_dma_chan_tx->chan_id); - //use dma_alloc_coherent to allocate memory that dmac can reach //better use the dev of the dmac to get buffer //when using the dev of this driver,error will occur trans_config.buf_src = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); trans_config.buf_des = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); + // trans_config.buf_src = dma_alloc_coherent(pl_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); + // trans_config.buf_des = dma_alloc_coherent(pl_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); if(!trans_config.buf_src && !trans_config.buf_des) { pr_err("\nDMAC reachable buffer not initialized\n"); @@ -190,26 +947,40 @@ static bool my_dma_filter(struct dma_chan *chan, void *param) static bool prep_dma_chans(void) { dma_cap_mask_t mask; + + pr_info("start to request for dw axi dma channel\n"); + //dw axi dmac channels dma_cap_zero(mask); dma_cap_set(DMA_MEMCPY, mask); + dw_dma_chan_tx = dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + // dw_dma_chan_dev= dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); + dw_dma_chan_dev = dma_request_chan(&pdev_dac->dev, "tx"); + //PL08 dmac channels + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + pl_dma_chan_tx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); + pl_dma_chan_rx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); - pr_info("start to request for dw axi dma channel\n"); - // request for dw dma channels - dw_dma_chan_tx = dma_request_channel(mask, my_dma_filter, "dma-controller@16050000"); - - pr_info("end to request for dma channel\n"); - - if (IS_ERR(dw_dma_chan_tx)) { + //check + if (IS_ERR(dw_dma_chan_tx) || IS_ERR(dw_dma_chan_dev)) { pr_err("Failed to request DMA channel\n"); return false; } else { - if(dw_dma_chan_tx && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) { + if(dw_dma_chan_tx && dw_dma_chan_dev && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) pr_info("Got dw tx channel: %s\n", dma_chan_name(dw_dma_chan_tx)); - - } else { - pr_info("Got channel, but device not ready yet\n"); - } + pr_info("Got dw mem2dev channel: %s\n", dma_chan_name(dw_dma_chan_dev)); + } + if(IS_ERR(pl_dma_chan_tx) || IS_ERR(pl_dma_chan_rx)) { + pr_err("Failed to request PL08 DMA channel\n"); + return false; + } else { + if(pl_dma_chan_tx && pl_dma_chan_rx && pl_dma_chan_tx->device && pl_dma_chan_tx->device->dev) { + pr_info("Got PL08 tx channel: %s\n", dma_chan_name(pl_dma_chan_tx)); + pr_info("Got PL08 rx channel: %s\n", dma_chan_name(pl_dma_chan_rx)); + } } return true; } @@ -221,6 +992,7 @@ static void release_dma_chans(void) dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); dma_release_channel(dw_dma_chan_tx); + dma_release_channel(dw_dma_chan_dev); return; } @@ -228,15 +1000,28 @@ static int __init user_dma_init(void) { int ret; + if(!fetch_spi_addr()) { + pr_err("fetch spi error\n"); + } else { + pr_info("spi success\n"); + } + + if(!fetch_dac_addr()) { + pr_err("fetch dac error\n"); + } else { + pr_info("dac success\n"); + } + if(!prep_dma_chans()) { - pr_err("fetch spi fail\n"); + pr_err("prep dma channels error\n"); + } else { + pr_info("channel success\n"); } // register char device ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); if (ret < 0) { pr_err("Failed to alloc chrdev\n"); - dma_release_channel(dw_dma_chan_tx); return ret; } diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index 0358c2ba72f52daa1205394c40a3ad559be9b25a..39339fd85b311397893e4ee4a41c45a1b0e2f939 100755 GIT binary patch delta 1664 zcmZ8iZA@EL7(VB;hmS(RQrQKCQ3`E=I4C2NK@@1@ddWg?)5Xj`UPgO28oo>S!5_=V zE{Mq(crxpcC2UJ@3p2V=S+fs^Q*mOl7#5wAZ4L(Lre^KT7F}Xe&*{Alnf>#g=Y5~^ zyzhO^y{D&lFYX@AFdRq#(O-=cz~Wfp37t1pLEhA{g-dC66|F@w3BP={d1S12X#L0D zJ98ftdbgd}H&MCiSfCf(fN*=@Ev*PMr&Q_i21QMywx}obn1gA7`}hsyt1&>!u;9dx z(LuqfdyHhksdl9|~7LI^Kv}kaxiTUgSF7=zu>@Dlz-G60d#~0*h#J zh_e8o*(CY;B|9*7!H7SOstmp=aPa^bf70FC-fX})jiQNOPj0Jh19C%k?e zO%B<-&fyb)%cDYN%RNqw2B3ldUWFrh6wYs5!-tGNmDi9T|JIy8EX#d!Dt~{B?=YAb zxqPatb?qMzv>rRV^C(m!M&`?B)v7Kd35 zg>!x%77TMr21hfIdwqgomN`--Ge_9!prEXKx~zZtY1@I%YTJ%94)Yv!(TL@$xJTx2 z)e6ukWnZ+h>#9yCc)i*RVEdK{Z59 zZ{7+9F*AI8dd+WaqIhb}Z=6r@8D?PhY3ld$0&QFUY0PdunT~d5&Fj}&kP-iOHl0Sm% zsbnF)812#%o#i^LBTJS;h7`TBeTS+tLLOQ;!%+l48kKS-E9prxX0;W@?#<}jv=F4M zXTZY<*sN|=!yMDdT!>aVaK!#}^;hDsWgC-$T^)bBTK<>qf+++RaHYBQ-emn75|!fX zDyKxvA64@w)qE{EX5%tNS~Z|_knq2bEo9!tL76GT4+F3uh}O9}#HUYQ^h({{K(MF+ z1wt<@A+#BjYbC{oX4Rfp{FWH(CA!%8P(!!aU)0s9e-`w3-m?!PdW?p$@ubfqGrm(l;0Ou)HHP1nOj@<`HJ zck?yy_OVm{ymN8-VJda1=PXg9X zg__SC^s7_=#rh*MiQAtjaFQRyhs{5?c*swGsb)@yV)VMg?JeP+_&BFD9q~ zvm)M=Vq?>*AB|j-)Ku>I-u^^3=i3kkJ6HqbU8F->9-epGGR#W-;cPDdo8^0(C{G~h zruc!>zuCPBFj$&_gm7UReIe)X37RbSRp7lZyW%`cr)I`yo0v6Qu5E>;Sn+pa^&TK; z#V&F$O6t`s{+F>@X5uD_myZeJHP%!J6}MAI#wKQSv$x6LT5H=`7hV2xe^%ztZ_DQH z+`;^H1@jWVEz!eEm_IN}YhAR2ZvM*F(>7Zl1jt^ULnAh9xl0L)B%*UUd<%YtW5sSV zSQ7g@VP>{})^?JJt&?Lyr+6m5_GvcPev91F)o%``{g~TiW+LrTUQ=cNR(*(W{YWZH zn^67+*;)D$I{h6PDs^s|f0EX4wNt8L4)XB4Txqa^;(78zsVj_G+S8mwn7xeo^t4Ri ztP<`kHfE+GvjvfFFwZNTdz-1q70FvYgZUoCiz_L{isn2XXqgiEm{9=(C?3hj+&~44U_+m3wJ{K$BVM~;nNkj7 zk+qL55GVr+WXw(vBDrK2poc(*fNBh6mtzQJ^km7=h`uNzI&J|v$uc)=+M$&2hN3b= z{@_?L>8$zh3MrIMcSp&xlZ8{#KDbH?JG{c=FUCZLV6xS5+yCg(&N2PblwRIGwR_mWd zshWliLi^MNxf)Hyu@ Date: Tue, 16 Sep 2025 00:18:22 -0700 Subject: [PATCH 13/25] refactor:clean global variant --- my_driver/user_dma.c | 602 +++++++++++++++++++++++++------------ user_scripts/testtool/tt | Bin 13280 -> 13368 bytes user_scripts/testtool/tt.c | 85 +++++- 3 files changed, 488 insertions(+), 199 deletions(-) diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index dbd3550553419..d4cbfc2fa5e1f 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -499,20 +499,22 @@ static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) } //end of pwmdac + #define DEVICE_NAME "user_dma" #define BUF_LEN 4096 #define DW_AXI_DMAC_NAME "dma-controller@16050000" #define PL08_DMAC_NAME "dma-controller@16008000" #define SPI_PATH "/soc/spi@10060000" - #define PWMDAC_PATH "/soc/pwmdac@100b0000" -#define PWMDAC_ADDR 0x100b0000 +#define PWMDAC_ADDR 0x100b0000 -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac -#define USER_DMA_IOCTL_SPI_LOOP_IB _IOR('M', 2, int)//test inband spi dma loopback -#define USER_DMA_IOCTL_IIS_LOOP_IB _IOR('M', 3, int)// +//USER_DMA_IOCTL___ +#define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac +#define USER_DMA_IOCTL_SPI_TXRX_IB _IOR('M', 2, int)//test inband spi dma loopback +#define USER_DMA_IOCTL_DAC_TX_IB _IOR('M', 3, int)//test inband dac dma-tx +#define USER_DMA_IOCTL_DAC_TX_OOB _IOR('M', 4, int)//test oob dac dma-tx struct transfer_config { //bus addr that dmac can use dma_addr_t dma_buf_src; @@ -522,7 +524,10 @@ struct transfer_config { void *buf_des; }; - +struct my_cb_param { + const char *log; + struct completion done; // 用于同步的 completion +}; struct spi_ctrl { void __iomem *virt_addr; @@ -532,44 +537,52 @@ struct spi_ctrl { }; //transfer info -static struct transfer_config trans_config; +// static struct transfer_config trans_config; //char device static dev_t dev_num; static struct cdev user_dma_cdev; static struct class *user_dma_class; //dma channel -static struct dma_chan *dw_dma_chan_tx;//memcpy test -static struct dma_chan *dw_dma_chan_dev;//memcpy to dev test -static struct dma_chan *pl_dma_chan_tx;//mem2dev -static struct dma_chan *pl_dma_chan_rx;//dev2mem +// static struct dma_chan *dw_dma_chan_tx;//memcpy test +// static struct dma_chan *dw_dma_chan_dev;//memcpy to dev test +// static struct dma_chan *pl_dma_chan_tx;//mem2dev +// static struct dma_chan *pl_dma_chan_rx;//dev2mem //complete -struct completion cmp_tx; -struct completion cmp_rx; +// struct completion cmp_tx; +// struct completion cmp_rx; struct jh7110_pwmdac_dev *pwmdac; struct platform_device *pdev_dac; -static void dma_complete_func_rx_ib(void *completion) -{ - complete(completion); - pr_info("\ndma rx complete callback is called\n"); - return; -} //spi static struct spi_ctrl spi; +//callbacks +static void cb_ib(void *param) +{ + struct my_cb_param *params = param; + complete(¶ms->done); + pr_info("%s\n",params->log); + return; +} -static void dma_complete_func_tx(void *completion) +static void cb_oob(void *param) { - complete(completion); - pr_info("\ndma tx complete callback is called\n"); + if(param == NULL) + pr_info("oob param is NULL\n"); + struct my_cb_param *params = param; + complete(¶ms->done); + if(running_oob()) { + pr_info("%s\n",params->log); + pr_info("running oob\n"); + } return; } -static void fill_source_buffer(void) +static void fill_source_buffer(struct transfer_config *trans_config) { int num = 0; - unsigned char *src_buf = trans_config.buf_src; + unsigned char *src_buf = trans_config->buf_src; for(int i=0;ibuf_src; + unsigned char *des_buf = trans_config->buf_des; for(int i = 0 ;iclks), pwmdac->clks); + if (ret) { + pr_err("clk enable error\n"); + return false; + } + ret = reset_control_deassert(pwmdac->rst_apb); + if (ret) { + pr_err("failed to deassert pwmdac apb reset\n"); + return false; + } + pr_info("pwmdac clocks enabled, reset released\n"); + return true; +} +static void disable_dac(void) +{ + reset_control_assert(pwmdac->rst_apb); + clk_bulk_disable_unprepare(ARRAY_SIZE(pwmdac->clks), pwmdac->clks); + + pr_info("pwmdac clocks disabled, reset asserted\n"); +} static bool fetch_dac_addr(void) { struct device_node *np; @@ -669,58 +705,132 @@ static bool fetch_dac_addr(void) pr_info( "dac base (virt addr) : %p\n", pwmdac->base); pr_info( "dac mapbase (phys) : %pa\n", &pwmdac->mapbase); //enable the device - ret = clk_bulk_prepare_enable(ARRAY_SIZE(pwmdac->clks), pwmdac->clks); - if (ret) { - pr_err("clk enable error\n"); + if(!enable_dac()){ return false; } - ret = reset_control_deassert(pwmdac->rst_apb); - if (ret) { - pr_err("failed to deassert pwmdac apb reset\n"); - return false; - } - pr_info("pwmdac clocks enabled, reset released\n"); of_node_put(np); dump_pwmdac_regs(pwmdac->base); return true; } -static int do_dw_dmac_ib_memcpy_test(void) +//filter dmac by device name,target for dw-axi-dmac +static bool my_dma_filter(struct dma_chan *chan, void *param) { - // struct dma_transfer xfer; + if (!chan || !chan->device) + return false; + + struct device *dev = chan->device->dev; + const char *target_name = param; + + if (!dev || !dev->of_node) + return false; + + const char *node_name = of_node_full_name(dev->of_node); + if (!node_name) { + return false; + } + + return strcmp(node_name, target_name) == 0; +} + + +static bool allocate_trans_config(struct transfer_config *trans_config,struct device *dev) +{ + trans_config->buf_src = dma_alloc_coherent(dev, BUF_LEN, &(trans_config->dma_buf_src), GFP_KERNEL); + trans_config->buf_des = dma_alloc_coherent(dev, BUF_LEN, &(trans_config->dma_buf_des), GFP_KERNEL); + if(!trans_config->buf_src && !trans_config->buf_des) + { + pr_err("allocate DMAC reachable buffer error\n"); + return false; + } + pr_info("allocate DMAC reachable buffer success\n"); + return true; +} + +static void release_trans_config(struct transfer_config *trans_config,struct device *dev) +{ + dma_free_coherent(dev, BUF_LEN, trans_config->buf_src, trans_config->dma_buf_src); + dma_free_coherent(dev, BUF_LEN, trans_config->buf_des, trans_config->dma_buf_des); + return; +} + +//do_____test +static int do_dw_mem_cp_ib_test(void) +{ + int ret = 0; + struct transfer_config trans_config; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan; struct dma_async_tx_descriptor *tx; dma_cookie_t cookie_tx; - fill_source_buffer();//fill pattern in source buffer + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_MEMCPY, mask); + dchan = dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw memcpy channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); memset(trans_config.buf_des,0,BUF_LEN); - init_completion(&cmp_tx); + + init_completion(¶ms.done); + params.log = "MEM:inband memcpy by dw-axi-dmac cb is called"; + //prepare - tx = dmaengine_prep_dma_memcpy(dw_dma_chan_tx, + tx = dmaengine_prep_dma_memcpy(dchan, trans_config.dma_buf_src , trans_config.dma_buf_des , BUF_LEN, DMA_CTRL_ACK | DMA_PREP_INTERRUPT ); - tx->callback = dma_complete_func_tx; - tx->callback_param = &cmp_tx; - pr_info("\ndma prepare comp\n"); + tx->callback = cb_ib; + tx->callback_param = ¶ms; + pr_info("dma prepare success\n"); //submit cookie_tx = dmaengine_submit(tx); - pr_info("\ndma submit comp\n"); + pr_info("dma submit success\n"); //issue pending - dma_async_issue_pending(dw_dma_chan_tx); - pr_info("\ndma issue pending comp\n"); + dma_async_issue_pending(dchan); + pr_info("dma issue pending success\n"); //wait for dma to comp - pr_info("\nwait for dma to comp\n"); - wait_for_completion(&cmp_tx); - pr_info("\nwait finish\n"); + pr_info("wait for dma to comp\n"); + wait_for_completion(¶ms.done); + pr_info("wait finish\n"); //check the pattern in dest buffer - return (check_dest_buffer())?(0):(1); + ret = (check_dest_buffer(&trans_config))?(0):(1); + + //release trans_config + release_trans_config(&trans_config,dchan->device->dev); +trans_config_exit: + dma_release_channel(dchan); +chan_exit: + return ret; } -static int do_pl_dmac_ib_spiloopback_test(void) +static int do_pl08_spi_sg_ib_test(void) { + int ret = 0; + struct transfer_config trans_config; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan_tx; + struct dma_chan *dchan_rx; + struct dma_slave_config chan_tx_config = {0}; struct dma_slave_config chan_rx_config = {0}; struct scatterlist sg_tx[1], sg_rx[1]; @@ -729,14 +839,36 @@ static int do_pl_dmac_ib_spiloopback_test(void) dma_cookie_t cookie_rx; dma_cookie_t cookie_tx; int xfer_len = 8; - pr_info("\nstart PL022 spi config\n"); + + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan_tx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); + dchan_rx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); + if(IS_ERR(dchan_tx) || IS_ERR(dchan_rx)) { + pr_err("Failed to request PL08 DMA channel\n"); + ret = 1; + goto chan_exit; + // return false; + } else { + if(dchan_tx && dchan_rx && dchan_tx->device && dchan_tx->device->dev) { + pr_info("Got PL08 tx channel: %s\n", dma_chan_name(dchan_tx)); + pr_info("Got PL08 rx channel: %s\n", dma_chan_name(dchan_rx)); + } + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan_tx->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); + memset(trans_config.buf_des,0,BUF_LEN); spi_dma_config(spi.virt_addr); print_spi_regs(spi.virt_addr); - pr_info("\nPL022 spi config and enable finish\n"); - init_completion(&cmp_tx); - init_completion(&cmp_rx); - fill_source_buffer();//fill pattern in source buffer - memset(trans_config.buf_des,0,BUF_LEN); + pr_info("\nPL022 spi config and enable sucess\n"); + // ini params + init_completion(¶ms.done); + params.log = "SPI:inband spi-rx dma callback by PL08-dmac is called"; //config dma channel //tx @@ -746,7 +878,7 @@ static int do_pl_dmac_ib_spiloopback_test(void) chan_tx_config.dst_maxburst = 1;// chan_tx_config.device_fc = false; - dmaengine_slave_config(pl_dma_chan_tx, &chan_tx_config); + dmaengine_slave_config(dchan_tx, &chan_tx_config); //rx chan_rx_config.direction = DMA_DEV_TO_MEM; chan_rx_config.src_addr = SSP_DR(spi.phy_addr); @@ -754,8 +886,8 @@ static int do_pl_dmac_ib_spiloopback_test(void) chan_rx_config.src_maxburst = 1;// chan_rx_config.device_fc = false; - dmaengine_slave_config(pl_dma_chan_rx, &chan_rx_config); - pr_info("\ndma slave config comp\n"); + dmaengine_slave_config(dchan_rx, &chan_rx_config); + pr_info("dma slave config success\n"); //init scatter list sg_init_table(sg_tx, 1); sg_init_table(sg_rx, 1); @@ -769,58 +901,87 @@ static int do_pl_dmac_ib_spiloopback_test(void) sg_dma_len(&sg_rx[0]) = xfer_len; //prepare dma desc - tx = dmaengine_prep_slave_sg(pl_dma_chan_tx, + tx = dmaengine_prep_slave_sg(dchan_tx, sg_tx, 1, DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT | DMA_CTRL_ACK ); - // tx->callback = dma_complete_func_tx; - // tx->callback_param = &cmp_tx; - rx = dmaengine_prep_slave_sg(pl_dma_chan_rx, + rx = dmaengine_prep_slave_sg(dchan_rx, sg_rx, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK ); - rx->callback = dma_complete_func_rx_ib; - rx->callback_param = &cmp_rx; - pr_info("\ndma prepare comp\n"); + rx->callback = cb_ib; + rx->callback_param = ¶ms; + pr_info("dma prepare success\n"); //submit cookie_rx = dmaengine_submit(rx); cookie_tx = dmaengine_submit(tx); pr_info("TX cookie=%u RX cookie=%u\n", cookie_tx, cookie_rx); //issue pending - dma_async_issue_pending(pl_dma_chan_rx); - dma_async_issue_pending(pl_dma_chan_tx); + dma_async_issue_pending(dchan_rx); + dma_async_issue_pending(dchan_tx); spi_enable(spi.virt_addr); print_spi_regs(spi.virt_addr); - pr_info("\ndma issue pending comp\n"); - pr_info("\nwait for dma to comp\n"); + pr_info("dma issue pending success\n"); + pr_info("wait for dma to comp\n"); - if (!wait_for_completion_timeout(&cmp_rx, msecs_to_jiffies(5000))) { + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(5000))) { pr_err("rx DMA timeout error!\n"); - dmaengine_terminate_sync(pl_dma_chan_tx); - dmaengine_terminate_sync(pl_dma_chan_rx); - pr_info("\npl dma channels terminated\n"); - return 1; + dmaengine_terminate_sync(dchan_tx); + dmaengine_terminate_sync(dchan_rx); + pr_info("pl dma channels terminated\n"); + ret = 1; } else { - pr_info("\nwait finish\n"); + pr_info("wait success\n"); } - return 0; + //release trans_config + release_trans_config(&trans_config,dchan_tx->device->dev); +trans_config_exit: + dma_release_channel(dchan_tx); + dma_release_channel(dchan_rx); +chan_exit: + return ret; } -static int do_dw_dmac_dac_tx_test(void) +static int do_dw_dac_cy_ib_test(void) { + int ret = 0; + struct transfer_config trans_config; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan; struct dma_slave_config chan_tx_config = {0}; struct dma_async_tx_descriptor *tx; dma_cookie_t cookie_tx; - fill_source_buffer();//fill pattern in source buffer - init_completion(&cmp_tx); + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan = dma_request_chan(&pdev_dac->dev, "tx"); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); + memset(trans_config.buf_des,0,BUF_LEN); + + init_completion(¶ms.done); + params.log = "DAC:inband m2d dma by dw-axi-dmac cb is called"; //mocking jh7110_pwmdac_hw_params mocking_jh7110_pwmdac_hw_params(pwmdac); - //slave config memset(&chan_tx_config, 0, sizeof(chan_tx_config)); chan_tx_config.direction = DMA_MEM_TO_DEV; @@ -828,61 +989,163 @@ static int do_dw_dmac_dac_tx_test(void) chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;// chan_tx_config.dst_maxburst = 16;// chan_tx_config.device_fc = false; - dmaengine_slave_config(dw_dma_chan_dev, &chan_tx_config); + dmaengine_slave_config(dchan, &chan_tx_config); //prepare - tx = dmaengine_prep_dma_cyclic(dw_dma_chan_dev, + tx = dmaengine_prep_dma_cyclic(dchan, trans_config.dma_buf_src, BUF_LEN, BUF_LEN, DMA_MEM_TO_DEV, DMA_CTRL_ACK | DMA_PREP_INTERRUPT ); - tx->callback = dma_complete_func_tx; - tx->callback_param = &cmp_tx; + tx->callback = cb_ib; + tx->callback_param = ¶ms; + pr_info("dma prepare sucess\n"); //submit cookie_tx = dmaengine_submit(tx); pr_info("TX cookie=%u\n", cookie_tx); - dma_async_issue_pending(dw_dma_chan_dev); + dma_async_issue_pending(dchan); + enable_dac(); + // jh7110_pwmdac_set(pwmdac); + dump_pwmdac_regs(pwmdac->base); + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(5000))) { + pr_err("tx DMA timeout error!\n"); + jh7110_pwmdac_stop(pwmdac); + dump_pwmdac_regs(pwmdac->base); + pr_info("pl dma channels terminated\n"); + } else { + jh7110_pwmdac_stop(pwmdac); + pr_info("wait finish\n"); + } + dmaengine_pause(dchan); + msleep(1); + disable_dac(); + dmaengine_terminate_sync(dchan); + //release trans_config + release_trans_config(&trans_config,dchan->device->dev); +trans_config_exit: + dma_release_channel(dchan); +chan_exit: + return ret; +} + +static int do_dw_dac_cy_oob_test(void) +{ + int ret = 0; + struct transfer_config trans_config; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan; + struct dma_slave_config chan_tx_config = {0}; + struct dma_async_tx_descriptor *tx; + dma_cookie_t cookie_tx; + + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan = dma_request_chan(&pdev_dac->dev, "tx"); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + + fill_source_buffer(&trans_config); + memset(trans_config.buf_des,0,BUF_LEN); + + init_completion(¶ms.done); + params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + //mocking jh7110_pwmdac_hw_params + mocking_jh7110_pwmdac_hw_params(pwmdac); + + //slave config + memset(&chan_tx_config, 0, sizeof(chan_tx_config)); + chan_tx_config.direction = DMA_MEM_TO_DEV; + chan_tx_config.dst_addr = PWMDAC_ADDR; + chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;// + chan_tx_config.dst_maxburst = 16;// + chan_tx_config.device_fc = false; + dmaengine_slave_config(dchan, &chan_tx_config); + + //prepare + tx = dmaengine_prep_dma_cyclic(dchan, + trans_config.dma_buf_src, + BUF_LEN, + BUF_LEN, + DMA_MEM_TO_DEV, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT | DMA_OOB_INTERRUPT + ); + tx->callback = cb_oob; + tx->callback_param = ¶ms; + //submit + cookie_tx = dmaengine_submit(tx); + pr_info("TX cookie=%u\n", cookie_tx); + + dma_async_issue_pending(dchan); + enable_dac(); jh7110_pwmdac_set(pwmdac); dump_pwmdac_regs(pwmdac->base); - if (!wait_for_completion_timeout(&cmp_tx, msecs_to_jiffies(5000))) { + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(5000))) { pr_err("tx DMA timeout error!\n"); jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); - dmaengine_terminate_async(dw_dma_chan_dev); - pr_info("\npl dma channels terminated\n"); - return 1; + pr_info("pl dma channels terminated\n"); } else { jh7110_pwmdac_stop(pwmdac); - pr_info("\nwait finish\n"); + pr_info("wait finish\n"); } - return 0; + dmaengine_pause(dchan); + msleep(1); + disable_dac(); + dmaengine_terminate_sync(dchan); + //release trans_config + release_trans_config(&trans_config,dchan->device->dev); +trans_config_exit: + dma_release_channel(dchan); +chan_exit: + return ret; } + static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int output; switch (cmd) { - case USER_DMA_IOCTL_IB_TEST: - output = do_dw_dmac_ib_memcpy_test(); + case USER_DMA_IOCTL_MEM_CPY_IB: + output = do_dw_mem_cp_ib_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; - case USER_DMA_IOCTL_SPI_LOOP_IB:{ - output = do_pl_dmac_ib_spiloopback_test(); + case USER_DMA_IOCTL_SPI_TXRX_IB:{ + output = do_pl08_spi_sg_ib_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; } - case USER_DMA_IOCTL_IIS_LOOP_IB:{ - output = do_dw_dmac_dac_tx_test(); + case USER_DMA_IOCTL_DAC_TX_IB:{ + output = do_dw_dac_cy_ib_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; - } + } + case USER_DMA_IOCTL_DAC_TX_OOB:{ + output = do_dw_dac_cy_oob_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } default: return -ENOTTY; return 0; @@ -892,22 +1155,7 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar static int user_dma_open(struct inode *inode, struct file *file) { - pr_info("\nuser_dma opened\n"); - //use dma_alloc_coherent to allocate memory that dmac can reach - //better use the dev of the dmac to get buffer - //when using the dev of this driver,error will occur - trans_config.buf_src = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); - trans_config.buf_des = dma_alloc_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); - // trans_config.buf_src = dma_alloc_coherent(pl_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_src), GFP_KERNEL); - // trans_config.buf_des = dma_alloc_coherent(pl_dma_chan_tx->device->dev, BUF_LEN, &(trans_config.dma_buf_des), GFP_KERNEL); - if(!trans_config.buf_src && !trans_config.buf_des) - { - pr_err("\nDMAC reachable buffer not initialized\n"); - return -ENODEV; - } - pr_info("\nallocate DMAC reachable buffer success\n"); - memset(trans_config.buf_src,0,BUF_LEN); - memset(trans_config.buf_des,0,BUF_LEN); + pr_info("user_dma open success\n"); return 0; } @@ -915,6 +1163,7 @@ static int user_dma_open(struct inode *inode, struct file *file) static int user_dma_release(struct inode *inode, struct file *file) { pr_info("user_dma released\n"); + return 0; } @@ -924,77 +1173,52 @@ static const struct file_operations user_dma_fops = { .release = user_dma_release, .unlocked_ioctl = user_dma_ioctl, }; -//filter dmac by device name,target for dw-axi-dmac -static bool my_dma_filter(struct dma_chan *chan, void *param) -{ - if (!chan || !chan->device) - return false; - - struct device *dev = chan->device->dev; - const char *target_name = param; - - if (!dev || !dev->of_node) - return false; - const char *node_name = of_node_full_name(dev->of_node); - if (!node_name) { - return false; - } - - return strcmp(node_name, target_name) == 0; -} - -static bool prep_dma_chans(void) -{ - dma_cap_mask_t mask; +// static bool prep_dma_chans(void) +// { - pr_info("start to request for dw axi dma channel\n"); - //dw axi dmac channels - dma_cap_zero(mask); - dma_cap_set(DMA_MEMCPY, mask); - dw_dma_chan_tx = dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); - dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - // dw_dma_chan_dev= dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); - dw_dma_chan_dev = dma_request_chan(&pdev_dac->dev, "tx"); - //PL08 dmac channels - dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - pl_dma_chan_tx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); - pl_dma_chan_rx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); +// dma_cap_zero(mask); +// dma_cap_set(DMA_SLAVE, mask); +// // dw_dma_chan_dev= dma_request_channel(mask, my_dma_filter, DW_AXI_DMAC_NAME); +// dw_dma_chan_dev = dma_request_chan(&pdev_dac->dev, "tx"); +// //PL08 dmac channels +// dma_cap_zero(mask); +// dma_cap_set(DMA_SLAVE, mask); +// pl_dma_chan_tx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); +// pl_dma_chan_rx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); - pr_info("end to request for dma channel\n"); - //check - if (IS_ERR(dw_dma_chan_tx) || IS_ERR(dw_dma_chan_dev)) { - pr_err("Failed to request DMA channel\n"); - return false; - } else { - if(dw_dma_chan_tx && dw_dma_chan_dev && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) - pr_info("Got dw tx channel: %s\n", dma_chan_name(dw_dma_chan_tx)); - pr_info("Got dw mem2dev channel: %s\n", dma_chan_name(dw_dma_chan_dev)); - } - if(IS_ERR(pl_dma_chan_tx) || IS_ERR(pl_dma_chan_rx)) { - pr_err("Failed to request PL08 DMA channel\n"); - return false; - } else { - if(pl_dma_chan_tx && pl_dma_chan_rx && pl_dma_chan_tx->device && pl_dma_chan_tx->device->dev) { - pr_info("Got PL08 tx channel: %s\n", dma_chan_name(pl_dma_chan_tx)); - pr_info("Got PL08 rx channel: %s\n", dma_chan_name(pl_dma_chan_rx)); - } - } - return true; -} - -static void release_dma_chans(void) -{ - //release dma buffer - dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); - dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); - - dma_release_channel(dw_dma_chan_tx); - dma_release_channel(dw_dma_chan_dev); - return; -} +// pr_info("end to request for dma channel\n"); +// //check +// if (IS_ERR(dw_dma_chan_tx) || IS_ERR(dw_dma_chan_dev)) { +// pr_err("Failed to request DMA channel\n"); +// return false; +// } else { +// if(dw_dma_chan_tx && dw_dma_chan_dev && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) +// pr_info("Got dw tx channel: %s\n", dma_chan_name(dw_dma_chan_tx)); +// pr_info("Got dw mem2dev channel: %s\n", dma_chan_name(dw_dma_chan_dev)); +// } +// if(IS_ERR(pl_dma_chan_tx) || IS_ERR(pl_dma_chan_rx)) { +// pr_err("Failed to request PL08 DMA channel\n"); +// return false; +// } else { +// if(pl_dma_chan_tx && pl_dma_chan_rx && pl_dma_chan_tx->device && pl_dma_chan_tx->device->dev) { +// pr_info("Got PL08 tx channel: %s\n", dma_chan_name(pl_dma_chan_tx)); +// pr_info("Got PL08 rx channel: %s\n", dma_chan_name(pl_dma_chan_rx)); +// } +// } +// return true; +// } + +// static void release_dma_chans(void) +// { +// //release dma buffer +// dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); +// dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); + +// dma_release_channel(dw_dma_chan_tx); +// dma_release_channel(dw_dma_chan_dev); +// return; +// } static int __init user_dma_init(void) { @@ -1012,12 +1236,6 @@ static int __init user_dma_init(void) pr_info("dac success\n"); } - if(!prep_dma_chans()) { - pr_err("prep dma channels error\n"); - } else { - pr_info("channel success\n"); - } - // register char device ret = alloc_chrdev_region(&dev_num, 0, 1, DEVICE_NAME); if (ret < 0) { @@ -1037,7 +1255,7 @@ static int __init user_dma_init(void) static void __exit user_dma_exit(void) { - release_dma_chans(); + // release_dma_chans(); device_destroy(user_dma_class, dev_num); class_destroy(user_dma_class); diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index 39339fd85b311397893e4ee4a41c45a1b0e2f939..313bc0fd31d213589a6b2cf86b4ca97d1750e394 100755 GIT binary patch delta 2210 zcmaJ@3rtg27{2GWw?GkCTd?AbuCxW&z)n;YGZ05pVUu$HLGfqA*nw1GzC_Gn#lwsmrMPY}YiY+xCDON> zS$_|$R#TKJtfyVhWVX-F8E`hX(AKVk98}RQ^vAn|e(8RpkLncq;ZAL{GmfG#XWPk` z`~l1Dt^(SMOgX5ro}&Demp<5{)>D*Zk#B3G%}A*#(4FZZQZf1}XA*ENJ(X;052a3oKhl_n=iWSDhv}&Fw}HdTDrHO)ue_jD#o);c4vh)kTvcPOkQR47->F5 z0yTZJ-@M%xxC@yj&N4Ab<7^5S+*La-(i?h?VKpTrqA5 zYue^i$rf(S+Ksu)&pXX|TzBi8El|jF_<}rTdcqGZqmNU`>a!b6;WHACN#BH_vp6<# z0o`#1uZ+y4v%kaJBMq~Cx!~bM9`SG-nNY9blv@P&Bp!-1I`o;arej24Il`ER`vrmN zX@cv53tJ392KXRfF(#9!VPIy$QNp?pGbX#p>N5cM^YL7asT~$Q_C=@=-#;BH1UFB1 zNBaz42zMX5hLQH`>E)Pxp-?Fpfx|K~GFP9DweSCvFDdE+WtVK=9<=8}hV2IpoO}8}!t%kKd>`q=AiE zm``ovH!6Ey$d%p*@!scMDfsh#08C`RN79TriK~^K`S7?q=*kui`?e?K$`=LLN#q?^ zaFwuYX@&Ows(|orTkopp!D|#@zl(KIxiq}DB~iw?)-UD!QVjvmzVQ|Yj@OU z2M`prQ1%QR^U-x z8a)w><@!r#3%;h`LBAV~D-CJ!zefpC4vNA0pwdc+wFh?^<|~3%E586x4B~4BHM)Xt z>(yuiE0WacK6zF|z`aOj8AWHM*q)RCXSX6ry*gbSTOnrZ6*J|E{Kg1@C=>bTME-)v z2ld6kYw<8rp+-EMq-M4Q*6_HO6BR;GFb~ Vh=OEc0q1Z-dIp{LBpygN`~z2o<+lI; delta 1529 zcmY*ZZA@EL7(VB;r-RE!Z7W_d18Ql@m$17Lgb{@{<9eHg;GAfpe~K0qgRpg02Z>n= z?85l54?LNjW(f{uTbPL(9U^lMnc}R;vOp9!wn-Th~sr*v}>h5PEW;=s4ri%Fv@7n7^Rs6qJZ$1YUf!<-mZiFXuDQ zLhyq^&+{jC4_B2R3;57g2pa+~tDP`wRH+>)k*lec9(7~}vrr$ni(f!qn+{s~1s7gJ z`vn)XhD5=oT0^E@KL&t^)2)~fM`~7w8c`GE?XcU2nuZ$f@Y;wRvxnq(`FI$F&`2L^ z0YFvW?CoymfWZx;ehsbC`>epO1HiCOsAKkpBhJ6jA^%3ocP*}Vdwl>%mkfB=Z z{w-HMR&N7Ry`C}rlGHQ0Xm!6-YpjqGF0NzI$rFHyl9Im>XU z<|lHSF{0dAl9W>PnDdGYTQUq9UriUEl$m#4y@xt5LmVla(86W%UP>+Ueoro@Sl17i z&_+}BQloDm4^PVD@HrHJOVp{Hcf~{ppOgfHUtxY`Toz!fggfKY=h7ly$BIl~o>w%} z^rrK?#74(4|E9vOP;K;Ftlk%xKTMx2cP!zy+MaNm*HgE*#O#iaxt_!7aSO5$F{5Q0 z=*5!ZgJTK5v614@gx}aq@fpd$n$wcsj$zuj=JUAUd@7yoOv3N!6pBwv^5`kqZ|}%v zx9RV#5&7NwE{!duZ$NS|jf|w%l1MriuxUGB){E_}?K^h28(llv+FosMsxn&MW~7f3 zk|~`5H9R15Ix8|h2>h!yq=9gh z*z<&}3(7W#tKOmq1X95*ax9N-12T~(z&ZlW0@|r1Tg?X$rzP{|QuKNnVJvgdK^83s zQF_q@@F diff --git a/user_scripts/testtool/tt.c b/user_scripts/testtool/tt.c index fae3fed3b5891..6314578302107 100644 --- a/user_scripts/testtool/tt.c +++ b/user_scripts/testtool/tt.c @@ -15,20 +15,28 @@ enum Command { CMD_UNKNOWN, - CMD_DW_MEMCPY_IB_TEST,//test inband memcpy by dw-axi-dmac - CMD_SPILOOP_TEST, //test dma by PL08 using spi loopback - CMD_SPI_USERDMA_IB + + CMD_DW_MEMCPY_IB_TEST,//USER_DMA: test inband memcpy by dw-axi-dmac + CMD_SPILOOP_TEST, //PL08: test dma by PL08 driver,using spi loopback + CMD_SPI_USERDMA_IB, //USER_DMA: test spi loopback,using duplex dma in user_dma + CMD_DAC_CY_IB, //USER_DMA: test dac tx,using dma in user_dma + CMD_DAC_CY_OOB //USER_DMA: test dac tx,using dma in user_dma }; enum Command parse_command(const char *arg) { if (strcmp(arg, "dw_mem_ib") == 0) return CMD_DW_MEMCPY_IB_TEST; if (strcmp(arg, "spi_driver_loop") == 0) return CMD_SPILOOP_TEST; if (strcmp(arg, "spi_userdma_ib") == 0) return CMD_SPI_USERDMA_IB; + if (strcmp(arg, "dac_cy_ib") == 0) return CMD_DAC_CY_IB; + if (strcmp(arg, "dac_cy_oob") == 0) return CMD_DAC_CY_OOB; return CMD_UNKNOWN; } -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) -#define USER_DMA_IOCTL_SPI_LOOP_IB _IOR('M', 2, int)//test inband spi dma loopback +//ioctls +#define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int) +#define USER_DMA_IOCTL_SPI_TXRX_IB _IOR('M', 2, int)//test inband spi dma loopback +#define USER_DMA_IOCTL_DAC_TX_IB _IOR('M', 3, int)//test inband dac dma-tx +#define USER_DMA_IOCTL_DAC_TX_OOB _IOR('M', 4, int)//test oob dac dma-tx int do_dw_memcpy_ib_test(void) { @@ -41,7 +49,7 @@ int do_dw_memcpy_ib_test(void) perror("open"); return EXIT_FAILURE; } - int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); + int ret = ioctl(fd, USER_DMA_IOCTL_MEM_CPY_IB,&value); if (ret < 0) { perror("ioctl"); close(fd); @@ -152,7 +160,7 @@ int do_spi_userdma_ib_test(void) perror("open"); return EXIT_FAILURE; } - int ret = ioctl(fd, USER_DMA_IOCTL_SPI_LOOP_IB,&value); + int ret = ioctl(fd, USER_DMA_IOCTL_SPI_TXRX_IB,&value); if (ret < 0) { perror("ioctl"); close(fd); @@ -167,6 +175,61 @@ int do_spi_userdma_ib_test(void) close(fd); return 0; } + +int do_dac_dma_tx_ib(void) +{ + const char *dev = "/dev/user_dma"; + int fd; + int value; + + fd = open(dev, O_RDWR); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + int ret = ioctl(fd, USER_DMA_IOCTL_DAC_TX_IB,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("inband dac dma-tx by user_dma executed finish\n"); + if(value==0) { + printf("inband dac dma-tx success!\n"); + } else { + printf("inband dac dma-tx error!\n"); + } + close(fd); + return 0; +} + +int do_dac_dma_tx_oob(void) +{ + const char *dev = "/dev/user_dma"; + int fd; + int value; + + fd = open(dev, O_RDWR); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + int ret = ioctl(fd, USER_DMA_IOCTL_DAC_TX_OOB,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("oob dac dma-tx by user_dma executed finish\n"); + if(value==0) { + printf("oob dac dma-tx success!\n"); + } else { + printf("oob dac dma-tx error!\n"); + } + close(fd); + return 0; +} + int main(int argc, char *argv[]) { int ret = 0; @@ -184,6 +247,14 @@ int main(int argc, char *argv[]) ret = do_spi_userdma_ib_test(); break; } + case CMD_DAC_CY_IB: { + ret = do_dac_dma_tx_ib(); + break; + } + case CMD_DAC_CY_OOB:{ + ret = do_dac_dma_tx_oob(); + break; + } default: printf("Unknown command: %s\n", argv[1]); } From 7710a102219552c1d337b2d2486ab46fd95336a5 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Tue, 16 Sep 2025 03:23:58 -0700 Subject: [PATCH 14/25] fix:register irq handler to oob stage,the handler can finally run in oob stage --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 800bb0725b0f5..8fdaf269ddf91 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "dw-axi-dmac.h" #include "../dmaengine.h" @@ -1242,20 +1243,40 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) /* Disable DMAC interrupts. We'll enable them after processing channels */ axi_dma_irq_disable(chip); + if(dw_axi_dma_oob_capable()){ + pr_info("AXI_DAC:oob capable\n"); + } else { + pr_info("AXI_DAC:oob disable\n"); + } + if(running_oob()) { + pr_info("AXI_DAC:oob\n"); + } else { + pr_info("AXI_DAC:ib\n"); + } + /* Poll, clear and process every channel interrupt status */ for (i = 0; i < dw->hdata->nr_channels; i++) { chan = &dw->chan[i]; status = axi_chan_irq_read(chan); - axi_chan_irq_clear(chan, status); if(dw_axi_dma_oob_capable() && running_oob()) { + pr_info("AXI_DAC:1\n"); if(status & DWAXIDMAC_IRQ_ALL_ERR) { + pr_info("AXI_DAC:2\n"); ret = IRQ_FORWARD; } else if(status & DWAXIDMAC_IRQ_DMA_TRF) { - if(!axi_chan_block_xfer_complete(chan)) + pr_info("AXI_DAC:3\n"); + if(!axi_chan_block_xfer_complete(chan)) { ret = IRQ_FORWARD; + pr_info("AXI_DAC:4\n"); + } else {//only clear irq when process success + axi_chan_irq_clear(chan, status); + pr_info("AXI_DAC:5\n"); + } } } else { + pr_info("AXI_DAC:11\n"); + axi_chan_irq_clear(chan, status); dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", axi_chan_name(chan), i, status); if (status & DWAXIDMAC_IRQ_ALL_ERR) @@ -1541,8 +1562,9 @@ static int axi_req_irqs(struct platform_device *pdev, struct axi_dma_chip *chip) chip->irq[i] = platform_get_irq(pdev, i); if (chip->irq[i] < 0) return chip->irq[i]; - ret = devm_request_irq(chip->dev, chip->irq[i], dw_axi_dma_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip); + // ret = devm_request_irq(chip->dev, chip->irq[i], dw_axi_dma_interrupt, + // IRQF_SHARED, KBUILD_MODNAME, chip); + ret = request_irq(chip->irq[i], dw_axi_dma_interrupt,IRQF_SHARED | IRQF_OOB, KBUILD_MODNAME, chip); if (ret < 0) return ret; } From d04520a4fa732287d045d72b6a34f1681c65ee14 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Wed, 17 Sep 2025 04:03:37 -0700 Subject: [PATCH 15/25] fix:fix the problem that oob cyclic dma dont continue after the first period --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 59 +++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 8fdaf269ddf91..fbe982efdf5ca 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1152,7 +1152,7 @@ static noinline void axi_chan_handle_err(struct axi_dma_chan *chan, u32 status) static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) { int count = atomic_read(&chan->descs_allocated); - struct axi_dma_hw_desc *hw_desc; + struct axi_dma_hw_desc *hw_desc;// struct axi_dma_desc *desc; struct virt_dma_desc *vd; unsigned long flags; @@ -1176,14 +1176,44 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) ret = false; goto out; } - dmaengine_desc_get_callback(&vd->tx,&cb);//get callback - if(dmaengine_desc_callback_valid(&cb)) { - vchan_unlock_irqrestore(&chan->vc, flags); - dmaengine_desc_callback_invoke(&cb,NULL); - vchan_lock_irqsave(&chan->vc, flags); + + if (chan->cyclic) { + desc = vd_to_axi_desc(vd); + if (desc) { + llp = lo_hi_readq(chan->chan_regs + CH_LLP); + for (i = 0; i < count; i++) { + hw_desc = &desc->hw_desc[i]; + if (hw_desc->llp == llp) { + axi_chan_irq_clear(chan, hw_desc->lli->status_lo); + hw_desc->lli->ctl_hi |= CH_CTL_H_LLI_VALID; + desc->completed_blocks = i; + + if (((hw_desc->len * (i + 1)) % desc->period_len) == 0) { + //1 cyclic period is over,time to call callback + dmaengine_desc_get_callback(&vd->tx,&cb); + if(dmaengine_desc_callback_valid(&cb)) { + vchan_unlock_irqrestore(&chan->vc, flags); + dmaengine_desc_callback_invoke(&cb,NULL); + vchan_lock_irqsave(&chan->vc, flags); + } + } + break; + } + } + axi_chan_enable(chan); + ret = true; + goto out; + } + } else { + dmaengine_desc_get_callback(&vd->tx,&cb);//get callback + if(dmaengine_desc_callback_valid(&cb)) { + vchan_unlock_irqrestore(&chan->vc, flags); + dmaengine_desc_callback_invoke(&cb,NULL); + vchan_lock_irqsave(&chan->vc, flags); + } + ret = true; + goto out; } - ret = true; - goto out; } //ib:we don't care about ret in ib context,for we won't forward the irq again @@ -1279,10 +1309,17 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) axi_chan_irq_clear(chan, status); dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", axi_chan_name(chan), i, status); - if (status & DWAXIDMAC_IRQ_ALL_ERR) + + if (status & DWAXIDMAC_IRQ_ALL_ERR) { axi_chan_handle_err(chan, status); - else if (status & DWAXIDMAC_IRQ_DMA_TRF) + pr_info("AXI_DAC:12\n"); + } + + else if (status & DWAXIDMAC_IRQ_DMA_TRF) { axi_chan_block_xfer_complete(chan); + pr_info("AXI_DAC:13\n"); + } + } } @@ -1301,7 +1338,7 @@ static int dma_chan_terminate_all(struct dma_chan *dchan) LIST_HEAD(head); axi_chan_disable(chan); - + pr_info("dma_chan_terminate_all is called\n"); ret = readl_poll_timeout_atomic(chan->chip->regs + DMAC_CHEN, val, !(val & chan_active), 1000, 50000); if (ret == -ETIMEDOUT) From 2070e5bf2a242e38f79a41ae7473fd572e21ebb9 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Thu, 18 Sep 2025 03:37:36 -0700 Subject: [PATCH 16/25] feat:enable dma_pulse_oob() path to trigger sg descriptors --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 107 +++--- my_driver/user_dma.c | 333 ++++++++++++++++-- user_scripts/testtool/tt | Bin 13368 -> 13448 bytes user_scripts/testtool/tt.c | 86 ++++- 4 files changed, 447 insertions(+), 79 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index fbe982efdf5ca..6d919cabd7b3d 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -520,11 +520,17 @@ static void dma_chan_issue_pending(struct dma_chan *dchan) static int dw_axi_dma_pulse_oob(struct dma_chan *dchan) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + struct virt_dma_desc *vd; unsigned long flags; int ret = -EIO; + pr_info("pulse oob called\n"); vchan_lock_irqsave(&chan->vc, flags); + //todo:get the first desc(should be oob) in vc,and start + vd = vchan_next_desc(&chan->vc); + chan->desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd));//the desc that is in progress if (chan->desc && vchan_oob_pulsed(&chan->desc->vd)) { + pr_info("pulse:1\n"); axi_chan_block_xfer_start(chan,chan->desc); ret = 0; } @@ -839,6 +845,11 @@ dw_axi_dma_chan_prep_cyclic(struct dma_chan *dchan, dma_addr_t dma_addr, total_segments = num_periods * num_segments; + pr_info("prep_cyclic: buf_len=%zu, period_len=%zu\n",buf_len, period_len); + pr_info("prep_cyclic: num_periods=%u, axi_block_len=%zu, num_segments=%u, segment_len=%u, total_segments=%u\n", + num_periods, axi_block_len, num_segments, segment_len, total_segments); + + desc = axi_desc_alloc(total_segments); if (unlikely(!desc)) goto err_desc_get; @@ -1162,7 +1173,7 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) bool ret = true; vchan_lock_irqsave(&chan->vc, flags); - + // pr_info("AXI_DMA:descs_allocated =%d\n",count); if(running_oob()) {//oob if (unlikely(axi_chan_is_hw_enable(chan))) { ret = false;//caught bug,no operation in oob,forward to inband @@ -1179,31 +1190,31 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) if (chan->cyclic) { desc = vd_to_axi_desc(vd); - if (desc) { - llp = lo_hi_readq(chan->chan_regs + CH_LLP); - for (i = 0; i < count; i++) { - hw_desc = &desc->hw_desc[i]; - if (hw_desc->llp == llp) { - axi_chan_irq_clear(chan, hw_desc->lli->status_lo); - hw_desc->lli->ctl_hi |= CH_CTL_H_LLI_VALID; - desc->completed_blocks = i; - - if (((hw_desc->len * (i + 1)) % desc->period_len) == 0) { - //1 cyclic period is over,time to call callback - dmaengine_desc_get_callback(&vd->tx,&cb); - if(dmaengine_desc_callback_valid(&cb)) { - vchan_unlock_irqrestore(&chan->vc, flags); - dmaengine_desc_callback_invoke(&cb,NULL); - vchan_lock_irqsave(&chan->vc, flags); + if (desc) { + llp = lo_hi_readq(chan->chan_regs + CH_LLP); + for (i = 0; i < count; i++) { + hw_desc = &desc->hw_desc[i]; + if (hw_desc->llp == llp) { + axi_chan_irq_clear(chan, hw_desc->lli->status_lo); + hw_desc->lli->ctl_hi |= CH_CTL_H_LLI_VALID; + desc->completed_blocks = i; + + if (((hw_desc->len * (i + 1)) % desc->period_len) == 0) { + //1 cyclic period is over,time to call callback + dmaengine_desc_get_callback(&vd->tx,&cb); + if(dmaengine_desc_callback_valid(&cb)) { + vchan_unlock_irqrestore(&chan->vc, flags); + dmaengine_desc_callback_invoke(&cb,NULL); + vchan_lock_irqsave(&chan->vc, flags); + } } + break; } - break; } + axi_chan_enable(chan); + ret = true; + goto out; } - axi_chan_enable(chan); - ret = true; - goto out; - } } else { dmaengine_desc_get_callback(&vd->tx,&cb);//get callback if(dmaengine_desc_callback_valid(&cb)) { @@ -1211,6 +1222,20 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) dmaengine_desc_callback_invoke(&cb,NULL); vchan_lock_irqsave(&chan->vc, flags); } + /* Remove the completed descriptor from issued list before completing */ + list_del(&vd->node); + //complete the desc manually + dma_cookie_complete(&vd->tx); + list_add_tail(&vd->node, &(chan->vc.desc_completed)); + //clear chan->desc,which is set at pulse_oob + chan->desc = NULL; + //if the next vd is oob,continue to execute + vd = vchan_next_desc(&chan->vc); + desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); + if(vd && vchan_oob_pulsed(vd)) { + chan->desc = desc; + axi_chan_block_xfer_start(chan,chan->desc); + } ret = true; goto out; } @@ -1254,6 +1279,8 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) /* Remove the completed descriptor from issued list before completing */ list_del(&vd->node); vchan_cookie_complete(vd); + /* Submit queued descriptors after processing the completed ones */ + axi_chan_start_first_queued(chan); } out: @@ -1273,16 +1300,16 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) /* Disable DMAC interrupts. We'll enable them after processing channels */ axi_dma_irq_disable(chip); - if(dw_axi_dma_oob_capable()){ - pr_info("AXI_DAC:oob capable\n"); - } else { - pr_info("AXI_DAC:oob disable\n"); - } - if(running_oob()) { - pr_info("AXI_DAC:oob\n"); - } else { - pr_info("AXI_DAC:ib\n"); - } + // if(dw_axi_dma_oob_capable()){ + // pr_info("AXI_DMA:oob capable\n"); + // } else { + // pr_info("AXI_DMA:oob disable\n"); + // } + // if(running_oob()) { + // pr_info("AXI_DMA:oob\n"); + // } else { + // pr_info("AXI_DMA:ib\n"); + // } /* Poll, clear and process every channel interrupt status */ for (i = 0; i < dw->hdata->nr_channels; i++) { @@ -1290,34 +1317,34 @@ static irqreturn_t dw_axi_dma_interrupt(int irq, void *dev_id) status = axi_chan_irq_read(chan); if(dw_axi_dma_oob_capable() && running_oob()) { - pr_info("AXI_DAC:1\n"); + // pr_info("AXI_DMA:1\n"); if(status & DWAXIDMAC_IRQ_ALL_ERR) { - pr_info("AXI_DAC:2\n"); + // pr_info("AXI_DMA:2\n"); ret = IRQ_FORWARD; } else if(status & DWAXIDMAC_IRQ_DMA_TRF) { - pr_info("AXI_DAC:3\n"); + // pr_info("AXI_DMA:3\n"); if(!axi_chan_block_xfer_complete(chan)) { ret = IRQ_FORWARD; - pr_info("AXI_DAC:4\n"); + // pr_info("AXI_DMA:4\n"); } else {//only clear irq when process success axi_chan_irq_clear(chan, status); - pr_info("AXI_DAC:5\n"); + // pr_info("AXI_DMA:5\n"); } } } else { - pr_info("AXI_DAC:11\n"); + // pr_info("AXI_DMA:11\n"); axi_chan_irq_clear(chan, status); dev_vdbg(chip->dev, "%s %u IRQ status: 0x%08x\n", axi_chan_name(chan), i, status); if (status & DWAXIDMAC_IRQ_ALL_ERR) { axi_chan_handle_err(chan, status); - pr_info("AXI_DAC:12\n"); + // pr_info("AXI_DMA:12\n"); } else if (status & DWAXIDMAC_IRQ_DMA_TRF) { axi_chan_block_xfer_complete(chan); - pr_info("AXI_DAC:13\n"); + // pr_info("AXI_DMA:13\n"); } } diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index d4cbfc2fa5e1f..7c80c9fbbad0f 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -501,7 +501,7 @@ static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) //end of pwmdac #define DEVICE_NAME "user_dma" -#define BUF_LEN 4096 +#define BUF_LEN 4096*3 #define DW_AXI_DMAC_NAME "dma-controller@16050000" #define PL08_DMAC_NAME "dma-controller@16008000" @@ -511,10 +511,12 @@ static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) #define PWMDAC_ADDR 0x100b0000 //USER_DMA_IOCTL___ -#define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac -#define USER_DMA_IOCTL_SPI_TXRX_IB _IOR('M', 2, int)//test inband spi dma loopback -#define USER_DMA_IOCTL_DAC_TX_IB _IOR('M', 3, int)//test inband dac dma-tx -#define USER_DMA_IOCTL_DAC_TX_OOB _IOR('M', 4, int)//test oob dac dma-tx +#define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac +#define USER_DMA_IOCTL_SPI_TXRX_IB _IOR('M', 2, int)//test inband spi dma loopback +#define USER_DMA_IOCTL_DACcy_TX_IB _IOR('M', 3, int)//test inband dac cyclic dma-tx +#define USER_DMA_IOCTL_DACcy_TX_OOB _IOR('M', 4, int)//test oob dac cyclic dma tx +#define USER_DMA_IOCTL_DACsg_TX_IB _IOR('M', 5, int)//test inband dac dma sg tx +#define USER_DMA_IOCTL_DACsg_TX_OOB _IOR('M', 6, int)//test oob dac dma sg tx struct transfer_config { //bus addr that dmac can use dma_addr_t dma_buf_src; @@ -526,7 +528,10 @@ struct transfer_config { struct my_cb_param { const char *log; + int target_cnt; + int cnt; struct completion done; // 用于同步的 completion + struct dma_chan *dchan; }; struct spi_ctrl { @@ -561,20 +566,24 @@ static struct spi_ctrl spi; static void cb_ib(void *param) { struct my_cb_param *params = param; - complete(¶ms->done); + params->cnt = params->cnt + 1; + if(params->cnt == params->target_cnt) + complete(¶ms->done); pr_info("%s\n",params->log); + pr_info("cnt = %d,target_cnt = %d\n",params->cnt,params->target_cnt); return; } static void cb_oob(void *param) { - if(param == NULL) - pr_info("oob param is NULL\n"); struct my_cb_param *params = param; - complete(¶ms->done); + params->cnt = params->cnt + 1; + if(params->cnt == params->target_cnt) + complete(¶ms->done); if(running_oob()) { pr_info("%s\n",params->log); pr_info("running oob\n"); + pr_info("cnt = %d,target_cnt = %d\n",params->cnt,params->target_cnt); } return; } @@ -668,7 +677,7 @@ static bool enable_dac(void) pr_err("failed to deassert pwmdac apb reset\n"); return false; } - pr_info("pwmdac clocks enabled, reset released\n"); + pr_info("pwmdac enabled\n"); return true; } static void disable_dac(void) @@ -677,7 +686,7 @@ static void disable_dac(void) clk_bulk_disable_unprepare(ARRAY_SIZE(pwmdac->clks), pwmdac->clks); - pr_info("pwmdac clocks disabled, reset asserted\n"); + pr_info("pwmdac disabled\n"); } static bool fetch_dac_addr(void) { @@ -734,7 +743,6 @@ static bool my_dma_filter(struct dma_chan *chan, void *param) return strcmp(node_name, target_name) == 0; } - static bool allocate_trans_config(struct transfer_config *trans_config,struct device *dev) { trans_config->buf_src = dma_alloc_coherent(dev, BUF_LEN, &(trans_config->dma_buf_src), GFP_KERNEL); @@ -789,7 +797,8 @@ static int do_dw_mem_cp_ib_test(void) init_completion(¶ms.done); params.log = "MEM:inband memcpy by dw-axi-dmac cb is called"; - + params.cnt = 0; + params.target_cnt = 1; //prepare tx = dmaengine_prep_dma_memcpy(dchan, trans_config.dma_buf_src , @@ -809,7 +818,7 @@ static int do_dw_mem_cp_ib_test(void) //wait for dma to comp pr_info("wait for dma to comp\n"); wait_for_completion(¶ms.done); - pr_info("wait finish\n"); + pr_info("wait success\n"); //check the pattern in dest buffer ret = (check_dest_buffer(&trans_config))?(0):(1); @@ -869,7 +878,8 @@ static int do_pl08_spi_sg_ib_test(void) // ini params init_completion(¶ms.done); params.log = "SPI:inband spi-rx dma callback by PL08-dmac is called"; - + params.cnt = 0; + params.target_cnt = 1; //config dma channel //tx chan_tx_config.direction = DMA_MEM_TO_DEV; @@ -956,7 +966,10 @@ static int do_dw_dac_cy_ib_test(void) struct dma_chan *dchan; struct dma_slave_config chan_tx_config = {0}; struct dma_async_tx_descriptor *tx; + size_t xfer_len = 1024; dma_cookie_t cookie_tx; + struct dma_tx_state state; + enum dma_status status; //get channel dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); @@ -975,12 +988,14 @@ static int do_dw_dac_cy_ib_test(void) goto trans_config_exit; } fill_source_buffer(&trans_config); - memset(trans_config.buf_des,0,BUF_LEN); init_completion(¶ms.done); - params.log = "DAC:inband m2d dma by dw-axi-dmac cb is called"; - + params.log = "DAC:inband m2d dma by dw-axi-dmac cb is called"; + params.cnt = 0; + params.target_cnt = 2*BUF_LEN/xfer_len; + pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params + enable_dac(); mocking_jh7110_pwmdac_hw_params(pwmdac); //slave config memset(&chan_tx_config, 0, sizeof(chan_tx_config)); @@ -995,37 +1010,62 @@ static int do_dw_dac_cy_ib_test(void) tx = dmaengine_prep_dma_cyclic(dchan, trans_config.dma_buf_src, BUF_LEN, - BUF_LEN, + xfer_len, DMA_MEM_TO_DEV, DMA_CTRL_ACK | DMA_PREP_INTERRUPT ); tx->callback = cb_ib; tx->callback_param = ¶ms; + pr_info("dma prepare sucess\n"); //submit cookie_tx = dmaengine_submit(tx); pr_info("TX cookie=%u\n", cookie_tx); dma_async_issue_pending(dchan); - enable_dac(); + // jh7110_pwmdac_set(pwmdac); dump_pwmdac_regs(pwmdac->base); - if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(5000))) { + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); pr_info("pl dma channels terminated\n"); } else { jh7110_pwmdac_stop(pwmdac); - pr_info("wait finish\n"); + pr_info("wait success\n"); } dmaengine_pause(dchan); - msleep(1); disable_dac(); - dmaengine_terminate_sync(dchan); + + + msleep(10); + // dmaengine_terminate_sync(dchan); //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: + status = dmaengine_tx_status(dchan,cookie_tx, &state); + + pr_info("DMA status raw: %d\n", status); + + /* 打印每种状态标志 */ + if (status & DMA_COMPLETE) + pr_info(" DMA_COMPLETE\n"); + if (status & DMA_PAUSED) + pr_info(" DMA_PAUSED\n"); + if (status & DMA_ERROR) + pr_info(" DMA_ERROR\n"); + if (status & DMA_IN_PROGRESS) + pr_info(" DMA_IN_PROGRESS\n"); + + /* 打印 dma_tx_state 内容 */ + pr_info("DMA residue: %u\n", state.residue); + + if (status == DMA_PAUSED) { + pr_info("dchan status paused\n"); + + } + dmaengine_terminate_async(dchan); dma_release_channel(dchan); chan_exit: return ret; @@ -1041,8 +1081,10 @@ static int do_dw_dac_cy_oob_test(void) struct dma_chan *dchan; struct dma_slave_config chan_tx_config = {0}; struct dma_async_tx_descriptor *tx; + size_t xfer_len = 1024; dma_cookie_t cookie_tx; - + struct dma_tx_state state; + enum dma_status status; //get channel dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); @@ -1062,12 +1104,14 @@ static int do_dw_dac_cy_oob_test(void) } fill_source_buffer(&trans_config); - memset(trans_config.buf_des,0,BUF_LEN); - + //setting params init_completion(¶ms.done); - params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; - + params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + params.cnt = 0; + params.target_cnt = 2*BUF_LEN/xfer_len; + pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params + enable_dac(); mocking_jh7110_pwmdac_hw_params(pwmdac); //slave config @@ -1083,7 +1127,7 @@ static int do_dw_dac_cy_oob_test(void) tx = dmaengine_prep_dma_cyclic(dchan, trans_config.dma_buf_src, BUF_LEN, - BUF_LEN, + xfer_len, DMA_MEM_TO_DEV, DMA_CTRL_ACK | DMA_PREP_INTERRUPT | DMA_OOB_INTERRUPT ); @@ -1094,25 +1138,234 @@ static int do_dw_dac_cy_oob_test(void) pr_info("TX cookie=%u\n", cookie_tx); dma_async_issue_pending(dchan); + + jh7110_pwmdac_set(pwmdac); + dump_pwmdac_regs(pwmdac->base); + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { + pr_err("tx DMA timeout error!\n"); + jh7110_pwmdac_stop(pwmdac); + dump_pwmdac_regs(pwmdac->base); + pr_info("pl dma channels terminated\n"); + } else { + jh7110_pwmdac_stop(pwmdac); + pr_info("wait success\n"); + } + disable_dac(); + + + dmaengine_pause(dchan); + msleep(1); + dmaengine_terminate_sync(dchan); + //release trans_config + release_trans_config(&trans_config,dchan->device->dev); +trans_config_exit: + status = dmaengine_tx_status(dchan,cookie_tx, &state); + if (status == DMA_PAUSED) + dmaengine_terminate_async(dchan); + dma_release_channel(dchan); +chan_exit: + return ret; +} + +static int do_dw_dac_sg_ib_test(void) +{ + int ret = 0; + struct transfer_config trans_config; + struct scatterlist sg_tx[1]; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan; + struct dma_slave_config chan_tx_config = {0}; + struct dma_async_tx_descriptor *tx; + size_t xfer_len = 4096; + dma_cookie_t cookie_tx; + struct dma_tx_state state; + enum dma_status status; + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan = dma_request_chan(&pdev_dac->dev, "tx"); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); + //init scatter list + sg_init_table(sg_tx, 1); + sg_init_one(&sg_tx[0], trans_config.buf_src, xfer_len); + + sg_dma_address(&sg_tx[0]) = trans_config.dma_buf_src; + sg_dma_len(&sg_tx[0]) = xfer_len; + + //setting params + init_completion(¶ms.done); + params.log = "DAC:ib m2d dma by dw-axi-dmac cb is called"; + params.cnt = 0; + params.target_cnt = 1; + pr_info("target_cnt:%d\n",params.target_cnt); + //mocking jh7110_pwmdac_hw_params enable_dac(); + mocking_jh7110_pwmdac_hw_params(pwmdac); + + //slave config + memset(&chan_tx_config, 0, sizeof(chan_tx_config)); + chan_tx_config.direction = DMA_MEM_TO_DEV; + chan_tx_config.dst_addr = PWMDAC_ADDR; + chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;// + chan_tx_config.dst_maxburst = 16;// + chan_tx_config.device_fc = false; + dmaengine_slave_config(dchan, &chan_tx_config); + + //prepare dma desc + tx = dmaengine_prep_slave_sg(dchan, + sg_tx, + 1, + DMA_MEM_TO_DEV, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK + ); + tx->callback = cb_ib; + tx->callback_param = ¶ms; + //submit + cookie_tx = dmaengine_submit(tx); + pr_info("TX cookie=%u\n", cookie_tx); + + dma_async_issue_pending(dchan); + jh7110_pwmdac_set(pwmdac); dump_pwmdac_regs(pwmdac->base); - if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(5000))) { + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); pr_info("pl dma channels terminated\n"); } else { jh7110_pwmdac_stop(pwmdac); - pr_info("wait finish\n"); + pr_info("wait success\n"); } + disable_dac(); + dmaengine_pause(dchan); msleep(1); + dmaengine_terminate_sync(dchan); + //release trans_config + release_trans_config(&trans_config,dchan->device->dev); +trans_config_exit: + status = dmaengine_tx_status(dchan,cookie_tx, &state); + if (status == DMA_PAUSED) + dmaengine_terminate_async(dchan); + dma_release_channel(dchan); +chan_exit: + return ret; +} + +static int do_dw_dac_sg_oob_test(void) +{ + int ret = 0; + struct transfer_config trans_config; + struct scatterlist sg_tx[1]; + struct my_cb_param params; + + dma_cap_mask_t mask; + struct dma_chan *dchan; + struct dma_slave_config chan_tx_config = {0}; + struct dma_async_tx_descriptor *tx; + size_t xfer_len = 4096; + dma_cookie_t cookie_tx; + struct dma_tx_state state; + enum dma_status status; + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan = dma_request_chan(&pdev_dac->dev, "tx"); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); + //init scatter list + sg_init_table(sg_tx, 1); + sg_init_one(&sg_tx[0], trans_config.buf_src, xfer_len); + + sg_dma_address(&sg_tx[0]) = trans_config.dma_buf_src; + sg_dma_len(&sg_tx[0]) = xfer_len; + + //setting params + init_completion(¶ms.done); + params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + params.cnt = 0; + params.target_cnt = 1; + pr_info("target_cnt:%d\n",params.target_cnt); + //mocking jh7110_pwmdac_hw_params + enable_dac(); + mocking_jh7110_pwmdac_hw_params(pwmdac); + + //slave config + memset(&chan_tx_config, 0, sizeof(chan_tx_config)); + chan_tx_config.direction = DMA_MEM_TO_DEV; + chan_tx_config.dst_addr = PWMDAC_ADDR; + chan_tx_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;// + chan_tx_config.dst_maxburst = 16;// + chan_tx_config.device_fc = false; + dmaengine_slave_config(dchan, &chan_tx_config); + + //prepare dma desc + tx = dmaengine_prep_slave_sg(dchan, + sg_tx, + 1, + DMA_MEM_TO_DEV, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK | DMA_OOB_INTERRUPT | DMA_OOB_PULSE + ); + tx->callback = cb_oob; + tx->callback_param = ¶ms; + //submit + cookie_tx = dmaengine_submit(tx); + pr_info("TX cookie=%u\n", cookie_tx); + + //trigger the tranfer by pulse_oob + dma_async_issue_pending(dchan);//oob desc will be filted here + dma_pulse_oob(dchan);//real trigger + + jh7110_pwmdac_set(pwmdac); + dump_pwmdac_regs(pwmdac->base); + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { + pr_err("tx DMA timeout error!\n"); + jh7110_pwmdac_stop(pwmdac); + dump_pwmdac_regs(pwmdac->base); + pr_info("pl dma channels terminated\n"); + } else { + jh7110_pwmdac_stop(pwmdac); + pr_info("wait success\n"); + } disable_dac(); + + dmaengine_pause(dchan); + msleep(1); dmaengine_terminate_sync(dchan); //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: + status = dmaengine_tx_status(dchan,cookie_tx, &state); + if (status == DMA_PAUSED) + dmaengine_terminate_async(dchan); dma_release_channel(dchan); chan_exit: return ret; @@ -1134,18 +1387,30 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar return -EFAULT; break; } - case USER_DMA_IOCTL_DAC_TX_IB:{ + case USER_DMA_IOCTL_DACcy_TX_IB:{ output = do_dw_dac_cy_ib_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; } - case USER_DMA_IOCTL_DAC_TX_OOB:{ + case USER_DMA_IOCTL_DACcy_TX_OOB:{ output = do_dw_dac_cy_oob_test(); if (copy_to_user((int __user *)arg, &output, sizeof(output))) return -EFAULT; break; } + case USER_DMA_IOCTL_DACsg_TX_IB:{ + output = do_dw_dac_sg_ib_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } + case USER_DMA_IOCTL_DACsg_TX_OOB:{ + output = do_dw_dac_sg_oob_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } default: return -ENOTTY; return 0; diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index 313bc0fd31d213589a6b2cf86b4ca97d1750e394..79e33fc4293a4f0429f5221ba2f51fe7ee192d14 100755 GIT binary patch delta 2786 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 Date: Thu, 18 Sep 2025 04:17:02 -0700 Subject: [PATCH 17/25] refactor:reorganize test args and its callback --- user_scripts/testtool/tt | Bin 13448 -> 13616 bytes user_scripts/testtool/tt.c | 92 ++++++++++++++++++------------------- 2 files changed, 44 insertions(+), 48 deletions(-) diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index 79e33fc4293a4f0429f5221ba2f51fe7ee192d14..daf345cde4c5c2508da8281088154d643113d031 100755 GIT binary patch literal 13616 zcmeHOeRNdEb)Wr|z&1!;h(wIdq7NH$qD5c~*m2ED+9x3g2~`p{`1tr~_4Y|xyxLvu zhb{R45)zA$ni6c;UYgKA6!TFUJJck>Ax`ARU}3i=4mk<5O#(&2p*=Jx4YkRsi+bnH z+R}%0CPD`bQCP_Bq?E@qD!mRFCl)kPg8ZGDGG=ef zfEQ)JUjRH8jWx17gZ{h>_^J%}BN=cS{^|JF0A2up#`Hb_P9q5Ar{FK0p9eGGVFg#m zc{P-k1aTtKh*(BMF&yy+V=bc8_6!Njkw_>)!tq!XDxxv3^bEzt7Oy`*+U54B93%da z6ble35Q@qq6qbXaD0O3L~iv*V{)XirXmmu%8lOUfXwRB*07G6Ay&;0>rAp=8oy>G zwoULG2SpmUPWbD8;S~sH3;8DGX`=P?9>BO}_2yJP&Qmx&9pdqv!{;%?Jv2}u%+H$!{4Cdh+kofed~U%1llwVqz!z}+ z^9H<);}Zt_#TksxH3Qzs^+_qK$2h@qj{(PdGR$#0{qskF;-FK5r{-g**{;F)5G(pS zHTWG0!hZ5OPM_r|PLOwMaQYm;v_OMvpZ}#AJPVaUuF&B4Os3Ut4L(hyzehn7+75_KX3$npM`rhaztz-ttgZB%| zqdVGKEi;G%3|V=Gp}eEjP;V&jXff0q$~$C3y`j9rXQ)q=x65U@_VFvk-DN7C{a&(| zkfB7eD^cm{-%@pVr8KyoB<^!$WtpWNqhwaq*jM*oeJ#$(!c?d2P12FKzdTLz#QDy+rxA&)-#>f`hl-F&MbEi z{rnTlv6mBxE$?yt^{8K#TW~%P9_J40_`1F-E3uC!#;9%I(F2daFv?gaYI>7bCd6xr zszP#=3^$p5v>)q7x;pN?oCMpx?~K>)ZW<8sAVh&*)PA*K;?Z&7{~M{+X00Phm?itZ zyYKkItyd=Y{6<=Bvog&@1j^$tRwYJR*%pWLSV7{-#L5dMp`dklla%|3bvSH}UGNEB z=o|Cj0rmg>A0wxiZoHOO>Z@mCAEp8}bx?C9Sbp zj~1KVLy6gKb!3~3GM)UT%Jd?5o%|P->BTUV&(c=*oXN~I0akl{flT)`Uzr#=t1>O7 zQ2*?n5&Df^-P6P2e7qtktgwlVL6%sg#i zHSeF1XYo21-%~2jeNRC71M1`4NybwgRe5?IPvreBV)-+GzR5)W^ynF{UGLsZ3v8pfbI< z3YqTtp>{;&uh9_|f2i^lyih)-@;u>#^7m;QlSec2yx0Ww-$S0Z3K-w-t2`6sP=1s8 z7&*dtu6#q~S#*!eQ+^bA&O4&U=!2;k9eG1#y6-9Q_idGFF>n}powg#rmYJylR^qpi zsk{Ql_jQ%&#pO_bjry4PcZ}(t19Lh~U&>nuv(CeVj=ts7iLG_pr^DCwUwwb#)a74{ zJF@zF9VXM3>B-c5uzv0s*dLI}ZL@5xLs?mUn_`2>BU}3k%{%Nxn~pwjat|gSePt-| z`NNym9~vkeux^C$dsVU*=OtQ)`m_25lMegRO;qFI!{4Z?O?-3UDrlS=mMp~%Rl@@s zN8?ua(L6i(T7NP=ln@TrCJGNx-FbT@Tk&j%y=UbXAv?eDE$e2m{|2*lShsdFM*I6s z9!C~&7xwfMTTvowZ0`7V$Fwcw4m)vg5gvna*zR`di73g@^C!E_}6rbK(B1?!tjH(DKUU`~8k>R<~5O zmvkIVSQA;&z;S!uyH;Wu%_3vlKf2ClHyI+j`^8#1{x6sW(?LE@-UH>AYyxH9-#eJx zCDH33<$RJ2Bj5c|xH7gsX7BpQU%6rbhH0sJb00+A$WH1@{IX5>=~3qEgh0z(eD;)A zLVG)u_6BW&z;%>({cDPjY_|!1j_w29k-t*>_1lD(VWvHoFy*r6SW6{b0^+cLRGEZ1 zdnh4S*@S{i_l`ey-hLU{>t##@B1L2KH;D6_J=nbo$kB)kL-ZMAyl?9FMK6>wOs z=KTp9F#Y!RvHYUR3r*#|VV~J=gT8fj)Ssu(=$O9ny9E>XUViLS?YRBw!hzFUS<5FL zF?s&BI(P4vo9NXW*)rz?TM>9RkL53&WKWiI|FGY@!6eWp%;&82FJ*hQI7J`oD7g06 z1mk@CHOBe9*B+QQ;I@By@73DN^_LzWcdUQNEzO)p4h^^l-x%EDncMXEw$q8)M8eve zoNpbQ^EcNogv(>YF>}`ifBA;t4fDZoZ_gs1{OqE5RE~(gb}zj5DC<3tYz+u9*z67Z zoUk&K!d*_eQp>oxFpHZ=zJrtEII*A;nA?)83={K&9MG-Hg`FZ z!IT!bf1SSCN_u~4YpHslS8_rJOJbcjY%QI>wzYKi+SXwFLe0+4+!&09K|j@)0Z%pJ zSKUWjZ_*cKymk61_eAd}K!8?0HUA0)frb2w8 zUaVQ;5wzv<>c$4KPN)~3SX1wzeW6LKU$#zcs1pQ_xa!FiUL!O#lvN2NQ^4r(6e~hv zax~`D2Q!4F@3|6)8VMFAzUM@^2Sk4}qd`1ELq&acxzNBDE!DLRjrD6Q8mrgTHc*v~ z#U)EhqZ^&YQDy+`ioS^dS-8`zmD*u_;PjYCp90QkN9)OY~k}0+)y0FK}N{HhdVIbS6-OTYlCr$%;?z4=y+B zr{a%Zd`N$)zi4ZEeh^;yenb`p|Bt!|}TBXDa3ZjHdL5zvmn&1OdJ9;wz2 z^V&U5#IzD#^KY17@o>YW-HT19sNEaY)?>enGR~EpT;lhK`B>(14wpG4EOVEk{`0(? z&+F$J>i_5ZWQan0`2b=+oA`iWzfSUce1RC}esE8gfA%H(GX$@N=OfQ$^L<&oP7@r* z@2EIFxLw}KH;oZL$cf=z^4r`o?jd9Q_?Z~>{&$k~55`x4uJdvm_czJQDPFwn;q`yu zWgN#;$NtP2;GraR8|EGRbIH{Aa%|ux(ga@}swyfTb}m@k91q6g&WBt}U8N<9<4S4q z<|U=B(xvw^^d_z#2281Q23lSEtq#A->v0R|!3(0Pu)vpTj8hE^{%r)~Q;*vT#<3pH zB6xlEcs9Yf(Bsnx#-ARaPB2dO_-zEQn;uuc&+73z$o4cJdoA!i0?#4n^=Fbxc%x`4 zEbvB&^MnS5@yR7PKj`s0Q{O4|xPv(Pe4)qTZdG1XwJ5#E;jZWRx3f+@-k#hMC}*O^RFuS)bal(?gzgkqn|U1{?zN3iT}rn{!EgC6C*kTnQk1c zK+FW=X^h)@6vDYv;$#umH^##Xu5XODFDdxccz&AuX)|2+7~prp_;2I)1x^QBIga0L z5AuG!47gL%N6fZ>p)*Z<{sZXe!WTY_^Yh%`2Y~0m_1bITGpgWuQ{wX!$Bps)YXzTr zU;G!~X>N6L8}Lkr7b*Dd1ivpI;yjme9KY|+g)&W58T|MF&q*^59e}4hC-W7Go2T;M zt>~-wFTOYZJ>c|uxp*hmF*@W23eF1}@d4Mz@A%lSa~#L>28b_I#&ha**}(Pjyc|wX z9|N94=Z6)VMj@LG?+xk3c@E(8x*O-8;tcxB6kMIpSMz4Rm_ffL1Kz~_;JFBl=MIj) z&o7RT`|svBo)1BNdVY?M|2nQ8;re?3FW`BtI0ksGdFuT9F5phBBF~>!{7XwFcvh9$MsbssE|48*Enl`c zy%Ig%h__3WgRw{#X^D8-WziRJZ|?#VO-TgJm`+s`E9=W@1W~Beo~V zp0)LYxVpObORya&HkOsI7NACN>La3OeQjAyb%nl0IZ_1>9Ly7iRowR~PdyQH#%NbQR88LpuO^j2JC|D^TxaYHF(Mz z%fxb_s=Ai;Of(b?C&1ip?V&Esxiejbo*&(s1B7mD(w$L}?jS-#`lD$&d$`CzjvYMH zX)5Q+jH=O)*ajPy%1N>{VC3@$=?*H4Jv+ZfhmBrPcHm8CtsxrgRQ3=#QFR9v>GGHh zhv1~094S%`*y((UVskXgIn$3Ux=Q8robt&<2eZR^I!I3mwxh$|NK_Uf!rP&f%B5F! zs^M!5Y@#xD%JDz3O%BjAd)kwHI?tjA$L{d*)AM*~&)l)Ie>y|hkA+i%I*7QUUF|V% zGsswk$u`U>0~98%U??WLU@~wu$Ng|{(C_0=S$TCy%-c$ox;8I-Wpeqtg5ZzIScKKU zPI}ZI3hD|X)J5cgmm2U~I1nSQnA{1!k&qJ8F1d~0%xyl<#}aXcBeHs96PGrx&J92U zVvn{0{uD;ucE7|>;1Ys%qO2LX+{8t%3(O`{=g&VDq3e5i6vDeHOPS7X^J+yG^HdhX zA6-+UJ+8k{7EvWl!sk0e%OIn*@8OP6I#H2JqrC_4k6}%X?eFCol-NG*Lnw=Ojn7)h z(>({Y$8{gdU373D(R~Z5gZB6u{5W9n$V%Dc`Vi$f)M*oUmx7*#94ypR{Ba$LvVdzM zf8>es8K|dw5Lm|bCQ3KAH}dB&c^)!!Owk_Kr6@n-71+M9|693zId_QbSCkVRr}p$H zrO|!>FghlzY|dt6_m#Qi94u8cM2sig0t+V*iBjuOB3ppCKp??43|3mSto;d(uF{-43AU)mN; z=;s~C&wxL)$8}Z?{=W*UtVw8x@+VM7&qbm=?hEFBM*DvQTgnOTasA}v_UEBao3LHP zE2w?L}AeAT`d zSeA!9L15&7J=#rF>fD&D+?P1i^sP^Qw=Ct)25W<1Mw|s&l9Lf6IjS5p>mFJ*G zsBCFk<+)KoTI-Lq*6bg#R?lm!b#<`BbX4{~K+JrhRP`Qz=P1@g9R@LMfjD@tzQ zqW!R$a9i7UaRw39{>_Ara3pw(_jUK%z|lPKPD>Lc7dj;iF7% zV}YBbum4O{W6wp6tkY40tus@7rTTt&L~vlZ&U8I)EUz^j@qH3-K0Yj?-a1nt9C7`* z(`oyKj5s93KK_bxA>~*kBx|h4DNv3eA<-Ls&bjC0UgNbS&gjScocc?2JP8@{U2k^k zhYwcpo{~T**V1&rd39)4L(c7fknca$>fK+_=@3C+vM{_k?yf0PG6n)aaF+|}b%-pe z|Fk1WMB6`bKO?ARre!nO*Lt0Si?Tgf3-<3N0arMOscL_PTYpb|u%6#`!_%uxC>eek zr2XzMLo$2(YvD-rs^GXpZ7;E}klw*x3y$qWuy=ly*6`a2F%K50IN^Exq}Hq%tjf3v zgkR!qS}X5+AOBFB&ATq+5p7;-@SK%CLzO1>S>f_;o+%y$$=64QO-Aj)@yB{)zFVvZ>Z7KnY6(Cvri1P>il zWE{>{WQ;FkTOfFdZUNXD{?p^tWDB?sDUybt0{c}eNlSJQXmkb1AkhPoCND6e`7%T3^gnOR%} zuYvm{uE~6pZ;Hd|S(*F@hl{gndroEGY-1VLWb4b}n?HtL`Uwdwvu#7$#obChlniBET*v&o#cYsHOZ?-5o|LT@ZBl+ zC3At1t`Xy8N}==+;h4D~ot+Vx_i4#Xl7>Gs7o^dY(!(ig1#c3};!laV*plOW0q|@D zd7&a%kdr{uf%sQr@SjR}>eQqd{{qDaV)$1i{NeaF0Z)R}xM$IG9A2Lz+R{M@5!R}e zV;-lW7gPL#^pqf!L1*$f>6Nw#EZu+6Uxk}<#5Do%>iLI9?Y zcd5iVT%;_MMBFCFwQ!3UNuO6bm&r*KDw)8}U5$Wmi`^I{oN JWBszM{{RQ@>YV@p diff --git a/user_scripts/testtool/tt.c b/user_scripts/testtool/tt.c index d87c41c14370c..0286a517d478c 100644 --- a/user_scripts/testtool/tt.c +++ b/user_scripts/testtool/tt.c @@ -25,26 +25,12 @@ enum Command { CMD_DAC_SG_OOB }; -// struct Cmd_element { -// const char * cmd_input; -// enum Command cmd; -// const char * cmd_desc; -// } - -// const struct Cmd_element CMD_TABLE[] ={ - -// } - -enum Command parse_command(const char *arg) { - if (strcmp(arg, "dw_mem_ib") == 0) return CMD_DW_MEMCPY_IB_TEST; - if (strcmp(arg, "spi_driver_loop") == 0) return CMD_SPILOOP_TEST; - if (strcmp(arg, "spi_userdma_ib") == 0) return CMD_SPI_USERDMA_IB; - if (strcmp(arg, "dac_cy_ib") == 0) return CMD_DAC_CY_IB; - if (strcmp(arg, "dac_cy_oob") == 0) return CMD_DAC_CY_OOB; - if (strcmp(arg, "dac_sg_ib") == 0) return CMD_DAC_SG_IB; - if (strcmp(arg, "dac_sg_oob") == 0) return CMD_DAC_SG_OOB; - return CMD_UNKNOWN; -} +struct Cmd_element { + const char * cmd_input; + enum Command cmd; + int (*cmd_callback)(void); + const char * cmd_desc; +}; //ioctls #define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int) @@ -299,40 +285,50 @@ int do_dac_dma_sg_oob(void) close(fd); return 0; } + + +const struct Cmd_element CMD_TABLE[] ={ + {"dw_mem_ib" , CMD_DW_MEMCPY_IB_TEST, do_dw_memcpy_ib_test , "test inband memcpy by dw-dmac\n"}, + {"spi_driver_loop", CMD_SPILOOP_TEST , do_spi_loop_test , "test inband spi loopback using pl022-spi driver\n"}, + {"spi_userdma_ib" , CMD_SPI_USERDMA_IB , do_spi_userdma_ib_test , "test inband spi loopback using user_dma\n"}, + {"dac_cy_ib" , CMD_DAC_CY_IB , do_dac_dma_tx_ib , "test inband cyclic mem2dev dma using dw-dmac and dac device\n"}, + {"dac_cy_oob" , CMD_DAC_CY_OOB , do_dac_dma_tx_oob , "test oob cyclic mem2dev dma using dw-dmac and dac device\n"}, + {"dac_sg_ib" , CMD_DAC_SG_IB , do_dac_dma_sg_ib , "test inband sg mem2dev dma using dw-dmac and dac device\n"}, + {"dac_sg_oob" , CMD_DAC_SG_OOB , do_dac_dma_sg_oob , "test oob sg mem2dev dma using dw-dmac and dac device\n"} +}; + +void print_help(void) +{ + printf("|%-20s| %s","INSTRUCTIONS","DESCRIBES\n"); + for(int i=0;i Date: Sat, 20 Sep 2025 01:00:16 -0700 Subject: [PATCH 18/25] fix:fix the problem that oob virt-desc wont be freed in completed list --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 6d919cabd7b3d..15aa59aaa8242 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1216,24 +1216,27 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) goto out; } } else { + /* Remove the completed descriptor from issued list before completing */ + list_del(&vd->node); + //complete the desc cookie manually + dma_cookie_complete(&vd->tx); + list_add_tail(&vd->node, &(chan->vc.desc_completed)); + //vd is in completed list right now dmaengine_desc_get_callback(&vd->tx,&cb);//get callback if(dmaengine_desc_callback_valid(&cb)) { vchan_unlock_irqrestore(&chan->vc, flags); dmaengine_desc_callback_invoke(&cb,NULL); vchan_lock_irqsave(&chan->vc, flags); } - /* Remove the completed descriptor from issued list before completing */ + //free the vd in completed list list_del(&vd->node); - //complete the desc manually - dma_cookie_complete(&vd->tx); - list_add_tail(&vd->node, &(chan->vc.desc_completed)); + vchan_vdesc_fini(vd); //clear chan->desc,which is set at pulse_oob chan->desc = NULL; - //if the next vd is oob,continue to execute + //if there is vd,continue to execute vd = vchan_next_desc(&chan->vc); - desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); - if(vd && vchan_oob_pulsed(vd)) { - chan->desc = desc; + chan->desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); + if(vd) { axi_chan_block_xfer_start(chan,chan->desc); } ret = true; From b2398a3fe987099cd7d7e93b274d7a8c6f2b2944 Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sat, 20 Sep 2025 01:18:06 -0700 Subject: [PATCH 19/25] refactor:chan->desc remain unused as in the original source --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 15aa59aaa8242..88ff8adcd01ea 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -521,17 +521,17 @@ static int dw_axi_dma_pulse_oob(struct dma_chan *dchan) { struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); struct virt_dma_desc *vd; + struct axi_dma_desc *desc; unsigned long flags; int ret = -EIO; pr_info("pulse oob called\n"); vchan_lock_irqsave(&chan->vc, flags); - //todo:get the first desc(should be oob) in vc,and start vd = vchan_next_desc(&chan->vc); - chan->desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd));//the desc that is in progress - if (chan->desc && vchan_oob_pulsed(&chan->desc->vd)) { + desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); + if (desc && vchan_oob_pulsed(&desc->vd)) { pr_info("pulse:1\n"); - axi_chan_block_xfer_start(chan,chan->desc); + axi_chan_block_xfer_start(chan,desc); ret = 0; } vchan_unlock_irqrestore(&chan->vc, flags); @@ -1231,13 +1231,11 @@ static bool axi_chan_block_xfer_complete(struct axi_dma_chan *chan) //free the vd in completed list list_del(&vd->node); vchan_vdesc_fini(vd); - //clear chan->desc,which is set at pulse_oob - chan->desc = NULL; //if there is vd,continue to execute vd = vchan_next_desc(&chan->vc); - chan->desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); + desc = (vd==NULL)?(NULL):(vd_to_axi_desc(vd)); if(vd) { - axi_chan_block_xfer_start(chan,chan->desc); + axi_chan_block_xfer_start(chan,desc); } ret = true; goto out; From 0850b460ba4a782c44ee2cbac027d1169fa603db Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sun, 21 Sep 2025 00:47:56 -0700 Subject: [PATCH 20/25] feat:add desc_submitted_oob list to prioritize OOB descriptors --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 2 +- drivers/dma/virt-dma.c | 23 ++++++++++++ drivers/dma/virt-dma.h | 36 ++++++++++++++++++- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 88ff8adcd01ea..320fd1820693e 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -511,7 +511,7 @@ static void dma_chan_issue_pending(struct dma_chan *dchan) unsigned long flags; vchan_lock_irqsave(&chan->vc,flags); - if (vchan_issue_pending(&chan->vc)) + if (vchan_issue_pending_mix(&chan->vc)) axi_chan_start_first_queued(chan); vchan_unlock_irqrestore(&chan->vc,flags); } diff --git a/drivers/dma/virt-dma.c b/drivers/dma/virt-dma.c index 7961172a780dd..cc2c77c5b7758 100644 --- a/drivers/dma/virt-dma.c +++ b/drivers/dma/virt-dma.c @@ -36,6 +36,28 @@ dma_cookie_t vchan_tx_submit(struct dma_async_tx_descriptor *tx) } EXPORT_SYMBOL_GPL(vchan_tx_submit); +dma_cookie_t vchan_tx_submit_mix(struct dma_async_tx_descriptor *tx) +{ + struct virt_dma_chan *vc = to_virt_chan(tx->chan); + struct virt_dma_desc *vd = to_virt_desc(tx); + unsigned long flags; + dma_cookie_t cookie; + + vchan_lock_irqsave(vc, flags); + cookie = dma_cookie_assign(tx); + if(tx->flags & DMA_OOB_PULSE) + list_move_tail(&vd->node, &vc->desc_submitted_oob); + else + list_move_tail(&vd->node, &vc->desc_submitted); + vchan_unlock_irqrestore(vc, flags); + + dev_dbg(vc->chan.device->dev, "vchan %p: txd %p[%x]: submitted\n", + vc, vd, cookie); + + return cookie; +} +EXPORT_SYMBOL_GPL(vchan_tx_submit_mix); + /** * vchan_tx_desc_free - free a reusable descriptor * @tx: the transfer @@ -127,6 +149,7 @@ void vchan_init(struct virt_dma_chan *vc, struct dma_device *dmadev) spin_lock_init(&vc->lock); INIT_LIST_HEAD(&vc->desc_allocated); INIT_LIST_HEAD(&vc->desc_submitted); + INIT_LIST_HEAD(&vc->desc_submitted_oob); INIT_LIST_HEAD(&vc->desc_issued); INIT_LIST_HEAD(&vc->desc_completed); INIT_LIST_HEAD(&vc->desc_terminated); diff --git a/drivers/dma/virt-dma.h b/drivers/dma/virt-dma.h index 59d9eabc8b674..0dc1c989f4daa 100644 --- a/drivers/dma/virt-dma.h +++ b/drivers/dma/virt-dma.h @@ -29,6 +29,7 @@ struct virt_dma_chan { /* protected by vc.lock */ struct list_head desc_allocated; struct list_head desc_submitted; + struct list_head desc_submitted_oob; struct list_head desc_issued; struct list_head desc_completed; struct list_head desc_terminated; @@ -45,6 +46,7 @@ void vchan_dma_desc_free_list(struct virt_dma_chan *vc, struct list_head *head); void vchan_init(struct virt_dma_chan *vc, struct dma_device *dmadev); struct virt_dma_desc *vchan_find_desc(struct virt_dma_chan *, dma_cookie_t); extern dma_cookie_t vchan_tx_submit(struct dma_async_tx_descriptor *); +extern dma_cookie_t vchan_tx_submit_mix(struct dma_async_tx_descriptor *); extern int vchan_tx_desc_free(struct dma_async_tx_descriptor *); /** @@ -60,7 +62,7 @@ static inline struct dma_async_tx_descriptor *vchan_tx_prep(struct virt_dma_chan dma_async_tx_descriptor_init(&vd->tx, &vc->chan); vd->tx.flags = tx_flags; - vd->tx.tx_submit = vchan_tx_submit; + vd->tx.tx_submit = vchan_tx_submit_mix; vd->tx.desc_free = vchan_tx_desc_free; vd->tx_result.result = DMA_TRANS_NOERROR; @@ -73,6 +75,37 @@ static inline struct dma_async_tx_descriptor *vchan_tx_prep(struct virt_dma_chan return &vd->tx; } +/** + * vchan_issue_pending_mix - move submitted ib and oob descriptors to issued list + * @vc: virtual channel to update + * + * vc.lock must be held by caller + */ +static inline bool vchan_issue_pending_mix(struct virt_dma_chan *vc) +{ + lockdep_assert_held(&vc->lock); + struct virt_dma_desc *vd; + bool oob_found = false; + //insert oob descs + if(!list_empty(&vc->desc_submitted_oob)) { + list_for_each_entry_reverse(vd, &vc->desc_issued, node) { + if (vchan_oob_pulsed(vd)) { + // 把 desc_submitted_oob 插到这个 OOB 描述符的后面 + oob_found = true; + list_splice_init(&vc->desc_submitted_oob, &vd->node); + break; + } + } + if(!oob_found) + list_splice_init(&vc->desc_submitted_oob, &vc->desc_issued); + } + //add ib descs to tail + list_splice_tail_init(&vc->desc_submitted, &vc->desc_issued); + + + return !list_empty(&vc->desc_issued); +} + /** * vchan_issue_pending - move submitted descriptors to issued list * @vc: virtual channel to update @@ -189,6 +222,7 @@ static inline void vchan_get_all_descriptors(struct virt_dma_chan *vc, list_splice_tail_init(&vc->desc_allocated, head); list_splice_tail_init(&vc->desc_submitted, head); + list_splice_tail_init(&vc->desc_submitted_oob, head); list_splice_tail_init(&vc->desc_issued, head); list_splice_tail_init(&vc->desc_completed, head); list_splice_tail_init(&vc->desc_terminated, head); From bfafcd4cd8938d94dabe9a9a054e11e3655beebb Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sun, 21 Sep 2025 00:51:32 -0700 Subject: [PATCH 21/25] test:test execution order of mixed IB and OOB descriptors --- my_driver/user_dma.c | 174 ++++++++++++++++++++++++++++++++++--- user_scripts/testtool/tt | Bin 13616 -> 13664 bytes user_scripts/testtool/tt.c | 34 +++++++- 3 files changed, 194 insertions(+), 14 deletions(-) diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index 7c80c9fbbad0f..61b93ff366307 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -510,6 +510,8 @@ static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) #define PWMDAC_ADDR 0x100b0000 +#define MIX_TEST_DESC_LEN 4 + //USER_DMA_IOCTL___ #define USER_DMA_IOCTL_MEM_CPY_IB _IOR('M', 1, int)//test inband memcpy by dw-axi-dmac #define USER_DMA_IOCTL_SPI_TXRX_IB _IOR('M', 2, int)//test inband spi dma loopback @@ -517,6 +519,7 @@ static void mocking_jh7110_pwmdac_hw_params(struct jh7110_pwmdac_dev *dev) #define USER_DMA_IOCTL_DACcy_TX_OOB _IOR('M', 4, int)//test oob dac cyclic dma tx #define USER_DMA_IOCTL_DACsg_TX_IB _IOR('M', 5, int)//test inband dac dma sg tx #define USER_DMA_IOCTL_DACsg_TX_OOB _IOR('M', 6, int)//test oob dac dma sg tx +#define USER_DMA_IOCTL_DACsg_TX_MIX _IOR('M', 7, int)//test oob dac dma sg tx struct transfer_config { //bus addr that dmac can use dma_addr_t dma_buf_src; @@ -528,6 +531,7 @@ struct transfer_config { struct my_cb_param { const char *log; + int submit_index; int target_cnt; int cnt; struct completion done; // 用于同步的 completion @@ -569,8 +573,11 @@ static void cb_ib(void *param) params->cnt = params->cnt + 1; if(params->cnt == params->target_cnt) complete(¶ms->done); + pr_info("--------------------\n"); pr_info("%s\n",params->log); + pr_info("submit index = %d\n",params->submit_index); pr_info("cnt = %d,target_cnt = %d\n",params->cnt,params->target_cnt); + pr_info("--------------------\n"); return; } @@ -581,9 +588,12 @@ static void cb_oob(void *param) if(params->cnt == params->target_cnt) complete(¶ms->done); if(running_oob()) { + pr_info("--------------------\n"); pr_info("%s\n",params->log); pr_info("running oob\n"); + pr_info("submit index = %d\n",params->submit_index); pr_info("cnt = %d,target_cnt = %d\n",params->cnt,params->target_cnt); + pr_info("--------------------\n"); } return; } @@ -797,6 +807,7 @@ static int do_dw_mem_cp_ib_test(void) init_completion(¶ms.done); params.log = "MEM:inband memcpy by dw-axi-dmac cb is called"; + params.submit_index = 0; params.cnt = 0; params.target_cnt = 1; //prepare @@ -878,6 +889,7 @@ static int do_pl08_spi_sg_ib_test(void) // ini params init_completion(¶ms.done); params.log = "SPI:inband spi-rx dma callback by PL08-dmac is called"; + params.submit_index = 0; params.cnt = 0; params.target_cnt = 1; //config dma channel @@ -990,9 +1002,10 @@ static int do_dw_dac_cy_ib_test(void) fill_source_buffer(&trans_config); init_completion(¶ms.done); - params.log = "DAC:inband m2d dma by dw-axi-dmac cb is called"; - params.cnt = 0; - params.target_cnt = 2*BUF_LEN/xfer_len; + params.log = "DAC:inband m2d dma by dw-axi-dmac cb is called"; + params.submit_index = 0; + params.cnt = 0; + params.target_cnt = 2*BUF_LEN/xfer_len; pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params enable_dac(); @@ -1106,9 +1119,10 @@ static int do_dw_dac_cy_oob_test(void) fill_source_buffer(&trans_config); //setting params init_completion(¶ms.done); - params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; - params.cnt = 0; - params.target_cnt = 2*BUF_LEN/xfer_len; + params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + params.submit_index = 0; + params.cnt = 0; + params.target_cnt = 2*BUF_LEN/xfer_len; pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params enable_dac(); @@ -1209,9 +1223,10 @@ static int do_dw_dac_sg_ib_test(void) //setting params init_completion(¶ms.done); - params.log = "DAC:ib m2d dma by dw-axi-dmac cb is called"; - params.cnt = 0; - params.target_cnt = 1; + params.log = "DAC:ib m2d dma by dw-axi-dmac cb is called"; + params.submit_index = 0; + params.cnt = 0; + params.target_cnt = 1; pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params enable_dac(); @@ -1310,9 +1325,10 @@ static int do_dw_dac_sg_oob_test(void) //setting params init_completion(¶ms.done); - params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; - params.cnt = 0; - params.target_cnt = 1; + params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + params.submit_index = 0; + params.cnt = 0; + params.target_cnt = 1; pr_info("target_cnt:%d\n",params.target_cnt); //mocking jh7110_pwmdac_hw_params enable_dac(); @@ -1371,6 +1387,133 @@ static int do_dw_dac_sg_oob_test(void) return ret; } +static int do_dw_dac_sg_mix_test(void) +{ + int ret = 0; + struct transfer_config trans_config; + struct scatterlist sg_tx[1]; + struct my_cb_param params[MIX_TEST_DESC_LEN]; + bool oob_desc_sel[MIX_TEST_DESC_LEN] = {false,false,true,true}; + bool wait_success = true; + + dma_cap_mask_t mask; + struct dma_chan *dchan; + struct dma_slave_config chan_tx_config = {0}; + + struct dma_async_tx_descriptor *tx[MIX_TEST_DESC_LEN]; + size_t xfer_len = 4096; + dma_cookie_t cookie_tx[MIX_TEST_DESC_LEN]; + + //get channel + dma_cap_zero(mask); + dma_cap_set(DMA_SLAVE, mask); + dchan = dma_request_chan(&pdev_dac->dev, "tx"); + if (IS_ERR(dchan)) { + pr_err("Failed to request DMA channel\n"); + ret = 1; + goto chan_exit; + } else { + if(dchan && dchan->device && dchan->device->dev) + pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); + } + //allocate dma reachable buffer + if(!allocate_trans_config(&trans_config,dchan->device->dev)) { + ret = 1; + goto trans_config_exit; + } + fill_source_buffer(&trans_config); + //init scatter list + sg_init_table(sg_tx, 1); + sg_init_one(&sg_tx[0], trans_config.buf_src, xfer_len); + + sg_dma_address(&sg_tx[0]) = trans_config.dma_buf_src; + sg_dma_len(&sg_tx[0]) = xfer_len; + + //setting params + for(int i=0;icallback = cb_oob; + else + tx[i]->callback = cb_ib; + tx[i]->callback_param = params+i; + } + //submit + for(int i = 0 ; ibase); + for(int i = 0;idevice->dev); +trans_config_exit: + + dma_release_channel(dchan); +chan_exit: + return ret; +} + static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int output; @@ -1411,6 +1554,13 @@ static long user_dma_ioctl(struct file *file, unsigned int cmd, unsigned long ar return -EFAULT; break; } + case USER_DMA_IOCTL_DACsg_TX_MIX:{ + output = do_dw_dac_sg_mix_test(); + if (copy_to_user((int __user *)arg, &output, sizeof(output))) + return -EFAULT; + break; + } + default: return -ENOTTY; return 0; diff --git a/user_scripts/testtool/tt b/user_scripts/testtool/tt index daf345cde4c5c2508da8281088154d643113d031..83f4bc9f124f8ab9971361261ee8977eec4b4598 100755 GIT binary patch delta 3352 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 Vrj8cT!czdxDHXn-0cCRv{sGyAe=q<5 diff --git a/user_scripts/testtool/tt.c b/user_scripts/testtool/tt.c index 0286a517d478c..efc1b07ffb56d 100644 --- a/user_scripts/testtool/tt.c +++ b/user_scripts/testtool/tt.c @@ -22,7 +22,8 @@ enum Command { CMD_DAC_CY_IB, //USER_DMA: test dac tx,using dma in user_dma CMD_DAC_CY_OOB, //USER_DMA: test dac tx,using dma in user_dma CMD_DAC_SG_IB, - CMD_DAC_SG_OOB + CMD_DAC_SG_OOB, + CMD_DAC_SG_MIX }; struct Cmd_element { @@ -39,6 +40,7 @@ struct Cmd_element { #define USER_DMA_IOCTL_DACcy_TX_OOB _IOR('M', 4, int)//test oob dac dma-tx #define USER_DMA_IOCTL_DACsg_TX_IB _IOR('M', 5, int)//test inband dac dma sg tx #define USER_DMA_IOCTL_DACsg_TX_OOB _IOR('M', 6, int)//test oob dac dma sg tx +#define USER_DMA_IOCTL_DACsg_TX_MIX _IOR('M', 7, int)//test oob dac dma sg tx int do_dw_memcpy_ib_test(void) { @@ -286,6 +288,33 @@ int do_dac_dma_sg_oob(void) return 0; } +int do_dac_dma_sg_mix(void) +{ + const char *dev = "/dev/user_dma"; + int fd; + int value; + + fd = open(dev, O_RDWR); + if (fd < 0) { + perror("open"); + return EXIT_FAILURE; + } + int ret = ioctl(fd, USER_DMA_IOCTL_DACsg_TX_MIX,&value); + if (ret < 0) { + perror("ioctl"); + close(fd); + return EXIT_FAILURE; + } + printf("oob dac dma-sg by user_dma executed finish\n"); + if(value==0) { + printf("oob dac dma-sg success!\n"); + } else { + printf("oob dac dma-sg error!\n"); + } + close(fd); + return 0; +} + const struct Cmd_element CMD_TABLE[] ={ {"dw_mem_ib" , CMD_DW_MEMCPY_IB_TEST, do_dw_memcpy_ib_test , "test inband memcpy by dw-dmac\n"}, @@ -294,7 +323,8 @@ const struct Cmd_element CMD_TABLE[] ={ {"dac_cy_ib" , CMD_DAC_CY_IB , do_dac_dma_tx_ib , "test inband cyclic mem2dev dma using dw-dmac and dac device\n"}, {"dac_cy_oob" , CMD_DAC_CY_OOB , do_dac_dma_tx_oob , "test oob cyclic mem2dev dma using dw-dmac and dac device\n"}, {"dac_sg_ib" , CMD_DAC_SG_IB , do_dac_dma_sg_ib , "test inband sg mem2dev dma using dw-dmac and dac device\n"}, - {"dac_sg_oob" , CMD_DAC_SG_OOB , do_dac_dma_sg_oob , "test oob sg mem2dev dma using dw-dmac and dac device\n"} + {"dac_sg_oob" , CMD_DAC_SG_OOB , do_dac_dma_sg_oob , "test oob sg mem2dev dma using dw-dmac and dac device\n"}, + {"dac_sg_mix" , CMD_DAC_SG_MIX , do_dac_dma_sg_mix , "test the trigger sequence of mixed ib/oob descs\n"} }; void print_help(void) From 4dcbbe2dae0e1ab0a8eca7f475b1f42d71ab3a8e Mon Sep 17 00:00:00 2001 From: han <1310184599@qq.com> Date: Sun, 21 Sep 2025 02:45:58 -0700 Subject: [PATCH 22/25] chore:remove some logic for debug --- my_driver/user_dma.c | 136 +++++++++++++------------------------------ 1 file changed, 40 insertions(+), 96 deletions(-) diff --git a/my_driver/user_dma.c b/my_driver/user_dma.c index 61b93ff366307..2d8947ce211ca 100644 --- a/my_driver/user_dma.c +++ b/my_driver/user_dma.c @@ -876,22 +876,26 @@ static int do_pl08_spi_sg_ib_test(void) pr_info("Got PL08 rx channel: %s\n", dma_chan_name(dchan_rx)); } } + //allocate dma reachable buffer if(!allocate_trans_config(&trans_config,dchan_tx->device->dev)) { ret = 1; goto trans_config_exit; } + fill_source_buffer(&trans_config); memset(trans_config.buf_des,0,BUF_LEN); spi_dma_config(spi.virt_addr); print_spi_regs(spi.virt_addr); pr_info("\nPL022 spi config and enable sucess\n"); + // ini params init_completion(¶ms.done); params.log = "SPI:inband spi-rx dma callback by PL08-dmac is called"; params.submit_index = 0; params.cnt = 0; params.target_cnt = 1; + //config dma channel //tx chan_tx_config.direction = DMA_MEM_TO_DEV; @@ -1006,7 +1010,7 @@ static int do_dw_dac_cy_ib_test(void) params.submit_index = 0; params.cnt = 0; params.target_cnt = 2*BUF_LEN/xfer_len; - pr_info("target_cnt:%d\n",params.target_cnt); + //mocking jh7110_pwmdac_hw_params enable_dac(); mocking_jh7110_pwmdac_hw_params(pwmdac); @@ -1030,10 +1034,9 @@ static int do_dw_dac_cy_ib_test(void) tx->callback = cb_ib; tx->callback_param = ¶ms; - pr_info("dma prepare sucess\n"); + pr_info("dma prepare success\n"); //submit cookie_tx = dmaengine_submit(tx); - pr_info("TX cookie=%u\n", cookie_tx); dma_async_issue_pending(dchan); @@ -1041,27 +1044,21 @@ static int do_dw_dac_cy_ib_test(void) dump_pwmdac_regs(pwmdac->base); if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); - jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); - pr_info("pl dma channels terminated\n"); } else { - jh7110_pwmdac_stop(pwmdac); + pr_info("wait success\n"); } + jh7110_pwmdac_stop(pwmdac); dmaengine_pause(dchan); disable_dac(); - - msleep(10); - // dmaengine_terminate_sync(dchan); - //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: status = dmaengine_tx_status(dchan,cookie_tx, &state); pr_info("DMA status raw: %d\n", status); - /* 打印每种状态标志 */ if (status & DMA_COMPLETE) pr_info(" DMA_COMPLETE\n"); if (status & DMA_PAUSED) @@ -1071,7 +1068,6 @@ static int do_dw_dac_cy_ib_test(void) if (status & DMA_IN_PROGRESS) pr_info(" DMA_IN_PROGRESS\n"); - /* 打印 dma_tx_state 内容 */ pr_info("DMA residue: %u\n", state.residue); if (status == DMA_PAUSED) { @@ -1080,6 +1076,7 @@ static int do_dw_dac_cy_ib_test(void) } dmaengine_terminate_async(dchan); dma_release_channel(dchan); + pr_info("cyclic occupied dma-channel may not be released successfully,must reboot system to test other functions\n"); chan_exit: return ret; } @@ -1096,8 +1093,7 @@ static int do_dw_dac_cy_oob_test(void) struct dma_async_tx_descriptor *tx; size_t xfer_len = 1024; dma_cookie_t cookie_tx; - struct dma_tx_state state; - enum dma_status status; + //get channel dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); @@ -1110,13 +1106,14 @@ static int do_dw_dac_cy_oob_test(void) if(dchan && dchan->device && dchan->device->dev) pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); } + //allocate dma reachable buffer if(!allocate_trans_config(&trans_config,dchan->device->dev)) { ret = 1; goto trans_config_exit; } - fill_source_buffer(&trans_config); + //setting params init_completion(¶ms.done); params.log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; @@ -1149,7 +1146,6 @@ static int do_dw_dac_cy_oob_test(void) tx->callback_param = ¶ms; //submit cookie_tx = dmaengine_submit(tx); - pr_info("TX cookie=%u\n", cookie_tx); dma_async_issue_pending(dchan); @@ -1157,15 +1153,13 @@ static int do_dw_dac_cy_oob_test(void) dump_pwmdac_regs(pwmdac->base); if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); - jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); - pr_info("pl dma channels terminated\n"); } else { - jh7110_pwmdac_stop(pwmdac); pr_info("wait success\n"); } - disable_dac(); + jh7110_pwmdac_stop(pwmdac); + disable_dac(); dmaengine_pause(dchan); msleep(1); @@ -1173,10 +1167,9 @@ static int do_dw_dac_cy_oob_test(void) //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: - status = dmaengine_tx_status(dchan,cookie_tx, &state); - if (status == DMA_PAUSED) - dmaengine_terminate_async(dchan); + dma_release_channel(dchan); + pr_info("cyclic occupied dma-channel may not be released successfully,must reboot system to test other functions\n"); chan_exit: return ret; } @@ -1194,8 +1187,7 @@ static int do_dw_dac_sg_ib_test(void) struct dma_async_tx_descriptor *tx; size_t xfer_len = 4096; dma_cookie_t cookie_tx; - struct dma_tx_state state; - enum dma_status status; + //get channel dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); @@ -1208,11 +1200,13 @@ static int do_dw_dac_sg_ib_test(void) if(dchan && dchan->device && dchan->device->dev) pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); } + //allocate dma reachable buffer if(!allocate_trans_config(&trans_config,dchan->device->dev)) { ret = 1; goto trans_config_exit; } + fill_source_buffer(&trans_config); //init scatter list sg_init_table(sg_tx, 1); @@ -1260,13 +1254,11 @@ static int do_dw_dac_sg_ib_test(void) dump_pwmdac_regs(pwmdac->base); if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); - jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); - pr_info("pl dma channels terminated\n"); } else { - jh7110_pwmdac_stop(pwmdac); pr_info("wait success\n"); } + jh7110_pwmdac_stop(pwmdac); disable_dac(); dmaengine_pause(dchan); @@ -1275,9 +1267,7 @@ static int do_dw_dac_sg_ib_test(void) //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: - status = dmaengine_tx_status(dchan,cookie_tx, &state); - if (status == DMA_PAUSED) - dmaengine_terminate_async(dchan); + dma_release_channel(dchan); chan_exit: return ret; @@ -1296,8 +1286,7 @@ static int do_dw_dac_sg_oob_test(void) struct dma_async_tx_descriptor *tx; size_t xfer_len = 4096; dma_cookie_t cookie_tx; - struct dma_tx_state state; - enum dma_status status; + //get channel dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); @@ -1310,6 +1299,7 @@ static int do_dw_dac_sg_oob_test(void) if(dchan && dchan->device && dchan->device->dev) pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); } + //allocate dma reachable buffer if(!allocate_trans_config(&trans_config,dchan->device->dev)) { ret = 1; @@ -1329,7 +1319,7 @@ static int do_dw_dac_sg_oob_test(void) params.submit_index = 0; params.cnt = 0; params.target_cnt = 1; - pr_info("target_cnt:%d\n",params.target_cnt); + //mocking jh7110_pwmdac_hw_params enable_dac(); mocking_jh7110_pwmdac_hw_params(pwmdac); @@ -1357,20 +1347,20 @@ static int do_dw_dac_sg_oob_test(void) pr_info("TX cookie=%u\n", cookie_tx); //trigger the tranfer by pulse_oob - dma_async_issue_pending(dchan);//oob desc will be filted here + dma_async_issue_pending(dchan); dma_pulse_oob(dchan);//real trigger jh7110_pwmdac_set(pwmdac); dump_pwmdac_regs(pwmdac->base); + if (!wait_for_completion_timeout(¶ms.done, msecs_to_jiffies(10000))) { pr_err("tx DMA timeout error!\n"); - jh7110_pwmdac_stop(pwmdac); dump_pwmdac_regs(pwmdac->base); - pr_info("pl dma channels terminated\n"); } else { - jh7110_pwmdac_stop(pwmdac); + pr_info("wait success\n"); } + jh7110_pwmdac_stop(pwmdac); disable_dac(); dmaengine_pause(dchan); @@ -1379,9 +1369,7 @@ static int do_dw_dac_sg_oob_test(void) //release trans_config release_trans_config(&trans_config,dchan->device->dev); trans_config_exit: - status = dmaengine_tx_status(dchan,cookie_tx, &state); - if (status == DMA_PAUSED) - dmaengine_terminate_async(dchan); + dma_release_channel(dchan); chan_exit: return ret; @@ -1391,14 +1379,14 @@ static int do_dw_dac_sg_mix_test(void) { int ret = 0; struct transfer_config trans_config; - struct scatterlist sg_tx[1]; - struct my_cb_param params[MIX_TEST_DESC_LEN]; - bool oob_desc_sel[MIX_TEST_DESC_LEN] = {false,false,true,true}; - bool wait_success = true; + struct scatterlist sg_tx[1]; + struct my_cb_param params[MIX_TEST_DESC_LEN]; + bool oob_desc_sel[MIX_TEST_DESC_LEN] = {false,false,true,true}; + bool wait_success = true; dma_cap_mask_t mask; - struct dma_chan *dchan; - struct dma_slave_config chan_tx_config = {0}; + struct dma_chan *dchan; + struct dma_slave_config chan_tx_config = {0}; struct dma_async_tx_descriptor *tx[MIX_TEST_DESC_LEN]; size_t xfer_len = 4096; @@ -1416,12 +1404,14 @@ static int do_dw_dac_sg_mix_test(void) if(dchan && dchan->device && dchan->device->dev) pr_info("Got dw m2d channel success: %s\n", dma_chan_name(dchan)); } + //allocate dma reachable buffer if(!allocate_trans_config(&trans_config,dchan->device->dev)) { ret = 1; goto trans_config_exit; } fill_source_buffer(&trans_config); + //init scatter list sg_init_table(sg_tx, 1); sg_init_one(&sg_tx[0], trans_config.buf_src, xfer_len); @@ -1434,9 +1424,9 @@ static int do_dw_dac_sg_mix_test(void) { init_completion(&(params[i].done)); if(oob_desc_sel[i]) - params[i].log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; + params[i].log = "DAC:oob m2d dma by dw-axi-dmac cb is called"; else - params[i].log = "DAC:ib m2d dma by dw-axi-dmac cb is called"; + params[i].log = "DAC:ib m2d dma by dw-axi-dmac cb is called"; params[i].submit_index = i; params[i].cnt = 0; params[i].target_cnt = 1; @@ -1486,6 +1476,7 @@ static int do_dw_dac_sg_mix_test(void) jh7110_pwmdac_set(pwmdac); dump_pwmdac_regs(pwmdac->base); + //wait for all completion for(int i = 0;idev, "tx"); -// //PL08 dmac channels -// dma_cap_zero(mask); -// dma_cap_set(DMA_SLAVE, mask); -// pl_dma_chan_tx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); -// pl_dma_chan_rx = dma_request_channel(mask, my_dma_filter, PL08_DMAC_NAME); - -// pr_info("end to request for dma channel\n"); -// //check -// if (IS_ERR(dw_dma_chan_tx) || IS_ERR(dw_dma_chan_dev)) { -// pr_err("Failed to request DMA channel\n"); -// return false; -// } else { -// if(dw_dma_chan_tx && dw_dma_chan_dev && dw_dma_chan_tx->device && dw_dma_chan_tx->device->dev) -// pr_info("Got dw tx channel: %s\n", dma_chan_name(dw_dma_chan_tx)); -// pr_info("Got dw mem2dev channel: %s\n", dma_chan_name(dw_dma_chan_dev)); -// } -// if(IS_ERR(pl_dma_chan_tx) || IS_ERR(pl_dma_chan_rx)) { -// pr_err("Failed to request PL08 DMA channel\n"); -// return false; -// } else { -// if(pl_dma_chan_tx && pl_dma_chan_rx && pl_dma_chan_tx->device && pl_dma_chan_tx->device->dev) { -// pr_info("Got PL08 tx channel: %s\n", dma_chan_name(pl_dma_chan_tx)); -// pr_info("Got PL08 rx channel: %s\n", dma_chan_name(pl_dma_chan_rx)); -// } -// } -// return true; -// } - -// static void release_dma_chans(void) -// { -// //release dma buffer -// dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_src, trans_config.dma_buf_src); -// dma_free_coherent(dw_dma_chan_tx->device->dev, BUF_LEN, trans_config.buf_des, trans_config.dma_buf_des); - -// dma_release_channel(dw_dma_chan_tx); -// dma_release_channel(dw_dma_chan_dev); -// return; -// } - static int __init user_dma_init(void) { int ret; @@ -1670,7 +1615,6 @@ static int __init user_dma_init(void) static void __exit user_dma_exit(void) { - // release_dma_chans(); device_destroy(user_dma_class, dev_num); class_destroy(user_dma_class); From 372e1bdb49a7ea9be2fc3a37ac56c5b8892f454b Mon Sep 17 00:00:00 2001 From: han Date: Fri, 31 Oct 2025 06:27:36 -0700 Subject: [PATCH 23/25] chore:remove useless test scripts --- user_scripts/ib_test/Makefile | 16 ------------ user_scripts/ib_test/test_ib_dma | Bin 8920 -> 0 bytes user_scripts/ib_test/test_ib_dma.c | 40 ----------------------------- 3 files changed, 56 deletions(-) delete mode 100644 user_scripts/ib_test/Makefile delete mode 100755 user_scripts/ib_test/test_ib_dma delete mode 100644 user_scripts/ib_test/test_ib_dma.c diff --git a/user_scripts/ib_test/Makefile b/user_scripts/ib_test/Makefile deleted file mode 100644 index 87456c1dbe2b5..0000000000000 --- a/user_scripts/ib_test/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# 交叉编译工具链前缀 -CROSS_COMPILE = riscv64-linux-gnu- -CC = $(CROSS_COMPILE)gcc - -# the exec finally generated -TARGET = test_ib_dma -# source code -SRC = test_ib_dma.c - -all: $(TARGET) - -$(TARGET): $(SRC) - $(CC) -Wall -O2 -o $@ $^ - -clean: - rm -f $(TARGET) diff --git a/user_scripts/ib_test/test_ib_dma b/user_scripts/ib_test/test_ib_dma deleted file mode 100755 index 126ae737e86e5084df4278c8c3e0037761f1555b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8920 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 P7rieMiUl4656k`yx@fWO diff --git a/user_scripts/ib_test/test_ib_dma.c b/user_scripts/ib_test/test_ib_dma.c deleted file mode 100644 index bbf9be047505e..0000000000000 --- a/user_scripts/ib_test/test_ib_dma.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -// 这里定义与驱动中一致的 ioctl 命令 -// 假设驱动里是 _IO('M', 1) -// #define MY_IOCTL_CMD _IO('M', 1) -#define USER_DMA_IOCTL_IB_TEST _IOR('M', 1, int) - -int main(int argc, char *argv[]) -{ - const char *dev = "/dev/user_dma"; - int fd; - int value; - - fd = open(dev, O_RDWR); - if (fd < 0) { - perror("open"); - return EXIT_FAILURE; - } - - printf("Opened device %s successfully.\n", dev); - - // ioctl - int ret = ioctl(fd, USER_DMA_IOCTL_IB_TEST,&value); - if (ret < 0) { - perror("ioctl"); - close(fd); - return EXIT_FAILURE; - } - printf("ioctl executed success\n"); - printf("Got value from kernel: %d\n", value); - - close(fd); - return 0; -} From c5be1f4ef269118f4d7ce4fee628c8176fbe470a Mon Sep 17 00:00:00 2001 From: han Date: Fri, 31 Oct 2025 06:37:46 -0700 Subject: [PATCH 24/25] chore:clean up logging in drivers by revert it --- drivers/spi/spi-pl022.c | 148 +++++----------------------------------- 1 file changed, 17 insertions(+), 131 deletions(-) diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 6f378bcc5171f..de63cf0557cec 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -791,37 +791,6 @@ static void setup_dma_scatter(struct pl022 *pl022, BUG_ON(bytesleft); } - -static void print_spi_regs(void __iomem *spi_base_addr_virt) -{ - u32 read_cr0; - u16 read_cr1, read_dmacr, read_sr, read_cpsr ,read_imsc; - - read_cr0 = readw(SSP_CR0(spi_base_addr_virt)); - read_cr1 = readw(SSP_CR1(spi_base_addr_virt)); - read_dmacr = readw(SSP_DMACR(spi_base_addr_virt)); - read_sr = readw(SSP_SR(spi_base_addr_virt)); - read_cpsr = readw(SSP_CPSR(spi_base_addr_virt)); - read_imsc = readw(SSP_IMSC(spi_base_addr_virt)); - - pr_info("SPI CR0=0x%x\n",read_cr0); - - pr_info("SPI CR1=0x%x, SPI enable=%d\n", - read_cr1, - !!(read_cr1 & SSP_CR1_MASK_SSE)); - - pr_info("SPI SR=0x%x\n",read_sr); - - pr_info("SPI CPSR=0x%x\n",read_cpsr); - - pr_info("SPI IMSC=0x%x\n",read_imsc); - - pr_info("SPI DMACR=0x%x, SPI DMA rx dmaenable=%d, SPI DMA tx dmaenable=%d\n", - read_dmacr, - !!(read_dmacr & SSP_DMACR_MASK_RXDMAE), - !!(read_dmacr & SSP_DMACR_MASK_TXDMAE)); - return; -} /** * configure_dma - configures the channels for the next transfer * @pl022: SSP driver's private data structure @@ -850,7 +819,6 @@ static int configure_dma(struct pl022 *pl022) if (!rxchan || !txchan) return -ENODEV; - pr_info("c_dma:1\n"); /* * If supplied, the DMA burstsize should equal the FIFO trigger level. * Notice that the DMA engine uses one-to-one mapping. Since we can @@ -940,7 +908,7 @@ static int configure_dma(struct pl022 *pl022) dmaengine_slave_config(rxchan, &rx_conf); dmaengine_slave_config(txchan, &tx_conf); - pr_info("c_dma:2\n"); + /* Create sglists for the transfers */ pages = DIV_ROUND_UP(pl022->cur_transfer->len, PAGE_SIZE); dev_dbg(&pl022->adev->dev, "using %d pages for transfer\n", pages); @@ -952,7 +920,7 @@ static int configure_dma(struct pl022 *pl022) ret = sg_alloc_table(&pl022->sgt_tx, pages, GFP_ATOMIC); if (ret) goto err_alloc_tx_sg; - pr_info("c_dma:3\n"); + /* Fill in the scatterlists for the RX+TX buffers */ setup_dma_scatter(pl022, pl022->rx, pl022->cur_transfer->len, &pl022->sgt_rx); @@ -964,7 +932,7 @@ static int configure_dma(struct pl022 *pl022) pl022->sgt_rx.nents, DMA_FROM_DEVICE); if (!rx_sglen) goto err_rx_sgmap; - pr_info("c_dma:4\n"); + tx_sglen = dma_map_sg(txchan->device->dev, pl022->sgt_tx.sgl, pl022->sgt_tx.nents, DMA_TO_DEVICE); if (!tx_sglen) @@ -978,7 +946,7 @@ static int configure_dma(struct pl022 *pl022) DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!rxdesc) goto err_rxdesc; - pr_info("c_dma:5\n"); + txdesc = dmaengine_prep_slave_sg(txchan, pl022->sgt_tx.sgl, tx_sglen, @@ -986,7 +954,7 @@ static int configure_dma(struct pl022 *pl022) DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!txdesc) goto err_txdesc; - pr_info("c_dma:6\n"); + /* Put the callback on the RX transfer only, that should finish last */ rxdesc->callback = dma_callback; rxdesc->callback_param = pl022; @@ -997,8 +965,6 @@ static int configure_dma(struct pl022 *pl022) dma_async_issue_pending(rxchan); dma_async_issue_pending(txchan); pl022->dma_running = true; - pr_info("after issuepending\n"); - print_spi_regs(pl022->virtbase); return 0; @@ -1018,72 +984,6 @@ static int configure_dma(struct pl022 *pl022) err_alloc_rx_sg: return -ENOMEM; } -//filter dmac by device name,target for dw-axi-dmac -static bool my_dma_filter(struct dma_chan *chan, void *param) -{ - if (!chan || !chan->device) - return false; - - struct device *dev = chan->device->dev; - const char *target_name = param; - - if (!dev || !dev->of_node) - return false; - - const char *node_name = of_node_full_name(dev->of_node); - if (!node_name) { - return false; - } - - return strcmp(node_name, target_name) == 0; -} -static int pl022_dma_probe_debug(struct pl022 *pl022) -{ - dma_cap_mask_t mask; - - /* Try to acquire a generic DMA engine slave channel */ - dma_cap_zero(mask); - dma_cap_set(DMA_SLAVE, mask); - /* - * We need both RX and TX channels to do DMA, else do none - * of them. - */ - pl022->dma_rx_channel = dma_request_channel(mask, - my_dma_filter, - "dma-controller@16008000"); - if (!pl022->dma_rx_channel) { - dev_info(&pl022->adev->dev, "no RX DMA channel!\n"); - goto err_no_rxchan; - } - - pl022->dma_tx_channel = dma_request_channel(mask, - my_dma_filter, - "dma-controller@16008000"); - if (!pl022->dma_tx_channel) { - dev_info(&pl022->adev->dev, "no TX DMA channel!\n"); - goto err_no_txchan; - } - - pl022->dummypage = kmalloc(PAGE_SIZE, GFP_KERNEL); - if (!pl022->dummypage) - goto err_no_dummypage; - - dev_info(&pl022->adev->dev, "setup for DMA on RX %s, TX %s\n", - dma_chan_name(pl022->dma_rx_channel), - dma_chan_name(pl022->dma_tx_channel)); - - return 0; - -err_no_dummypage: - dma_release_channel(pl022->dma_tx_channel); -err_no_txchan: - dma_release_channel(pl022->dma_rx_channel); - pl022->dma_rx_channel = NULL; -err_no_rxchan: - dev_err(&pl022->adev->dev, - "Failed to work in dma mode, work without dma!\n"); - return -ENODEV; -} static int pl022_dma_probe(struct pl022 *pl022) { @@ -1100,7 +1000,7 @@ static int pl022_dma_probe(struct pl022 *pl022) pl022->host_info->dma_filter, pl022->host_info->dma_rx_param); if (!pl022->dma_rx_channel) { - dev_info(&pl022->adev->dev, "no RX DMA channel!\n"); + dev_dbg(&pl022->adev->dev, "no RX DMA channel!\n"); goto err_no_rxchan; } @@ -1108,7 +1008,7 @@ static int pl022_dma_probe(struct pl022 *pl022) pl022->host_info->dma_filter, pl022->host_info->dma_tx_param); if (!pl022->dma_tx_channel) { - dev_info(&pl022->adev->dev, "no TX DMA channel!\n"); + dev_dbg(&pl022->adev->dev, "no TX DMA channel!\n"); goto err_no_txchan; } @@ -1346,17 +1246,14 @@ static int do_interrupt_dma_transfer(struct pl022 *pl022) * this will be enabled once TX is complete */ u32 irqflags = (u32)(ENABLE_ALL_INTERRUPTS & ~SSP_IMSC_MASK_RXIM); - dev_info(&pl022->adev->dev,"do_interrupt_dma_transfere \n"); + ret = set_up_next_transfer(pl022, pl022->cur_transfer); if (ret) return ret; - pr_info("before configure\n"); - print_spi_regs(pl022->virtbase); - pl022->cur_chip->enable_dma = true; + /* If we're using DMA, set up DMA here */ if (pl022->cur_chip->enable_dma) { /* Configure DMA transfer */ - pr_info("c_dma:0\n"); if (configure_dma(pl022)) { dev_dbg(&pl022->adev->dev, "configuration of DMA failed, fall back to interrupt mode\n"); @@ -1670,8 +1567,7 @@ static int calculate_effective_freq(struct pl022 *pl022, int freq, struct * supplies it. */ static const struct pl022_config_chip pl022_default_chip_info = { - // .com_mode = INTERRUPT_TRANSFER, - .com_mode = DMA_TRANSFER, + .com_mode = INTERRUPT_TRANSFER, .iface = SSP_INTERFACE_MOTOROLA_SPI, .hierarchy = SSP_MASTER, .slave_tx_disable = DO_NOT_DRIVE_TX, @@ -1722,9 +1618,9 @@ static int pl022_setup(struct spi_device *spi) /* Get controller data if one is supplied */ chip_info = spi->controller_data; + if (chip_info == NULL) { if (np) { - dev_info(&spi->dev,"using pl022_default_chip_info\n"); chip_info_dt = pl022_default_chip_info; chip_info_dt.hierarchy = SSP_MASTER; @@ -1747,11 +1643,11 @@ static int pl022_setup(struct spi_device *spi) } else { chip_info = &pl022_default_chip_info; /* spi_board_info.controller_data not is supplied */ - dev_info(&spi->dev, + dev_dbg(&spi->dev, "using default controller_data settings\n"); } } else - dev_info(&spi->dev, + dev_dbg(&spi->dev, "using user supplied controller_data settings\n"); /* @@ -1790,7 +1686,6 @@ static int pl022_setup(struct spi_device *spi) /* Now set controller state based on controller data */ chip->xfer_type = chip_info->com_mode; - dev_info(&spi->dev,"com_mode set to DMA_TRANSFER\n"); /* Check bits per word with vendor specific range */ if ((bits <= 3) || (bits > pl022->vendor->max_bpw)) { @@ -1824,14 +1719,14 @@ static int pl022_setup(struct spi_device *spi) if ((chip_info->com_mode == DMA_TRANSFER) && ((pl022->host_info)->enable_dma)) { chip->enable_dma = true; - dev_info(&spi->dev, "DMA mode set in controller state\n"); + dev_dbg(&spi->dev, "DMA mode set in controller state\n"); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_ENABLED, SSP_DMACR_MASK_RXDMAE, 0); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_ENABLED, SSP_DMACR_MASK_TXDMAE, 1); } else { chip->enable_dma = false; - dev_info(&spi->dev, "DMA mode NOT set in controller state\n"); + dev_dbg(&spi->dev, "DMA mode NOT set in controller state\n"); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_DISABLED, SSP_DMACR_MASK_RXDMAE, 0); SSP_WRITE_BITS(chip->dmacr, SSP_DMA_DISABLED, @@ -1965,10 +1860,6 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) struct pl022 *pl022 = NULL; /*Data for this driver */ int status = 0; - if (id && id->data) - pr_info("Matched AMBA ID: 0x%08x, vendor_data pointer: %p\n", - id->id, id->data); - dev_info(&adev->dev, "ARM PL022 driver, device ID: 0x%08x\n", adev->periphid); if (!platform_info && IS_ENABLED(CONFIG_OF)) @@ -1989,7 +1880,6 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) pl022 = spi_controller_get_devdata(host); pl022->host = host; pl022->host_info = platform_info; - pl022->host_info->enable_dma = true; pl022->adev = adev; pl022->vendor = id->data; @@ -2060,16 +1950,12 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id) } /* If that failed, use channels from platform_info */ - if (status == 0) { + if (status == 0) platform_info->enable_dma = 1; - dev_info(dev, "dma auto probe success\n"); - } else if (platform_info->enable_dma) { - status = pl022_dma_probe_debug(pl022); + status = pl022_dma_probe(pl022); if (status != 0) platform_info->enable_dma = 0; - else - dev_info(dev, "dma probe success\n"); } /* Register with the SPI framework */ From 89ad076377bf9f3bf339f729685219596af23cdf Mon Sep 17 00:00:00 2001 From: han Date: Fri, 31 Oct 2025 06:43:30 -0700 Subject: [PATCH 25/25] chore:remove auto generated config file and gpg key --- config | 8599 ----------------------------------------- llvm-snapshot.gpg.key | 52 - 2 files changed, 8651 deletions(-) delete mode 100644 config delete mode 100644 llvm-snapshot.gpg.key diff --git a/config b/config deleted file mode 100644 index b931fc33c3ec1..0000000000000 --- a/config +++ /dev/null @@ -1,8599 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/riscv 6.6.20 Kernel Configuration -# -CONFIG_CC_VERSION_TEXT="riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120200 -CONFIG_CLANG_VERSION=0 -CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24000 -CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24000 -CONFIG_LLD_VERSION=0 -CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y -CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y -CONFIG_CC_HAS_ASM_INLINE=y -CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=0 -CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_TABLE_SORT=y -CONFIG_THREAD_INFO_IN_TASK=y - -# -# General setup -# -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_COMPILE_TEST=y -# CONFIG_WERROR is not set -CONFIG_LOCALVERSION="" -CONFIG_BUILD_SALT="" -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="StarFive" -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_SYSVIPC_COMPAT=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -# CONFIG_WATCH_QUEUE is not set -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_USELIB=y -# CONFIG_AUDIT is not set -CONFIG_HAVE_ARCH_AUDITSYSCALL=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_GENERIC_IRQ_IPI=y -CONFIG_GENERIC_IRQ_IPI_MUX=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -# end of IRQ subsystem - -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_ARCH_HAS_TICK_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y - -# -# Timers subsystem -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ_COMMON=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set -# CONFIG_NO_HZ is not set -CONFIG_HIGH_RES_TIMERS=y -# end of Timers subsystem - -CONFIG_BPF=y -CONFIG_HAVE_EBPF_JIT=y - -# -# BPF subsystem -# -CONFIG_BPF_SYSCALL=y -# CONFIG_BPF_JIT is not set -CONFIG_BPF_UNPRIV_DEFAULT_OFF=y -# end of BPF subsystem - -CONFIG_PREEMPT_NONE_BUILD=y -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPT_DYNAMIC is not set - -# -# CPU/Task time and stats accounting -# -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_TASKSTATS is not set -# CONFIG_PSI is not set -# end of CPU/Task time and stats accounting - -CONFIG_CPU_ISOLATION=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_RCU_EXPERT is not set -CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_TASKS_TRACE_RCU=y -CONFIG_RCU_STALL_COMMON=y -CONFIG_RCU_NEED_SEGCBLIST=y -# end of RCU Subsystem - -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y -# CONFIG_IKHEADERS is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_PRINTK_INDEX is not set -CONFIG_GENERIC_SCHED_CLOCK=y - -# -# Scheduler features -# -# CONFIG_UCLAMP_TASK is not set -# end of Scheduler features - -CONFIG_CC_HAS_INT128=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_CGROUPS=y -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -# CONFIG_MEMCG is not set -# CONFIG_BLK_CGROUP is not set -CONFIG_CGROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_CFS_BANDWIDTH=y -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_SCHED_MM_CID=y -# CONFIG_CGROUP_PIDS is not set -# CONFIG_CGROUP_RDMA is not set -# CONFIG_CGROUP_FREEZER is not set -# CONFIG_CGROUP_HUGETLB is not set -# CONFIG_CPUSETS is not set -# CONFIG_CGROUP_DEVICE is not set -# CONFIG_CGROUP_CPUACCT is not set -# CONFIG_CGROUP_PERF is not set -CONFIG_CGROUP_BPF=y -# CONFIG_CGROUP_MISC is not set -# CONFIG_CGROUP_DEBUG is not set -CONFIG_SOCK_CGROUP_DATA=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_TIME_NS=y -CONFIG_IPC_NS=y -CONFIG_USER_NS=y -CONFIG_PID_NS=y -CONFIG_NET_NS=y -CONFIG_CHECKPOINT_RESTORE=y -# CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -CONFIG_RD_LZ4=y -CONFIG_RD_ZSTD=y -# CONFIG_BOOT_CONFIG is not set -CONFIG_INITRAMFS_PRESERVE_MTIME=y -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y -# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set -CONFIG_LD_ORPHAN_WARN=y -CONFIG_LD_ORPHAN_WARN_LEVEL="warn" -CONFIG_SYSCTL=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_EXPERT=y -CONFIG_MULTIUSER=y -# CONFIG_SGETMASK_SYSCALL is not set -CONFIG_SYSFS_SYSCALL=y -CONFIG_FHANDLE=y -CONFIG_POSIX_TIMERS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -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 -# CONFIG_KALLSYMS_SELFTEST is not set -# CONFIG_KALLSYMS_ALL is not set -CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_KCMP=y -CONFIG_RSEQ=y -CONFIG_CACHESTAT_SYSCALL=y -# CONFIG_DEBUG_RSEQ is not set -CONFIG_HAVE_PERF_EVENTS=y -# CONFIG_PC104 is not set - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# end of Kernel Performance Events And Counters - -CONFIG_SYSTEM_DATA_VERIFICATION=y -# CONFIG_PROFILING is not set - -# -# Kexec and crash features -# -# CONFIG_KEXEC is not set -# CONFIG_KEXEC_FILE is not set -# CONFIG_CRASH_DUMP is not set -# end of Kexec and crash features -# end of General setup - -CONFIG_64BIT=y -CONFIG_RISCV=y -CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_BITS_MAX=24 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 -CONFIG_RISCV_SBI=y -CONFIG_MMU=y -CONFIG_PAGE_OFFSET=0xff60000000000000 -CONFIG_ARCH_FLATMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=5 -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_RISCV_DMA_NONCOHERENT=y -CONFIG_AS_HAS_INSN=y -CONFIG_AS_HAS_OPTION_ARCH=y - -# -# SoC selection -# -# CONFIG_SOC_MICROCHIP_POLARFIRE is not set -# CONFIG_ARCH_RENESAS is not set -# CONFIG_SOC_SIFIVE is not set -CONFIG_ARCH_STARFIVE=y -CONFIG_SOC_STARFIVE=y -# CONFIG_ARCH_SUNXI is not set -# CONFIG_ARCH_THEAD is not set -# CONFIG_SOC_VIRT is not set -# end of SoC selection - -# -# CPU errata selection -# -# CONFIG_ERRATA_ANDES is not set -# CONFIG_ERRATA_SIFIVE is not set -# CONFIG_ERRATA_THEAD is not set -# end of CPU errata selection - -# -# Platform type -# -CONFIG_NONPORTABLE=y -# CONFIG_ARCH_RV32I is not set -CONFIG_ARCH_RV64I=y -# CONFIG_CMODEL_MEDLOW is not set -CONFIG_CMODEL_MEDANY=y -CONFIG_MODULE_SECTIONS=y -CONFIG_SMP=y -# CONFIG_SCHED_MC is not set -CONFIG_NR_CPUS=64 -CONFIG_HOTPLUG_CPU=y -CONFIG_RISCV_AMP=y -CONFIG_TUNE_GENERIC=y -# CONFIG_NUMA is not set -CONFIG_RISCV_ALTERNATIVE=y -CONFIG_RISCV_ISA_C=y -CONFIG_RISCV_ISA_SVNAPOT=y -CONFIG_RISCV_ISA_SVPBMT=y -CONFIG_TOOLCHAIN_HAS_V=y -CONFIG_RISCV_ISA_V=y -CONFIG_RISCV_ISA_V_DEFAULT_ENABLE=y -CONFIG_TOOLCHAIN_HAS_ZBB=y -CONFIG_RISCV_ISA_ZBB=y -CONFIG_RISCV_ISA_ZICBOM=y -CONFIG_RISCV_ISA_ZICBOZ=y -CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y -CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y -CONFIG_FPU=y -CONFIG_IRQ_STACKS=y -CONFIG_THREAD_SIZE_ORDER=2 -# end of Platform type - -# -# Kernel features -# -CONFIG_HZ_100=y -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -# CONFIG_HZ_1000 is not set -CONFIG_HZ=100 -CONFIG_SCHED_HRTICK=y -# CONFIG_RISCV_SBI_V01 is not set -# CONFIG_RISCV_BOOT_SPINWAIT is not set -CONFIG_ARCH_SUPPORTS_KEXEC=y -CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y -CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y -CONFIG_COMPAT=y -# CONFIG_RELOCATABLE is not set -# CONFIG_RANDOMIZE_BASE is not set -# end of Kernel features - -# -# Boot options -# -CONFIG_CMDLINE="" -CONFIG_EFI_STUB=y -CONFIG_EFI=y -CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y -# CONFIG_PHYS_RAM_BASE_FIXED is not set -CONFIG_RISCV_ISA_FALLBACK=y -# end of Boot options - -# -# Power management options -# -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_SUSPEND_SKIP_SYNC is not set -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_HIBERNATION=y -CONFIG_HIBERNATION_SNAPSHOT_DEV=y -CONFIG_PM_STD_PARTITION="PARTLABEL=hibernation" -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -# CONFIG_PM_AUTOSLEEP is not set -# CONFIG_PM_USERSPACE_AUTOSLEEP is not set -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=y -CONFIG_PM_DEBUG=y -CONFIG_PM_ADVANCED_DEBUG=y -CONFIG_PM_TEST_SUSPEND=y -CONFIG_PM_SLEEP_DEBUG=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_CPU_PM=y -# CONFIG_ENERGY_MODEL is not set -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_HIBERNATION_HEADER=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -# end of Power management options - -# -# CPU Power Management -# - -# -# CPU Idle -# -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 -CONFIG_DT_IDLE_GENPD=y - -# -# RISC-V CPU Idle Drivers -# -CONFIG_RISCV_SBI_CPUIDLE=y -# end of RISC-V CPU Idle Drivers -# end of CPU Idle - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_STAT=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y - -# -# CPU frequency scaling drivers -# -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -# CONFIG_QORIQ_CPUFREQ is not set -# end of CPU Frequency scaling -# end of CPU Power Management - -# CONFIG_VIRTUALIZATION is not set -CONFIG_ARCH_SUPPORTS_ACPI=y -# CONFIG_ACPI is not set - -# -# General architecture-dependent options -# -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_GENERIC_ENTRY=y -# CONFIG_KPROBES is not set -# CONFIG_JUMP_LABEL is not set -CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_KPROBES_ON_FTRACE=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_ARCH_HAS_DMA_SET_UNCACHED=y -CONFIG_ARCH_HAS_DMA_CLEAR_UNCACHED=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_HAVE_ARCH_SECCOMP=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -# CONFIG_SECCOMP is not set -CONFIG_HAVE_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_LTO_NONE=y -CONFIG_ARCH_SUPPORTS_CFI_CLANG=y -CONFIG_HAVE_CONTEXT_TRACKING_USER=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOVE_PUD=y -CONFIG_HAVE_MOVE_PMD=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_HUGE_VMALLOC=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_ARCH_MMAP_RND_BITS=18 -CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_VMAP_STACK=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set -CONFIG_ARCH_HAS_VDSO_DATA=y -CONFIG_HAVE_PREEMPT_DYNAMIC=y -CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y -CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y -CONFIG_DYNAMIC_SIGFRAME=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# end of GCOV-based kernel profiling - -CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set -CONFIG_FUNCTION_ALIGNMENT=0 -# end of General architecture-dependent options - -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_DEBUG is not set -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set -CONFIG_MODVERSIONS=y -CONFIG_ASM_MODVERSIONS=y -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_MODULE_SIG is not set -CONFIG_MODULE_COMPRESS_NONE=y -# CONFIG_MODULE_COMPRESS_GZIP is not set -# CONFIG_MODULE_COMPRESS_XZ is not set -# CONFIG_MODULE_COMPRESS_ZSTD is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_MODPROBE_PATH="/sbin/modprobe" -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BLK_CGROUP_PUNT_BIO=y -CONFIG_BLK_DEV_BSG_COMMON=y -CONFIG_BLK_ICQ=y -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_INTEGRITY is not set -# CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_WBT is not set -CONFIG_BLK_DEBUG_FS=y -# CONFIG_BLK_SED_OPAL is not set -# CONFIG_BLK_INLINE_ENCRYPTION is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_EFI_PARTITION=y -# end of Partition Types - -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y - -# -# IO Schedulers -# -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=y -CONFIG_IOSCHED_BFQ=y -# end of IO Schedulers - -CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_ARCH_HAS_MMIOWB=y -CONFIG_MMIOWB=y -CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_FREEZER=y - -# -# Executable file formats -# -CONFIG_BINFMT_ELF=y -CONFIG_COMPAT_BINFMT_ELF=y -CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_BINFMT_SCRIPT=y -CONFIG_ARCH_HAS_BINFMT_FLAT=y -# CONFIG_BINFMT_FLAT is not set -CONFIG_BINFMT_MISC=y -CONFIG_COREDUMP=y -# end of Executable file formats - -# -# Memory Management options -# -CONFIG_SWAP=y -# CONFIG_ZSWAP is not set - -# -# SLAB allocator options -# -# CONFIG_SLAB_DEPRECATED is not set -CONFIG_SLUB=y -# CONFIG_SLUB_TINY is not set -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SLAB_FREELIST_HARDENED is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_RANDOM_KMALLOC_CACHES is not set -# end of SLAB allocator options - -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -CONFIG_COMPAT_BRK=y -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y -CONFIG_MEMORY_ISOLATION=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_COMPACTION=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -CONFIG_PAGE_REPORTING=y -CONFIG_MIGRATION=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_CONTIG_ALLOC=y -CONFIG_PHYS_ADDR_T_64BIT=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_CMA=y -# CONFIG_CMA_DEBUG is not set -# CONFIG_CMA_DEBUGFS is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_CMA_AREAS=7 -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ZONE_DMA32=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_TEST is not set -# CONFIG_DMAPOOL_TEST is not set -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_MEMFD_CREATE=y -CONFIG_SECRETMEM=y -# CONFIG_ANON_VMA_NAME is not set -# CONFIG_USERFAULTFD is not set -# CONFIG_LRU_GEN is not set -CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y -CONFIG_PER_VMA_LOCK=y -CONFIG_LOCK_MM_AND_FIND_VMA=y - -# -# Data Access Monitoring -# -# CONFIG_DAMON is not set -# end of Data Access Monitoring -# end of Memory Management options - -CONFIG_NET=y -CONFIG_COMPAT_NETLINK_MESSAGES=y -CONFIG_NET_INGRESS=y -CONFIG_NET_EGRESS=y -CONFIG_NET_XGRESS=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -CONFIG_UNIX=y -CONFIG_UNIX_SCM=y -CONFIG_AF_UNIX_OOB=y -# CONFIG_UNIX_DIAG is not set -# CONFIG_TLS is not set -# CONFIG_XFRM_USER is not set -# CONFIG_NET_KEY is not set -# CONFIG_XDP_SOCKETS is not set -CONFIG_NET_HANDSHAKE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -# CONFIG_IP_MULTIPLE_TABLES is not set -# CONFIG_IP_ROUTE_MULTIPATH is not set -# CONFIG_IP_ROUTE_VERBOSE is not set -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=y -# CONFIG_IP_MROUTE is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_NET_IPVTI is not set -# CONFIG_NET_FOU is not set -# CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TABLE_PERTURB_ORDER=16 -CONFIG_INET_TUNNEL=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y -# CONFIG_INET_UDP_DIAG is not set -# CONFIG_INET_RAW_DIAG is not set -# CONFIG_INET_DIAG_DESTROY is not set -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_CUBIC=y -CONFIG_DEFAULT_TCP_CONG="cubic" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -CONFIG_IPV6_SIT=y -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -# CONFIG_IPV6_RPL_LWTUNNEL is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set -# CONFIG_MPTCP is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -CONFIG_NETFILTER=y -CONFIG_NETFILTER_ADVANCED=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_NETLINK=y -CONFIG_NETFILTER_BPF_LINK=y -# CONFIG_NETFILTER_NETLINK_HOOK is not set -CONFIG_NETFILTER_NETLINK_ACCT=y -CONFIG_NETFILTER_NETLINK_QUEUE=y -# CONFIG_NETFILTER_NETLINK_LOG is not set -# CONFIG_NETFILTER_NETLINK_OSF is not set -CONFIG_NF_CONNTRACK=y -# CONFIG_NF_LOG_SYSLOG is not set -# CONFIG_NF_CONNTRACK_MARK is not set -# CONFIG_NF_CONNTRACK_ZONES is not set -# CONFIG_NF_CONNTRACK_PROCFS is not set -# CONFIG_NF_CONNTRACK_EVENTS is not set -# CONFIG_NF_CONNTRACK_TIMEOUT is not set -# CONFIG_NF_CONNTRACK_TIMESTAMP is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CT_PROTO_DCCP=y -CONFIG_NF_CT_PROTO_SCTP=y -CONFIG_NF_CT_PROTO_UDPLITE=y -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CT_NETLINK is not set -CONFIG_NF_NAT=y -CONFIG_NF_NAT_REDIRECT=y -CONFIG_NF_NAT_MASQUERADE=y -CONFIG_NF_TABLES=y -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set -# CONFIG_NFT_NUMGEN is not set -CONFIG_NFT_CT=y -# CONFIG_NFT_CONNLIMIT is not set -# CONFIG_NFT_LOG is not set -# CONFIG_NFT_LIMIT is not set -# CONFIG_NFT_MASQ is not set -# CONFIG_NFT_REDIR is not set -# CONFIG_NFT_NAT is not set -# CONFIG_NFT_TUNNEL is not set -# CONFIG_NFT_QUEUE is not set -# CONFIG_NFT_QUOTA is not set -# CONFIG_NFT_REJECT is not set -CONFIG_NFT_COMPAT=y -# CONFIG_NFT_HASH is not set -CONFIG_NFT_FIB=y -# CONFIG_NFT_SOCKET is not set -# CONFIG_NFT_OSF is not set -# CONFIG_NFT_TPROXY is not set -# CONFIG_NFT_SYNPROXY is not set -# CONFIG_NF_FLOW_TABLE is not set -CONFIG_NETFILTER_XTABLES=y -# CONFIG_NETFILTER_XTABLES_COMPAT is not set - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=y -# CONFIG_NETFILTER_XT_CONNMARK is not set - -# -# Xtables targets -# -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LED is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -# CONFIG_NETFILTER_XT_TARGET_MARK is not set -CONFIG_NETFILTER_XT_NAT=y -CONFIG_NETFILTER_XT_TARGET_NETMAP=y -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_REDIRECT=y -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set - -# -# Xtables matches -# -# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -CONFIG_NETFILTER_XT_MATCH_IPCOMP=y -CONFIG_NETFILTER_XT_MATCH_IPRANGE=y -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -CONFIG_NETFILTER_XT_MATCH_MAC=y -CONFIG_NETFILTER_XT_MATCH_MARK=y -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OSF is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -CONFIG_NETFILTER_XT_MATCH_SOCKET=y -CONFIG_NETFILTER_XT_MATCH_STATE=y -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -CONFIG_NETFILTER_XT_MATCH_STRING=y -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -CONFIG_NETFILTER_XT_MATCH_U32=y -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=y -CONFIG_NF_SOCKET_IPV4=y -# CONFIG_NF_TPROXY_IPV4 is not set -CONFIG_NF_TABLES_IPV4=y -CONFIG_NFT_DUP_IPV4=y -CONFIG_NFT_FIB_IPV4=y -# CONFIG_NF_TABLES_ARP is not set -CONFIG_NF_DUP_IPV4=y -# CONFIG_NF_LOG_ARP is not set -# CONFIG_NF_LOG_IPV4 is not set -CONFIG_NF_REJECT_IPV4=y -CONFIG_IP_NF_IPTABLES=y -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_TTL is not set -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -# CONFIG_IP_NF_TARGET_SYNPROXY is not set -CONFIG_IP_NF_NAT=y -CONFIG_IP_NF_TARGET_MASQUERADE=y -CONFIG_IP_NF_TARGET_NETMAP=y -CONFIG_IP_NF_TARGET_REDIRECT=y -# CONFIG_IP_NF_MANGLE is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPTABLES is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_TABLES_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_LOG_IPV6 is not set -# CONFIG_IP6_NF_IPTABLES is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=y -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_BPFILTER is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -# CONFIG_BRIDGE is not set -# CONFIG_NET_DSA is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_LLC2 is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set -# CONFIG_IEEE802154 is not set -# CONFIG_NET_SCHED is not set -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y -# CONFIG_BATMAN_ADV is not set -# CONFIG_OPENVSWITCH is not set -# CONFIG_VSOCKETS is not set -CONFIG_NETLINK_DIAG=y -# CONFIG_MPLS is not set -# CONFIG_NET_NSH is not set -# CONFIG_HSR is not set -# CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_L3_MASTER_DEV is not set -# CONFIG_QRTR is not set -# CONFIG_NET_NCSI is not set -CONFIG_PCPU_DEV_REFCNT=y -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_XPS=y -# CONFIG_CGROUP_NET_PRIO is not set -# CONFIG_CGROUP_NET_CLASSID is not set -CONFIG_NET_RX_BUSY_POLL=y -CONFIG_BQL=y -# CONFIG_BPF_STREAM_PARSER is not set -CONFIG_NET_FLOW_LIMIT=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# end of Network testing -# end of Networking options - -# CONFIG_HAMRADIO is not set -CONFIG_CAN=y -CONFIG_CAN_RAW=y -CONFIG_CAN_BCM=y -CONFIG_CAN_GW=y -# CONFIG_CAN_J1939 is not set -# CONFIG_CAN_ISOTP is not set -CONFIG_BT=y -CONFIG_BT_BREDR=y -CONFIG_BT_RFCOMM=y -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=y -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -# CONFIG_BT_HIDP is not set -# CONFIG_BT_HS is not set -CONFIG_BT_LE=y -CONFIG_BT_LE_L2CAP_ECRED=y -# CONFIG_BT_LEDS is not set -# CONFIG_BT_MSFTEXT is not set -# CONFIG_BT_AOSPEXT is not set -CONFIG_BT_DEBUGFS=y -# CONFIG_BT_SELFTEST is not set -# CONFIG_BT_FEATURE_DEBUG is not set - -# -# Bluetooth device drivers -# -# CONFIG_BT_HCIBTUSB is not set -# CONFIG_BT_HCIBTSDIO is not set -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBCM4377 is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_BT_MRVL is not set -# CONFIG_BT_MTKSDIO is not set -# CONFIG_BT_QCOMSMD is not set -# CONFIG_BT_VIRTIO is not set -CONFIG_BT_AICUSB=y -# end of Bluetooth device drivers - -# CONFIG_AF_RXRPC is not set -# CONFIG_AF_KCM is not set -# CONFIG_MCTP is not set -CONFIG_WIRELESS=y -CONFIG_WIRELESS_EXT=y -CONFIG_WEXT_CORE=y -CONFIG_WEXT_PROC=y -CONFIG_WEXT_SPY=y -CONFIG_WEXT_PRIV=y -CONFIG_CFG80211=y -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_CERTIFICATION_ONUS is not set -CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y -CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_DEBUGFS is not set -CONFIG_CFG80211_CRDA_SUPPORT=y -# CONFIG_CFG80211_WEXT is not set -CONFIG_LIB80211=y -CONFIG_LIB80211_CRYPT_WEP=y -CONFIG_LIB80211_CRYPT_CCMP=y -CONFIG_LIB80211_CRYPT_TKIP=y -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=y -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -# CONFIG_MAC80211_MESH is not set -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUGFS is not set -# CONFIG_MAC80211_MESSAGE_TRACING is not set -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_RFKILL=y -CONFIG_RFKILL_LEDS=y -# CONFIG_RFKILL_INPUT is not set -# CONFIG_RFKILL_GPIO is not set -CONFIG_NET_9P=y -CONFIG_NET_9P_FD=y -CONFIG_NET_9P_VIRTIO=y -# CONFIG_NET_9P_DEBUG is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set -# CONFIG_NFC is not set -# CONFIG_PSAMPLE is not set -# CONFIG_NET_IFE is not set -# CONFIG_LWTUNNEL is not set -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y -CONFIG_NET_SELFTESTS=y -CONFIG_NET_SOCK_MSG=y -CONFIG_PAGE_POOL=y -# CONFIG_PAGE_POOL_STATS is not set -CONFIG_FAILOVER=y -CONFIG_ETHTOOL_NETLINK=y - -# -# Device Drivers -# -CONFIG_ARM_AMBA=y -CONFIG_HAVE_PCI=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -# CONFIG_PCIEPORTBUS is not set -# CONFIG_PCIEASPM is not set -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_DEBUG is not set -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_PRI is not set -# CONFIG_PCI_PASID is not set -# CONFIG_PCI_DYNAMIC_OF_NODES is not set -# CONFIG_PCIE_BUS_TUNE_OFF is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_PEER2PEER is not set -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -# CONFIG_HOTPLUG_PCI is not set - -# -# PCI controller drivers -# -# CONFIG_PCI_AARDVARK is not set -# CONFIG_PCIE_ALTERA is not set -# CONFIG_PCIE_APPLE is not set -# CONFIG_PCI_VERSATILE is not set -# CONFIG_PCIE_BRCMSTB is not set -# CONFIG_PCI_HOST_THUNDER_PEM is not set -# CONFIG_PCI_HOST_THUNDER_ECAM is not set -# CONFIG_PCI_FTPCI100 is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCI_LOONGSON is not set -# CONFIG_PCIE_MEDIATEK is not set -# CONFIG_PCIE_MEDIATEK_GEN3 is not set -# CONFIG_PCIE_MT7621 is not set -# CONFIG_PCI_TEGRA is not set -# CONFIG_PCIE_RCAR_HOST is not set -# CONFIG_PCIE_ROCKCHIP_HOST is not set -# CONFIG_PCI_V3_SEMI is not set -# CONFIG_PCI_XGENE is not set -# CONFIG_PCIE_XILINX is not set -# CONFIG_PCIE_XILINX_NWL is not set -# CONFIG_PCIE_XILINX_CPM is not set - -# -# Cadence-based PCIe controllers -# -# CONFIG_PCIE_CADENCE_PLAT_HOST is not set -# CONFIG_PCI_J721E_HOST is not set -# end of Cadence-based PCIe controllers - -# -# DesignWare-based PCIe controllers -# -# CONFIG_PCIE_AL is not set -# CONFIG_PCI_MESON is not set -# CONFIG_PCIE_ARTPEC6_HOST is not set -# CONFIG_PCIE_BT1 is not set -# CONFIG_PCI_IMX6_HOST is not set -# CONFIG_PCI_LAYERSCAPE is not set -# CONFIG_PCI_HISI is not set -# CONFIG_PCIE_KIRIN is not set -# CONFIG_PCIE_HISI_STB is not set -# CONFIG_PCIE_INTEL_GW is not set -# CONFIG_PCIE_KEEMBAY_HOST is not set -# CONFIG_PCIE_ARMADA_8K is not set -# CONFIG_PCIE_TEGRA194_HOST is not set -# CONFIG_PCIE_DW_PLAT_HOST is not set -# CONFIG_PCIE_QCOM is not set -# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set -# CONFIG_PCI_EXYNOS is not set -# CONFIG_PCIE_FU740 is not set -# CONFIG_PCIE_UNIPHIER is not set -# CONFIG_PCIE_SPEAR13XX is not set -# CONFIG_PCI_KEYSTONE_HOST is not set -# CONFIG_PCIE_VISCONTI_HOST is not set -# end of DesignWare-based PCIe controllers - -# -# Mobiveil-based PCIe controllers -# -# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set -# CONFIG_PCIE_MOBIVEIL_PLAT is not set -# end of Mobiveil-based PCIe controllers - -# -# PLDA-based PCIe controllers -# -CONFIG_PCIE_PLDA_HOST=y -# CONFIG_PCIE_MICROCHIP_HOST is not set -CONFIG_PCIE_STARFIVE_HOST=y -# end of PLDA-based PCIe controllers -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -# CONFIG_CXL_BUS is not set -# CONFIG_PCCARD is not set -# CONFIG_RAPIDIO is not set - -# -# Generic Driver Options -# -CONFIG_AUXILIARY_BUS=y -# CONFIG_UEVENT_HELPER is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -# CONFIG_DEVTMPFS_SAFE is not set -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y - -# -# Firmware loader -# -CONFIG_FW_LOADER=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER is not set -# CONFIG_FW_LOADER_COMPRESS is not set -CONFIG_FW_CACHE=y -# CONFIG_FW_UPLOAD is not set -# end of Firmware loader - -CONFIG_WANT_DEV_COREDUMP=y -CONFIG_ALLOW_DEV_COREDUMP=y -CONFIG_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_IRQ=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set -CONFIG_GENERIC_ARCH_TOPOLOGY=y -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -# end of Generic Driver Options - -# -# Bus devices -# -# CONFIG_ARM_INTEGRATOR_LM is not set -# CONFIG_BT1_APB is not set -# CONFIG_BT1_AXI is not set -# CONFIG_MOXTET is not set -# CONFIG_HISILICON_LPC is not set -# CONFIG_INTEL_IXP4XX_EB is not set -# CONFIG_QCOM_EBI2 is not set -# CONFIG_MHI_BUS is not set -# CONFIG_MHI_BUS_EP is not set -# end of Bus devices - -# -# Cache Drivers -# -# CONFIG_AX45MP_L2_CACHE is not set -# end of Cache Drivers - -# CONFIG_CONNECTOR is not set - -# -# Firmware Drivers -# - -# -# ARM System Control and Management Interface Protocol -# -# CONFIG_ARM_SCMI_PROTOCOL is not set -CONFIG_ARM_SCMI_POWER_DOMAIN=y -# CONFIG_ARM_SCMI_POWER_CONTROL is not set -# end of ARM System Control and Management Interface Protocol - -# CONFIG_ARM_SCPI_PROTOCOL is not set -CONFIG_ARM_SCPI_POWER_DOMAIN=y -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_SYSFB_SIMPLEFB is not set -# CONFIG_TURRIS_MOX_RWTM is not set -# CONFIG_BCM47XX_NVRAM is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_ESRT=y -CONFIG_EFI_PARAMS_FROM_FDT=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_GENERIC_STUB=y -# CONFIG_EFI_ZBOOT is not set -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_RCI2_TABLE is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -# CONFIG_EFI_DISABLE_RUNTIME is not set -# CONFIG_EFI_COCO_SECRET is not set -# end of EFI (Extensible Firmware Interface) Support - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -# CONFIG_GNSS is not set -CONFIG_MTD=y -# CONFIG_MTD_TESTS is not set - -# -# Partition parsers -# -# CONFIG_MTD_AR7_PARTS is not set -# CONFIG_MTD_BCM63XX_PARTS is not set -# CONFIG_MTD_BRCM_U_BOOT is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -CONFIG_MTD_OF_PARTS=y -# CONFIG_MTD_OF_PARTS_BCM4908 is not set -# CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set -# CONFIG_MTD_PARSER_IMAGETAG is not set -# CONFIG_MTD_PARSER_TPLINK_SAFELOADER is not set -# CONFIG_MTD_PARSER_TRX is not set -# CONFIG_MTD_SHARPSL_PARTS is not set -# CONFIG_MTD_REDBOOT_PARTS is not set -# end of Partition parsers - -# -# User Modules And Translation Layers -# -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y - -# -# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. -# -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_SM_FTL is not set -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_SWAP is not set -# CONFIG_MTD_PARTITIONED_MASTER is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_GEOMETRY is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_OTP is not set -# CONFIG_MTD_CFI_INTELEXT is not set -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# end of RAM/ROM/Flash chip drivers - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_SC520CDP is not set -# CONFIG_MTD_NETSC520 is not set -# CONFIG_MTD_TS5500 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set -# end of Mapping drivers for chip access - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MCHP48L640 is not set -CONFIG_MTD_SPEAR_SMI=y -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOCG3 is not set -# end of Self-contained MTD device drivers - -# -# NAND -# -# CONFIG_MTD_ONENAND is not set -# CONFIG_MTD_RAW_NAND is not set -# CONFIG_MTD_SPI_NAND is not set - -# -# ECC engine support -# -# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set -# CONFIG_MTD_NAND_ECC_SW_BCH is not set -# CONFIG_MTD_NAND_ECC_MXIC is not set -# CONFIG_MTD_NAND_ECC_MEDIATEK is not set -# end of ECC engine support -# end of NAND - -# -# LPDDR & LPDDR2 PCM memory drivers -# -# CONFIG_MTD_LPDDR is not set -# end of LPDDR & LPDDR2 PCM memory drivers - -CONFIG_MTD_SPI_NOR=y -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set -CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y -# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set -# CONFIG_SPI_HISI_SFC is not set -# CONFIG_SPI_NXP_SPIFI is not set -# CONFIG_MTD_UBI is not set -# CONFIG_MTD_HYPERBUS is not set -CONFIG_DTC=y -CONFIG_OF=y -# CONFIG_OF_UNITTEST is not set -# CONFIG_OF_ALL_DTBS is not set -CONFIG_OF_FLATTREE=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_KOBJ=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_IRQ=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OF_RESOLVE=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_CONFIGFS=y -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_NULL_BLK is not set -CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_DRBD is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_VIRTIO_BLK=y -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_BLK_DEV_UBLK is not set - -# -# NVME Support -# -CONFIG_NVME_CORE=y -CONFIG_BLK_DEV_NVME=y -# CONFIG_NVME_MULTIPATH is not set -# CONFIG_NVME_VERBOSE_ERRORS is not set -# CONFIG_NVME_HWMON is not set -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TCP is not set -# CONFIG_NVME_AUTH is not set -# CONFIG_NVME_TARGET is not set -# end of NVME Support - -# -# Misc devices -# -# CONFIG_AD525X_DPOT is not set -# CONFIG_DUMMY_IRQ is not set -# CONFIG_PHANTOM is not set -# CONFIG_TIFM_CORE is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ATMEL_SSC is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_SMPRO_ERRMON is not set -# CONFIG_SMPRO_MISC is not set -# CONFIG_GEHC_ACHC is not set -# CONFIG_HP_ILO is not set -# CONFIG_QCOM_COINCELL is not set -# CONFIG_QCOM_FASTRPC is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -# CONFIG_DS1682 is not set -# CONFIG_PCH_PHUB is not set -# CONFIG_LATTICE_ECP3_CONFIG is not set -# CONFIG_SRAM is not set -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_XILINX_SDFEC is not set -# CONFIG_HISI_HIKEY_USB is not set -# CONFIG_OPEN_DICE is not set -# CONFIG_VCPU_STALL_DETECTOR is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=y -# CONFIG_EEPROM_AT25 is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_MAX6875 is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_EEPROM_93XX46 is not set -# CONFIG_EEPROM_IDT_89HPESX is not set -# CONFIG_EEPROM_EE1004 is not set -# end of EEPROM support - -# CONFIG_CB710_CORE is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_TI_ST is not set -# end of Texas Instruments shared transport line discipline - -# CONFIG_SENSORS_LIS3_SPI is not set -# CONFIG_SENSORS_LIS3_I2C is not set -# CONFIG_ALTERA_STAPL is not set -# CONFIG_GENWQE is not set -# CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set -# CONFIG_MISC_RTSX_USB is not set -# CONFIG_PVPANIC is not set -# CONFIG_GP_PCI1XXXX is not set -# end of Misc devices - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI_COMMON=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -CONFIG_BLK_DEV_SR=y -# CONFIG_CHR_DEV_SG is not set -CONFIG_BLK_DEV_BSG=y -# CONFIG_CHR_DEV_SCH is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_HISI_SAS is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_MPT3SAS is not set -# CONFIG_SCSI_MPT2SAS is not set -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_WD719X is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_PMCRAID is not set -# CONFIG_SCSI_PM8001 is not set -CONFIG_SCSI_VIRTIO=y -# CONFIG_SCSI_DH is not set -# end of SCSI device support - -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -# CONFIG_SATA_AHCI_PLATFORM is not set -# CONFIG_AHCI_BRCM is not set -# CONFIG_AHCI_DA850 is not set -# CONFIG_AHCI_DM816 is not set -# CONFIG_AHCI_DWC is not set -# CONFIG_AHCI_ST is not set -# CONFIG_AHCI_IMX is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_MTK is not set -# CONFIG_AHCI_MVEBU is not set -# CONFIG_AHCI_SUNXI is not set -# CONFIG_AHCI_TEGRA is not set -# CONFIG_AHCI_XGENE is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_SATA_FSL is not set -# CONFIG_SATA_GEMINI is not set -# CONFIG_SATA_AHCI_SEATTLE is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -# CONFIG_ATA_PIIX is not set -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_HIGHBANK is not set -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set -# CONFIG_SATA_PROMISE is not set -# CONFIG_SATA_RCAR is not set -# CONFIG_SATA_SIL is not set -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -# CONFIG_PATA_AMD is not set -# CONFIG_PATA_ARASAN_CF is not set -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CS5520 is not set -# CONFIG_PATA_CS5530 is not set -# CONFIG_PATA_CS5536 is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IMX is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OLDPIIX is not set -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_SC1200 is not set -# CONFIG_PATA_SCH is not set -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_PXA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_IXP4XX_CF is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_OF_PLATFORM is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set -CONFIG_MD_BITMAP_FILE=y -# CONFIG_BCACHE is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_UNSTRIPED is not set -# CONFIG_DM_CRYPT is not set -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_RAID is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_NET_CORE=y -# CONFIG_BONDING is not set -# CONFIG_DUMMY is not set -# CONFIG_WIREGUARD is not set -# CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set -# CONFIG_NET_TEAM is not set -# CONFIG_MACVLAN is not set -# CONFIG_IPVLAN is not set -# CONFIG_VXLAN is not set -# CONFIG_GENEVE is not set -# CONFIG_BAREUDP is not set -# CONFIG_GTP is not set -# CONFIG_AMT is not set -# CONFIG_MACSEC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_TUN is not set -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_VETH is not set -CONFIG_VIRTIO_NET=y -# CONFIG_NLMON is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_3COM=y -# CONFIG_VORTEX is not set -# CONFIG_TYPHOON is not set -# CONFIG_NET_VENDOR_ACTIONS is not set -CONFIG_NET_VENDOR_ADAPTEC=y -# CONFIG_ADAPTEC_STARFIRE is not set -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_ET131X is not set -# CONFIG_NET_VENDOR_ALACRITECH is not set -CONFIG_NET_VENDOR_ALTEON=y -# CONFIG_ACENIC is not set -# CONFIG_ALTERA_TSE is not set -# CONFIG_NET_VENDOR_AMAZON is not set -CONFIG_NET_VENDOR_AMD=y -# CONFIG_AMD8111_ETH is not set -# CONFIG_PCNET32 is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_PDS_CORE is not set -# CONFIG_NET_XGENE is not set -# CONFIG_NET_XGENE_V2 is not set -# CONFIG_NET_VENDOR_AQUANTIA is not set -# CONFIG_NET_VENDOR_ARC is not set -CONFIG_NET_VENDOR_ASIX=y -# CONFIG_SPI_AX88796C is not set -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_ATL2 is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL1C is not set -# CONFIG_ALX is not set -# CONFIG_CX_ECAT is not set -# CONFIG_NET_VENDOR_BROADCOM is not set -# CONFIG_NET_VENDOR_CADENCE is not set -# CONFIG_NET_CALXEDA_XGMAC is not set -# CONFIG_NET_VENDOR_CAVIUM is not set -CONFIG_NET_VENDOR_CHELSIO=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set -CONFIG_NET_VENDOR_CIRRUS=y -# CONFIG_CS89x0_PLATFORM is not set -# CONFIG_EP93XX_ETH is not set -CONFIG_NET_VENDOR_CISCO=y -# CONFIG_ENIC is not set -# CONFIG_NET_VENDOR_CORTINA is not set -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DM9000 is not set -# CONFIG_DM9051 is not set -# CONFIG_DNET is not set -CONFIG_NET_VENDOR_DEC=y -# CONFIG_NET_TULIP is not set -CONFIG_NET_VENDOR_DLINK=y -# CONFIG_DL2K is not set -# CONFIG_SUNDANCE is not set -CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_BE2NET is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -# CONFIG_NET_VENDOR_EZCHIP is not set -CONFIG_NET_VENDOR_FARADAY=y -CONFIG_NET_VENDOR_FREESCALE=y -# CONFIG_FEC is not set -# CONFIG_FSL_FMAN is not set -# CONFIG_FSL_PQ_MDIO is not set -# CONFIG_FSL_XGMAC_MDIO is not set -# CONFIG_GIANFAR is not set -# CONFIG_FSL_ENETC is not set -# CONFIG_FSL_ENETC_VF is not set -# CONFIG_FSL_ENETC_IERB is not set -# CONFIG_FSL_ENETC_MDIO is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -# CONFIG_NET_VENDOR_GOOGLE is not set -CONFIG_NET_VENDOR_HISILICON=y -# CONFIG_HIX5HD2_GMAC is not set -# CONFIG_HISI_FEMAC is not set -# CONFIG_HIP04_ETH is not set -# CONFIG_HNS_DSAF is not set -# CONFIG_HNS_ENET is not set -# CONFIG_HNS3 is not set -# CONFIG_NET_VENDOR_HUAWEI is not set -# CONFIG_NET_VENDOR_INTEL is not set -# CONFIG_JME is not set -# CONFIG_KORINA is not set -CONFIG_NET_VENDOR_ADI=y -CONFIG_NET_VENDOR_LITEX=y -# CONFIG_LITEX_LITEETH is not set -# CONFIG_NET_VENDOR_MARVELL is not set -# CONFIG_NET_VENDOR_MEDIATEK is not set -# CONFIG_NET_VENDOR_MELLANOX is not set -# CONFIG_NET_VENDOR_MICREL is not set -# CONFIG_NET_VENDOR_MICROCHIP is not set -# CONFIG_NET_VENDOR_MICROSEMI is not set -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_NET_VENDOR_MYRI=y -# CONFIG_MYRI10GE is not set -# CONFIG_FEALNX is not set -# CONFIG_NET_VENDOR_NI is not set -# CONFIG_NET_VENDOR_NATSEMI is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -# CONFIG_NET_VENDOR_NETRONOME is not set -CONFIG_NET_VENDOR_NVIDIA=y -# CONFIG_FORCEDETH is not set -# CONFIG_LPC_ENET is not set -CONFIG_NET_VENDOR_OKI=y -# CONFIG_ETHOC is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -# CONFIG_NET_VENDOR_PENSANDO is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_QED is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set -# CONFIG_NET_VENDOR_QUALCOMM is not set -CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_8139CP is not set -# CONFIG_8139TOO is not set -CONFIG_R8169=y -# CONFIG_NET_VENDOR_RENESAS is not set -# CONFIG_NET_VENDOR_ROCKER is not set -# CONFIG_NET_VENDOR_SAMSUNG is not set -# CONFIG_NET_VENDOR_SEEQ is not set -CONFIG_NET_VENDOR_SILAN=y -# CONFIG_SC92031 is not set -CONFIG_NET_VENDOR_SIS=y -# CONFIG_SIS900 is not set -# CONFIG_SIS190 is not set -# CONFIG_NET_VENDOR_SOLARFLARE is not set -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_SMC91X is not set -# CONFIG_EPIC100 is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set -# CONFIG_NET_VENDOR_SOCIONEXT is not set -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_STMMAC_ETH=y -CONFIG_STMMAC_SELFTESTS=y -CONFIG_STMMAC_PLATFORM=y -CONFIG_DWMAC_DWC_QOS_ETH=y -CONFIG_DWMAC_GENERIC=y -# CONFIG_DWMAC_ANARION is not set -# CONFIG_DWMAC_INGENIC is not set -# CONFIG_DWMAC_IPQ806X is not set -# CONFIG_DWMAC_LPC18XX is not set -# CONFIG_DWMAC_MEDIATEK is not set -# CONFIG_DWMAC_MESON is not set -# CONFIG_DWMAC_QCOM_ETHQOS is not set -# CONFIG_DWMAC_ROCKCHIP is not set -# CONFIG_DWMAC_SOCFPGA is not set -CONFIG_DWMAC_STARFIVE=y -# CONFIG_DWMAC_STI is not set -# CONFIG_DWMAC_STM32 is not set -# CONFIG_DWMAC_SUNXI is not set -# CONFIG_DWMAC_SUN8I is not set -# CONFIG_DWMAC_IMX8 is not set -# CONFIG_DWMAC_INTEL_PLAT is not set -# CONFIG_DWMAC_TEGRA is not set -# CONFIG_DWMAC_VISCONTI is not set -# CONFIG_DWMAC_LOONGSON is not set -# CONFIG_STMMAC_PCI is not set -CONFIG_NET_VENDOR_SUN=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_CASSINI is not set -# CONFIG_NIU is not set -CONFIG_NET_VENDOR_SUNPLUS=y -# CONFIG_SP7021_EMAC is not set -# CONFIG_NET_VENDOR_SYNOPSYS is not set -CONFIG_NET_VENDOR_TEHUTI=y -# CONFIG_TEHUTI is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_DAVINCI_EMAC is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TI_CPSW is not set -# CONFIG_TLAN is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -# CONFIG_MSE102X is not set -# CONFIG_NET_VENDOR_VIA is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -# CONFIG_TXGBE is not set -# CONFIG_NET_VENDOR_WIZNET is not set -# CONFIG_NET_VENDOR_XILINX is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -CONFIG_PHYLINK=y -CONFIG_PHYLIB=y -CONFIG_SWPHY=y -# CONFIG_LED_TRIGGER_PHY is not set -CONFIG_PHYLIB_LEDS=y -CONFIG_FIXED_PHY=y -# CONFIG_SFP is not set - -# -# MII PHY device drivers -# -# CONFIG_AMD_PHY is not set -# CONFIG_MESON_GXL_PHY is not set -# CONFIG_ADIN_PHY is not set -# CONFIG_ADIN1100_PHY is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AX88796B_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM54140_PHY is not set -# CONFIG_BCM63XX_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM84881_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_CORTINA_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_LSI_ET1011C_PHY is not set -CONFIG_MARVELL_PHY=y -# CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MARVELL_88Q2XXX_PHY is not set -# CONFIG_MARVELL_88X2222_PHY is not set -# CONFIG_MAXLINEAR_GPHY is not set -# CONFIG_MEDIATEK_GE_PHY is not set -CONFIG_MICREL_PHY=y -# CONFIG_MICROCHIP_T1S_PHY is not set -CONFIG_MICROCHIP_PHY=y -# CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set -CONFIG_MOTORCOMM_PHY=y -# CONFIG_NATIONAL_PHY is not set -# CONFIG_NXP_CBTX_PHY is not set -# CONFIG_NXP_C45_TJA11XX_PHY is not set -# CONFIG_NXP_TJA11XX_PHY is not set -# CONFIG_NCN26000_PHY is not set -# CONFIG_AT803X_PHY is not set -# CONFIG_QSEMI_PHY is not set -CONFIG_REALTEK_PHY=y -# CONFIG_RENESAS_PHY is not set -# CONFIG_ROCKCHIP_PHY is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -# CONFIG_DP83TD510_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_XILINX_GMII2RGMII is not set -# CONFIG_MICREL_KS8995MA is not set -# CONFIG_PSE_CONTROLLER is not set -CONFIG_CAN_DEV=y -# CONFIG_CAN_VCAN is not set -# CONFIG_CAN_VXCAN is not set -CONFIG_CAN_NETLINK=y -CONFIG_CAN_CALC_BITTIMING=y -# CONFIG_CAN_AT91 is not set -# CONFIG_CAN_BXCAN is not set -# CONFIG_CAN_CAN327 is not set -# CONFIG_CAN_FLEXCAN is not set -# CONFIG_CAN_GRCAN is not set -# CONFIG_CAN_KVASER_PCIEFD is not set -# CONFIG_CAN_SLCAN is not set -# CONFIG_CAN_SUN4I is not set -# CONFIG_CAN_XILINXCAN is not set -CONFIG_IPMS_CAN=y -# CONFIG_CAN_C_CAN is not set -# CONFIG_CAN_CC770 is not set -# CONFIG_CAN_CTUCANFD is not set -# CONFIG_CAN_CTUCANFD_PCI is not set -# CONFIG_CAN_CTUCANFD_PLATFORM is not set -# CONFIG_CAN_IFI_CANFD is not set -# CONFIG_CAN_M_CAN is not set -# CONFIG_CAN_PEAK_PCIEFD is not set -# CONFIG_CAN_RCAR is not set -# CONFIG_CAN_RCAR_CANFD is not set -# CONFIG_CAN_SJA1000 is not set -# CONFIG_CAN_SOFTING is not set - -# -# CAN SPI interfaces -# -# CONFIG_CAN_HI311X is not set -# CONFIG_CAN_MCP251X is not set -# CONFIG_CAN_MCP251XFD is not set -# end of CAN SPI interfaces - -# -# CAN USB interfaces -# -# CONFIG_CAN_8DEV_USB is not set -# CONFIG_CAN_EMS_USB is not set -# CONFIG_CAN_ESD_USB is not set -# CONFIG_CAN_ETAS_ES58X is not set -# CONFIG_CAN_F81604 is not set -# CONFIG_CAN_GS_USB is not set -# CONFIG_CAN_KVASER_USB is not set -# CONFIG_CAN_MCBA_USB is not set -# CONFIG_CAN_PEAK_USB is not set -# CONFIG_CAN_UCAN is not set -# end of CAN USB interfaces - -# CONFIG_CAN_DEBUG_DEVICES is not set -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -CONFIG_FWNODE_MDIO=y -CONFIG_OF_MDIO=y -CONFIG_MDIO_DEVRES=y -# CONFIG_MDIO_SUN4I is not set -# CONFIG_MDIO_XGENE is not set -# CONFIG_MDIO_ASPEED is not set -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BCM_IPROC is not set -# CONFIG_MDIO_BCM_UNIMAC is not set -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_MSCC_MIIM is not set -# CONFIG_MDIO_MOXART is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_IPQ4019 is not set -# CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_THUNDER is not set - -# -# MDIO Multiplexers -# -# CONFIG_MDIO_BUS_MUX_MESON_G12A is not set -# CONFIG_MDIO_BUS_MUX_MESON_GXL is not set -# CONFIG_MDIO_BUS_MUX_BCM6368 is not set -# CONFIG_MDIO_BUS_MUX_BCM_IPROC is not set -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set - -# -# PCS device drivers -# -CONFIG_PCS_XPCS=y -# CONFIG_PCS_RZN1_MIIC is not set -# end of PCS device drivers - -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -CONFIG_USB_NET_DRIVERS=y -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_RTL8152 is not set -# CONFIG_USB_LAN78XX is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_HSO is not set -# CONFIG_USB_IPHETH is not set -CONFIG_WLAN=y -CONFIG_WLAN_VENDOR_ADMTEK=y -# CONFIG_ADM8211 is not set -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH5K_PCI is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_CARL9170 is not set -# CONFIG_ATH6KL is not set -# CONFIG_AR5523 is not set -# CONFIG_WIL6210 is not set -# CONFIG_ATH10K is not set -# CONFIG_WCN36XX is not set -# CONFIG_ATH11K is not set -# CONFIG_ATH12K is not set -CONFIG_WLAN_VENDOR_ATMEL=y -# CONFIG_ATMEL is not set -# CONFIG_AT76C50X_USB is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMSMAC is not set -# CONFIG_BRCMFMAC is not set -CONFIG_WLAN_VENDOR_CISCO=y -# CONFIG_AIRO is not set -CONFIG_WLAN_VENDOR_INTEL=y -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -CONFIG_IWLWIFI=y -CONFIG_IWLWIFI_LEDS=y -CONFIG_IWLDVM=y -CONFIG_IWLMVM=y - -# -# Debugging Options -# -# CONFIG_IWLWIFI_DEBUG is not set -# end of Debugging Options - -CONFIG_WLAN_VENDOR_INTERSIL=y -CONFIG_HOSTAP=y -# CONFIG_HOSTAP_FIRMWARE is not set -# CONFIG_HOSTAP_PLX is not set -# CONFIG_HOSTAP_PCI is not set -# CONFIG_HERMES is not set -# CONFIG_P54_COMMON is not set -CONFIG_WLAN_VENDOR_MARVELL=y -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_MWIFIEX is not set -# CONFIG_MWL8K is not set -CONFIG_WLAN_VENDOR_MEDIATEK=y -# CONFIG_MT7601U is not set -# CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set -# CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set -# CONFIG_MT7615E is not set -# CONFIG_MT7663U is not set -# CONFIG_MT7663S is not set -# CONFIG_MT7915E is not set -# CONFIG_MT7921E is not set -# CONFIG_MT7921S is not set -# CONFIG_MT7921U is not set -# CONFIG_MT7996E is not set -CONFIG_WLAN_VENDOR_MICROCHIP=y -# CONFIG_WILC1000_SDIO is not set -# CONFIG_WILC1000_SPI is not set -CONFIG_WLAN_VENDOR_PURELIFI=y -# CONFIG_PLFXLC is not set -CONFIG_WLAN_VENDOR_RALINK=y -# CONFIG_RT2X00 is not set -CONFIG_WLAN_VENDOR_REALTEK=y -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_RTL_CARDS is not set -# CONFIG_RTL8XXXU is not set -# CONFIG_RTW88 is not set -# CONFIG_RTW89 is not set -CONFIG_WLAN_VENDOR_RSI=y -# CONFIG_RSI_91X is not set -CONFIG_WLAN_VENDOR_SILABS=y -# CONFIG_WFX is not set -CONFIG_WLAN_VENDOR_ST=y -# CONFIG_CW1200 is not set -CONFIG_WLAN_VENDOR_TI=y -# CONFIG_WL1251 is not set -# CONFIG_WL12XX is not set -# CONFIG_WL18XX is not set -# CONFIG_WLCORE is not set -CONFIG_WLAN_VENDOR_ZYDAS=y -# CONFIG_USB_ZD1201 is not set -# CONFIG_ZD1211RW is not set -CONFIG_WLAN_VENDOR_QUANTENNA=y -# CONFIG_QTNFMAC_PCIE is not set -CONFIG_USB_WIFI_ECR6600U=y -CONFIG_AIC_WLAN_SUPPORT=y -CONFIG_AIC8800_WLAN_SUPPORT=m -CONFIG_AIC_LOADFW_SUPPORT=m -# CONFIG_USB_NET_RNDIS_WLAN is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_VIRT_WIFI is not set -# CONFIG_WAN is not set - -# -# Wireless WAN -# -# CONFIG_WWAN is not set -# end of Wireless WAN - -# CONFIG_VMXNET3 is not set -# CONFIG_NETDEVSIM is not set -CONFIG_NET_FAILOVER=y -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_LEDS=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_SPARSEKMAP is not set -# CONFIG_INPUT_MATRIXKMAP is not set - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ADC is not set -# CONFIG_TOUCHSCREEN_AR1021_I2C is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_BU21029 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP5 is not set -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX is not set -# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set -# CONFIG_TOUCHSCREEN_EXC3000 is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -CONFIG_TOUCHSCREEN_GOODIX=y -# CONFIG_TOUCHSCREEN_HIDEEP is not set -# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set -# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set -# CONFIG_TOUCHSCREEN_ILI210X is not set -# CONFIG_TOUCHSCREEN_ILITEK is not set -# CONFIG_TOUCHSCREEN_IPROC is not set -# CONFIG_TOUCHSCREEN_S6SY761 is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -# CONFIG_TOUCHSCREEN_ELAN is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_WACOM_I2C is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MCS5000 is not set -# CONFIG_TOUCHSCREEN_MMS114 is not set -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -# CONFIG_TOUCHSCREEN_MSG2638 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -# CONFIG_TOUCHSCREEN_IMAGIS is not set -# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set -# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set -# CONFIG_TOUCHSCREEN_MIGOR is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_PIXCIR is not set -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TS4800 is not set -# CONFIG_TOUCHSCREEN_TSC_SERIO is not set -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_RM_TS is not set -# CONFIG_TOUCHSCREEN_SILEAD is not set -# CONFIG_TOUCHSCREEN_SIS_I2C is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SUN4I is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set -# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_TOUCHSCREEN_ZET6223 is not set -# CONFIG_TOUCHSCREEN_ZFORCE is not set -# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_IQS5XX is not set -# CONFIG_TOUCHSCREEN_IQS7211 is not set -# CONFIG_TOUCHSCREEN_ZINITIX is not set -# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set -CONFIG_TOUCHSCREEN_TINKER_FT5406=y -# CONFIG_INPUT_MISC is not set -# CONFIG_RMI4_CORE is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_AMBAKMI is not set -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_SERIO_ARC_PS2 is not set -# CONFIG_SERIO_APBPS2 is not set -# CONFIG_SERIO_OLPC_APSP is not set -# CONFIG_SERIO_SUN4I_PS2 is not set -# CONFIG_SERIO_GPIO_PS2 is not set -# CONFIG_USERIO is not set -# CONFIG_GAMEPORT is not set -# end of Hardware I/O ports -# end of Input device support - -# -# Character devices -# -CONFIG_TTY=y -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -CONFIG_LEGACY_TIOCSTI=y -CONFIG_LDISC_AUTOLOAD=y - -# -# Serial drivers -# -CONFIG_SERIAL_EARLYCON=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_16550A_VARIANTS=y -# CONFIG_SERIAL_8250_FINTEK is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y -CONFIG_SERIAL_8250_PCILIB=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_EXAR=y -CONFIG_SERIAL_8250_NR_UARTS=6 -CONFIG_SERIAL_8250_RUNTIME_UARTS=6 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_ASPEED_VUART is not set -# CONFIG_SERIAL_8250_PCI1XXXX is not set -# CONFIG_SERIAL_8250_SHARE_IRQ is not set -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -# CONFIG_SERIAL_8250_RSA is not set -CONFIG_SERIAL_8250_DWLIB=y -# CONFIG_SERIAL_8250_FSL is not set -CONFIG_SERIAL_8250_DW=y -# CONFIG_SERIAL_8250_EM is not set -# CONFIG_SERIAL_8250_IOC3 is not set -# CONFIG_SERIAL_8250_RT288X is not set -# CONFIG_SERIAL_8250_OMAP is not set -# CONFIG_SERIAL_8250_LPC18XX is not set -# CONFIG_SERIAL_8250_MT6577 is not set -# CONFIG_SERIAL_8250_UNIPHIER is not set -# CONFIG_SERIAL_8250_INGENIC is not set -CONFIG_SERIAL_8250_LPSS=y -CONFIG_SERIAL_8250_MID=y -CONFIG_SERIAL_8250_PERICOM=y -# CONFIG_SERIAL_8250_PXA is not set -CONFIG_SERIAL_8250_TEGRA=y -# CONFIG_SERIAL_8250_BCM7271 is not set -CONFIG_SERIAL_OF_PLATFORM=y - -# -# Non-8250 serial port support -# -# CONFIG_SERIAL_AMBA_PL010 is not set -# CONFIG_SERIAL_AMBA_PL011 is not set -# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set -# CONFIG_SERIAL_ATMEL is not set -# CONFIG_SERIAL_MESON is not set -# CONFIG_SERIAL_CLPS711X is not set -# CONFIG_SERIAL_SAMSUNG is not set -# CONFIG_SERIAL_TEGRA is not set -# CONFIG_SERIAL_TEGRA_TCU is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX310X is not set -# CONFIG_SERIAL_IMX is not set -# CONFIG_SERIAL_IMX_EARLYCON is not set -# CONFIG_SERIAL_UARTLITE is not set -# CONFIG_SERIAL_SH_SCI is not set -# CONFIG_SERIAL_HS_LPC32XX is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_ICOM is not set -# CONFIG_SERIAL_JSM is not set -# CONFIG_SERIAL_MSM is not set -# CONFIG_SERIAL_VT8500 is not set -# CONFIG_SERIAL_OMAP is not set -# CONFIG_SERIAL_SIFIVE is not set -# CONFIG_SERIAL_LANTIQ is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_BCM63XX is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_PCH_UART is not set -# CONFIG_SERIAL_MXS_AUART is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -# CONFIG_SERIAL_MPS2_UART is not set -# CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_FSL_LPUART is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set -# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -# CONFIG_SERIAL_ST_ASC is not set -# CONFIG_SERIAL_SPRD is not set -# CONFIG_SERIAL_STM32 is not set -# CONFIG_SERIAL_MVEBU_UART is not set -# CONFIG_SERIAL_OWL is not set -# CONFIG_SERIAL_RDA is not set -# CONFIG_SERIAL_MILBEAUT_USIO is not set -# CONFIG_SERIAL_LITEUART is not set -# CONFIG_SERIAL_SUNPLUS is not set -# CONFIG_SERIAL_NUVOTON_MA35D1 is not set -# end of Serial drivers - -CONFIG_SERIAL_MCTRL_GPIO=y -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_GOLDFISH_TTY is not set -# CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set -# CONFIG_NULL_TTY is not set -CONFIG_HVC_DRIVER=y -# CONFIG_RPMSG_TTY is not set -# CONFIG_SERIAL_DEV_BUS is not set -CONFIG_TTY_PRINTK=y -CONFIG_TTY_PRINTK_LEVEL=6 -CONFIG_VIRTIO_CONSOLE=y -# CONFIG_IPMI_HANDLER is not set -# CONFIG_ASPEED_KCS_IPMI_BMC is not set -# CONFIG_NPCM7XX_KCS_IPMI_BMC is not set -# CONFIG_ASPEED_BT_IPMI_BMC is not set -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -CONFIG_HW_RANDOM_INTEL=y -CONFIG_HW_RANDOM_AMD=y -CONFIG_HW_RANDOM_ATMEL=y -# CONFIG_HW_RANDOM_BA431 is not set -CONFIG_HW_RANDOM_BCM2835=y -CONFIG_HW_RANDOM_IPROC_RNG200=y -CONFIG_HW_RANDOM_GEODE=y -CONFIG_HW_RANDOM_IXP4XX=y -CONFIG_HW_RANDOM_OMAP=y -CONFIG_HW_RANDOM_OMAP3_ROM=y -# CONFIG_HW_RANDOM_VIRTIO is not set -CONFIG_HW_RANDOM_MXC_RNGA=y -CONFIG_HW_RANDOM_IMX_RNGC=y -CONFIG_HW_RANDOM_INGENIC_RNG=y -CONFIG_HW_RANDOM_INGENIC_TRNG=y -CONFIG_HW_RANDOM_NOMADIK=y -CONFIG_HW_RANDOM_HISI=y -# CONFIG_HW_RANDOM_HISTB is not set -# CONFIG_HW_RANDOM_ST is not set -CONFIG_HW_RANDOM_XGENE=y -CONFIG_HW_RANDOM_STM32=y -# CONFIG_HW_RANDOM_PIC32 is not set -# CONFIG_HW_RANDOM_MESON is not set -# CONFIG_HW_RANDOM_MTK is not set -# CONFIG_HW_RANDOM_EXYNOS is not set -# CONFIG_HW_RANDOM_NPCM is not set -CONFIG_HW_RANDOM_KEYSTONE=y -# CONFIG_HW_RANDOM_CCTRNG is not set -# CONFIG_HW_RANDOM_XIPHERA is not set -CONFIG_HW_RANDOM_CN10K=y -CONFIG_HW_RANDOM_JH7110=y -# CONFIG_APPLICOM is not set -CONFIG_DEVMEM=y -CONFIG_DEVPORT=y -# CONFIG_TCG_TPM is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# end of Character devices - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=y -# CONFIG_I2C_MUX is not set -# CONFIG_I2C_ATR is not set -CONFIG_I2C_HELPER_AUTO=y - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_HIX5HD2 is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_ALTERA is not set -# CONFIG_I2C_ASPEED is not set -# CONFIG_I2C_AT91 is not set -# CONFIG_I2C_AXXIA is not set -# CONFIG_I2C_BCM2835 is not set -# CONFIG_I2C_BCM_IPROC is not set -# CONFIG_I2C_BCM_KONA is not set -CONFIG_I2C_BRCMSTB=y -# CONFIG_I2C_CADENCE is not set -# CONFIG_I2C_CBUS_GPIO is not set -# CONFIG_I2C_DAVINCI is not set -CONFIG_I2C_DESIGNWARE_CORE=y -# CONFIG_I2C_DESIGNWARE_SLAVE is not set -CONFIG_I2C_DESIGNWARE_PLATFORM=y -# CONFIG_I2C_DESIGNWARE_PCI is not set -# CONFIG_I2C_DIGICOLOR is not set -# CONFIG_I2C_EG20T is not set -# CONFIG_I2C_EMEV2 is not set -# CONFIG_I2C_EXYNOS5 is not set -# CONFIG_I2C_GPIO is not set -# CONFIG_I2C_GXP is not set -# CONFIG_I2C_HIGHLANDER is not set -# CONFIG_I2C_HISI is not set -# CONFIG_I2C_IMG is not set -# CONFIG_I2C_IMX is not set -# CONFIG_I2C_IMX_LPI2C is not set -# CONFIG_I2C_IOP3XX is not set -# CONFIG_I2C_JZ4780 is not set -# CONFIG_I2C_LPC2K is not set -# CONFIG_I2C_LS2X is not set -# CONFIG_I2C_MESON is not set -# CONFIG_I2C_MICROCHIP_CORE is not set -# CONFIG_I2C_MT65XX is not set -# CONFIG_I2C_MT7621 is not set -# CONFIG_I2C_MV64XXX is not set -# CONFIG_I2C_MXS is not set -# CONFIG_I2C_NOMADIK is not set -# CONFIG_I2C_NPCM is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_OMAP is not set -# CONFIG_I2C_OWL is not set -# CONFIG_I2C_APPLE is not set -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_PNX is not set -# CONFIG_I2C_PXA is not set -# CONFIG_I2C_QCOM_CCI is not set -# CONFIG_I2C_QUP is not set -# CONFIG_I2C_RIIC is not set -# CONFIG_I2C_RK3X is not set -# CONFIG_I2C_RZV2M is not set -# CONFIG_I2C_S3C2410 is not set -# CONFIG_I2C_SH_MOBILE is not set -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_SPRD is not set -# CONFIG_I2C_ST is not set -# CONFIG_I2C_STM32F4 is not set -# CONFIG_I2C_STM32F7 is not set -# CONFIG_I2C_SUN6I_P2WI is not set -# CONFIG_I2C_SYNQUACER is not set -# CONFIG_I2C_TEGRA is not set -# CONFIG_I2C_TEGRA_BPMP is not set -# CONFIG_I2C_UNIPHIER is not set -# CONFIG_I2C_UNIPHIER_F is not set -# CONFIG_I2C_VERSATILE is not set -# CONFIG_I2C_WMT is not set -# CONFIG_I2C_THUNDERX is not set -# CONFIG_I2C_XILINX is not set -# CONFIG_I2C_XLP9XX is not set -# CONFIG_I2C_RCAR is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_MLXCPLD is not set -# CONFIG_I2C_VIRTIO is not set -# end of I2C Hardware Bus support - -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# end of I2C support - -# CONFIG_I3C is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y -CONFIG_SPI_MEM=y - -# -# SPI Master Controller Drivers -# -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_ALTERA_CORE is not set -# CONFIG_SPI_AMLOGIC_SPIFC_A1 is not set -# CONFIG_SPI_AR934X is not set -# CONFIG_SPI_ATH79 is not set -# CONFIG_SPI_ARMADA_3700 is not set -# CONFIG_SPI_ASPEED_SMC is not set -# CONFIG_SPI_ATMEL is not set -# CONFIG_SPI_ATMEL_QUADSPI is not set -# CONFIG_SPI_AXI_SPI_ENGINE is not set -# CONFIG_SPI_BCM2835 is not set -# CONFIG_SPI_BCM2835AUX is not set -# CONFIG_SPI_BCM63XX is not set -# CONFIG_SPI_BCM63XX_HSSPI is not set -# CONFIG_SPI_BCM_QSPI is not set -# CONFIG_SPI_BCMBCA_HSSPI is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_CADENCE is not set -CONFIG_SPI_CADENCE_QUADSPI=y -# CONFIG_SPI_CADENCE_XSPI is not set -# CONFIG_SPI_CLPS711X is not set -# CONFIG_SPI_DAVINCI is not set -# CONFIG_SPI_DESIGNWARE is not set -# CONFIG_SPI_EP93XX is not set -# CONFIG_SPI_FSL_LPSPI is not set -# CONFIG_SPI_FSL_QUADSPI is not set -# CONFIG_SPI_GXP is not set -# CONFIG_SPI_HISI_KUNPENG is not set -# CONFIG_SPI_HISI_SFC_V3XX is not set -# CONFIG_SPI_NXP_FLEXSPI is not set -# CONFIG_SPI_GPIO is not set -# CONFIG_SPI_IMG_SPFI is not set -# CONFIG_SPI_IMX is not set -# CONFIG_SPI_INGENIC is not set -# CONFIG_SPI_INTEL_PCI is not set -# CONFIG_SPI_INTEL_PLATFORM is not set -# CONFIG_SPI_JCORE is not set -# CONFIG_SPI_LOONGSON_PCI is not set -# CONFIG_SPI_LOONGSON_PLATFORM is not set -# CONFIG_SPI_LP8841_RTC is not set -# CONFIG_SPI_FSL_SPI is not set -# CONFIG_SPI_FSL_DSPI is not set -# CONFIG_SPI_MESON_SPICC is not set -# CONFIG_SPI_MESON_SPIFC is not set -# CONFIG_SPI_MICROCHIP_CORE is not set -# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set -# CONFIG_SPI_MT65XX is not set -# CONFIG_SPI_MT7621 is not set -# CONFIG_SPI_MTK_NOR is not set -# CONFIG_SPI_WPCM_FIU is not set -# CONFIG_SPI_NPCM_FIU is not set -# CONFIG_SPI_NPCM_PSPI is not set -# CONFIG_SPI_LANTIQ_SSC is not set -# CONFIG_SPI_OC_TINY is not set -# CONFIG_SPI_OMAP24XX is not set -# CONFIG_SPI_TI_QSPI is not set -# CONFIG_SPI_ORION is not set -# CONFIG_SPI_PCI1XXXX is not set -# CONFIG_SPI_PIC32 is not set -# CONFIG_SPI_PIC32_SQI is not set -CONFIG_SPI_PL022=y -# CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_ROCKCHIP is not set -# CONFIG_SPI_ROCKCHIP_SFC is not set -# CONFIG_SPI_RSPI is not set -# CONFIG_SPI_RZV2M_CSI is not set -# CONFIG_SPI_QCOM_QSPI is not set -# CONFIG_SPI_QUP is not set -# CONFIG_SPI_S3C64XX is not set -# CONFIG_SPI_SC18IS602 is not set -# CONFIG_SPI_SH_MSIOF is not set -# CONFIG_SPI_SH is not set -# CONFIG_SPI_SH_HSPI is not set -CONFIG_SPI_SIFIVE=y -# CONFIG_SPI_SN_F_OSPI is not set -# CONFIG_SPI_SPRD is not set -# CONFIG_SPI_SPRD_ADI is not set -# CONFIG_SPI_STM32 is not set -# CONFIG_SPI_STM32_QSPI is not set -# CONFIG_SPI_ST_SSC4 is not set -# CONFIG_SPI_SUN4I is not set -# CONFIG_SPI_SUN6I is not set -# CONFIG_SPI_SUNPLUS_SP7021 is not set -# CONFIG_SPI_SYNQUACER is not set -# CONFIG_SPI_MXIC is not set -# CONFIG_SPI_TEGRA210_QUAD is not set -# CONFIG_SPI_TEGRA114 is not set -# CONFIG_SPI_TEGRA20_SFLASH is not set -# CONFIG_SPI_TEGRA20_SLINK is not set -# CONFIG_SPI_THUNDERX is not set -# CONFIG_SPI_TOPCLIFF_PCH is not set -# CONFIG_SPI_UNIPHIER is not set -# CONFIG_SPI_XCOMM is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPI_XLP is not set -# CONFIG_SPI_XTENSA_XTFPGA is not set -# CONFIG_SPI_ZYNQ_QSPI is not set -# CONFIG_SPI_ZYNQMP_GQSPI is not set -# CONFIG_SPI_AMD is not set - -# -# SPI Multiplexer support -# -# CONFIG_SPI_MUX is not set - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=y -# CONFIG_SPI_LOOPBACK_TEST is not set -# CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_SLAVE is not set -CONFIG_SPI_DYNAMIC=y -# CONFIG_SPMI is not set -# CONFIG_HSI is not set -# CONFIG_PPS is not set - -# -# PTP clock support -# -# CONFIG_PTP_1588_CLOCK is not set -CONFIG_PTP_1588_CLOCK_OPTIONAL=y - -# -# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -# -# end of PTP clock support - -CONFIG_PINCTRL=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_PINMUX=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_PINCONF=y -CONFIG_GENERIC_PINCONF=y -# CONFIG_DEBUG_PINCTRL is not set -# CONFIG_PINCTRL_AMD is not set -# CONFIG_PINCTRL_AT91PIO4 is not set -# CONFIG_PINCTRL_AXP209 is not set -# CONFIG_PINCTRL_BM1880 is not set -# CONFIG_PINCTRL_CY8C95X0 is not set -# CONFIG_PINCTRL_DA850_PUPD is not set -# CONFIG_PINCTRL_EQUILIBRIUM is not set -# CONFIG_PINCTRL_INGENIC is not set -# CONFIG_PINCTRL_LOONGSON2 is not set -# CONFIG_PINCTRL_LPC18XX is not set -# CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set -# CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PINCTRL_PISTACHIO is not set -# CONFIG_PINCTRL_ROCKCHIP is not set -# CONFIG_PINCTRL_SINGLE is not set -# CONFIG_PINCTRL_STMFX is not set -# CONFIG_PINCTRL_SX150X is not set -# CONFIG_PINCTRL_MLXBF3 is not set -# CONFIG_PINCTRL_OWL is not set -# CONFIG_PINCTRL_ASPEED_G4 is not set -# CONFIG_PINCTRL_ASPEED_G5 is not set -# CONFIG_PINCTRL_ASPEED_G6 is not set -# CONFIG_PINCTRL_BCM281XX is not set -# CONFIG_PINCTRL_BCM2835 is not set -# CONFIG_PINCTRL_BCM4908 is not set -# CONFIG_PINCTRL_BCM6318 is not set -# CONFIG_PINCTRL_BCM6328 is not set -# CONFIG_PINCTRL_BCM6358 is not set -# CONFIG_PINCTRL_BCM6362 is not set -# CONFIG_PINCTRL_BCM6368 is not set -# CONFIG_PINCTRL_BCM63268 is not set -# CONFIG_PINCTRL_IPROC_GPIO is not set -# CONFIG_PINCTRL_CYGNUS_MUX is not set -# CONFIG_PINCTRL_NS is not set -# CONFIG_PINCTRL_NSP_GPIO is not set -# CONFIG_PINCTRL_NS2_MUX is not set -# CONFIG_PINCTRL_NSP_MUX is not set -# CONFIG_PINCTRL_AS370 is not set -# CONFIG_PINCTRL_BERLIN_BG4CT is not set - -# -# MediaTek pinctrl drivers -# -# CONFIG_EINT_MTK is not set -# CONFIG_PINCTRL_MT2701 is not set -# CONFIG_PINCTRL_MT7623 is not set -# CONFIG_PINCTRL_MT7629 is not set -# CONFIG_PINCTRL_MT8135 is not set -# CONFIG_PINCTRL_MT8127 is not set -# CONFIG_PINCTRL_MT2712 is not set -# CONFIG_PINCTRL_MT6765 is not set -# CONFIG_PINCTRL_MT6779 is not set -# CONFIG_PINCTRL_MT6795 is not set -# CONFIG_PINCTRL_MT6797 is not set -# CONFIG_PINCTRL_MT7622 is not set -# CONFIG_PINCTRL_MT7981 is not set -# CONFIG_PINCTRL_MT7986 is not set -# CONFIG_PINCTRL_MT8167 is not set -# CONFIG_PINCTRL_MT8173 is not set -# CONFIG_PINCTRL_MT8183 is not set -# CONFIG_PINCTRL_MT8186 is not set -# CONFIG_PINCTRL_MT8188 is not set -# CONFIG_PINCTRL_MT8192 is not set -# CONFIG_PINCTRL_MT8195 is not set -# CONFIG_PINCTRL_MT8365 is not set -# CONFIG_PINCTRL_MT8516 is not set -# CONFIG_PINCTRL_MT6397 is not set -# end of MediaTek pinctrl drivers - -CONFIG_PINCTRL_MESON=y -# CONFIG_PINCTRL_WPCM450 is not set -# CONFIG_PINCTRL_NPCM7XX is not set -# CONFIG_PINCTRL_PXA25X is not set -# CONFIG_PINCTRL_PXA27X is not set -# CONFIG_PINCTRL_MSM is not set -# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set -# CONFIG_PINCTRL_LPASS_LPI is not set - -# -# Renesas pinctrl drivers -# -# CONFIG_PINCTRL_RENESAS is not set -# CONFIG_PINCTRL_PFC_EMEV2 is not set -# CONFIG_PINCTRL_PFC_R8A77995 is not set -# CONFIG_PINCTRL_PFC_R8A7794 is not set -# CONFIG_PINCTRL_PFC_R8A77990 is not set -# CONFIG_PINCTRL_PFC_R8A7779 is not set -# CONFIG_PINCTRL_PFC_R8A7790 is not set -# CONFIG_PINCTRL_PFC_R8A77951 is not set -# CONFIG_PINCTRL_PFC_R8A7778 is not set -# CONFIG_PINCTRL_PFC_R8A7793 is not set -# CONFIG_PINCTRL_PFC_R8A7791 is not set -# CONFIG_PINCTRL_PFC_R8A77965 is not set -# CONFIG_PINCTRL_PFC_R8A77960 is not set -# CONFIG_PINCTRL_PFC_R8A77961 is not set -# CONFIG_PINCTRL_PFC_R8A779F0 is not set -# CONFIG_PINCTRL_PFC_R8A7792 is not set -# CONFIG_PINCTRL_PFC_R8A77980 is not set -# CONFIG_PINCTRL_PFC_R8A77970 is not set -# CONFIG_PINCTRL_PFC_R8A779A0 is not set -# CONFIG_PINCTRL_PFC_R8A779G0 is not set -# CONFIG_PINCTRL_PFC_R8A7740 is not set -# CONFIG_PINCTRL_PFC_R8A73A4 is not set -# CONFIG_PINCTRL_RZA1 is not set -# CONFIG_PINCTRL_RZA2 is not set -# CONFIG_PINCTRL_RZG2L is not set -# CONFIG_PINCTRL_PFC_R8A77470 is not set -# CONFIG_PINCTRL_PFC_R8A7745 is not set -# CONFIG_PINCTRL_PFC_R8A7742 is not set -# CONFIG_PINCTRL_PFC_R8A7743 is not set -# CONFIG_PINCTRL_PFC_R8A7744 is not set -# CONFIG_PINCTRL_PFC_R8A774C0 is not set -# CONFIG_PINCTRL_PFC_R8A774E1 is not set -# CONFIG_PINCTRL_PFC_R8A774A1 is not set -# CONFIG_PINCTRL_PFC_R8A774B1 is not set -# CONFIG_PINCTRL_RZN1 is not set -# CONFIG_PINCTRL_RZV2M is not set -# CONFIG_PINCTRL_PFC_SH7203 is not set -# CONFIG_PINCTRL_PFC_SH7264 is not set -# CONFIG_PINCTRL_PFC_SH7269 is not set -# CONFIG_PINCTRL_PFC_SH7720 is not set -# CONFIG_PINCTRL_PFC_SH7722 is not set -# CONFIG_PINCTRL_PFC_SH7734 is not set -# CONFIG_PINCTRL_PFC_SH7757 is not set -# CONFIG_PINCTRL_PFC_SH7785 is not set -# CONFIG_PINCTRL_PFC_SH7786 is not set -# CONFIG_PINCTRL_PFC_SH73A0 is not set -# CONFIG_PINCTRL_PFC_SH7723 is not set -# CONFIG_PINCTRL_PFC_SH7724 is not set -# CONFIG_PINCTRL_PFC_SHX3 is not set -# end of Renesas pinctrl drivers - -# CONFIG_PINCTRL_EXYNOS is not set -# CONFIG_PINCTRL_S3C64XX is not set -# CONFIG_PINCTRL_SPRD_SC9860 is not set -CONFIG_PINCTRL_STARFIVE_JH7100=y -CONFIG_PINCTRL_STARFIVE_JH7110=y -CONFIG_PINCTRL_STARFIVE_JH7110_SYS=y -CONFIG_PINCTRL_STARFIVE_JH7110_AON=y -# CONFIG_PINCTRL_STM32F429 is not set -# CONFIG_PINCTRL_STM32F469 is not set -# CONFIG_PINCTRL_STM32F746 is not set -# CONFIG_PINCTRL_STM32F769 is not set -# CONFIG_PINCTRL_STM32H743 is not set -# CONFIG_PINCTRL_STM32MP135 is not set -# CONFIG_PINCTRL_STM32MP157 is not set -# CONFIG_PINCTRL_STM32MP257 is not set -# CONFIG_PINCTRL_TI_IODELAY is not set -CONFIG_PINCTRL_UNIPHIER=y -# CONFIG_PINCTRL_UNIPHIER_LD4 is not set -# CONFIG_PINCTRL_UNIPHIER_PRO4 is not set -# CONFIG_PINCTRL_UNIPHIER_SLD8 is not set -# CONFIG_PINCTRL_UNIPHIER_PRO5 is not set -# CONFIG_PINCTRL_UNIPHIER_PXS2 is not set -# CONFIG_PINCTRL_UNIPHIER_LD6B is not set -# CONFIG_PINCTRL_UNIPHIER_LD11 is not set -# CONFIG_PINCTRL_UNIPHIER_LD20 is not set -# CONFIG_PINCTRL_UNIPHIER_PXS3 is not set -# CONFIG_PINCTRL_UNIPHIER_NX1 is not set -# CONFIG_PINCTRL_TMPV7700 is not set -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_FASTPATH_LIMIT=512 -CONFIG_OF_GPIO=y -CONFIG_GPIOLIB_IRQCHIP=y -# CONFIG_DEBUG_GPIO is not set -CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_CDEV_V1=y - -# -# Memory mapped GPIO drivers -# -# CONFIG_GPIO_74XX_MMIO is not set -# CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_ASPEED is not set -# CONFIG_GPIO_ASPEED_SGPIO is not set -# CONFIG_GPIO_ATH79 is not set -# CONFIG_GPIO_RASPBERRYPI_EXP is not set -# CONFIG_GPIO_BCM_KONA is not set -# CONFIG_GPIO_BCM_XGS_IPROC is not set -# CONFIG_GPIO_BRCMSTB is not set -# CONFIG_GPIO_CADENCE is not set -# CONFIG_GPIO_CLPS711X is not set -# CONFIG_GPIO_DWAPB is not set -# CONFIG_GPIO_EIC_SPRD is not set -# CONFIG_GPIO_EM is not set -# CONFIG_GPIO_EXAR is not set -# CONFIG_GPIO_GE_FPGA is not set -# CONFIG_GPIO_FTGPIO010 is not set -# CONFIG_GPIO_GENERIC_PLATFORM is not set -# CONFIG_GPIO_GRGPIO is not set -# CONFIG_GPIO_HISI is not set -# CONFIG_GPIO_HLWD is not set -# CONFIG_GPIO_LOGICVC is not set -# CONFIG_GPIO_LOONGSON_64BIT is not set -# CONFIG_GPIO_LPC18XX is not set -# CONFIG_GPIO_LPC32XX is not set -# CONFIG_GPIO_MB86S7X is not set -# CONFIG_GPIO_MPC8XXX is not set -# CONFIG_GPIO_MT7621 is not set -# CONFIG_GPIO_MXC is not set -# CONFIG_GPIO_MXS is not set -# CONFIG_GPIO_PL061 is not set -# CONFIG_GPIO_PXA is not set -# CONFIG_GPIO_RCAR is not set -# CONFIG_GPIO_RDA is not set -# CONFIG_GPIO_ROCKCHIP is not set -# CONFIG_GPIO_SAMA5D2_PIOBU is not set -# CONFIG_GPIO_SIFIVE is not set -# CONFIG_GPIO_SNPS_CREG is not set -# CONFIG_GPIO_SPRD is not set -# CONFIG_GPIO_STP_XWAY is not set -# CONFIG_GPIO_SYSCON is not set -# CONFIG_GPIO_TEGRA is not set -# CONFIG_GPIO_TEGRA186 is not set -# CONFIG_GPIO_TS4800 is not set -# CONFIG_GPIO_THUNDERX is not set -# CONFIG_GPIO_UNIPHIER is not set -# CONFIG_GPIO_VISCONTI is not set -# CONFIG_GPIO_XGENE_SB is not set -# CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_XLP is not set -# CONFIG_GPIO_AMD_FCH is not set -# CONFIG_GPIO_IDT3243X is not set -# end of Memory mapped GPIO drivers - -# -# I2C GPIO expanders -# -# CONFIG_GPIO_ADNP is not set -# CONFIG_GPIO_FXL6408 is not set -# CONFIG_GPIO_DS4520 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 -# CONFIG_GPIO_PCA9570 is not set -# CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set -# end of I2C GPIO expanders - -# -# MFD GPIO expanders -# -# CONFIG_GPIO_ELKHARTLAKE is not set -# CONFIG_GPIO_PMIC_EIC_SPRD is not set -# CONFIG_GPIO_SL28CPLD is not set -# CONFIG_GPIO_TQMX86 is not set -# end of MFD GPIO expanders - -# -# PCI GPIO expanders -# -# CONFIG_GPIO_AMD8111 is not set -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_MLXBF is not set -# CONFIG_GPIO_MLXBF2 is not set -# CONFIG_GPIO_MLXBF3 is not set -# CONFIG_GPIO_ML_IOH is not set -# CONFIG_GPIO_PCH is not set -# CONFIG_GPIO_PCI_IDIO_16 is not set -# CONFIG_GPIO_PCIE_IDIO_24 is not set -# CONFIG_GPIO_RDC321X is not set -# end of PCI GPIO expanders - -# -# SPI GPIO expanders -# -# CONFIG_GPIO_74X164 is not set -# CONFIG_GPIO_MAX3191X is not set -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_PISOSR is not set -# CONFIG_GPIO_XRA1403 is not set -# end of SPI GPIO expanders - -# -# USB GPIO expanders -# -# end of USB GPIO expanders - -# -# Virtual GPIO drivers -# -# CONFIG_GPIO_AGGREGATOR is not set -# CONFIG_GPIO_LATCH is not set -# CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_VIRTIO is not set -# CONFIG_GPIO_SIM is not set -# end of Virtual GPIO drivers - -# CONFIG_W1 is not set -CONFIG_POWER_RESET=y -# CONFIG_POWER_RESET_BRCMKONA is not set -# CONFIG_POWER_RESET_BRCMSTB is not set -# CONFIG_POWER_RESET_GEMINI_POWEROFF is not set -# CONFIG_POWER_RESET_GPIO is not set -CONFIG_POWER_RESET_GPIO_RESTART=y -# CONFIG_POWER_RESET_LINKSTATION is not set -# CONFIG_POWER_RESET_OCELOT_RESET is not set -# CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF is not set -# CONFIG_POWER_RESET_PIIX4_POWEROFF is not set -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_REGULATOR is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_KEYSTONE is not set -CONFIG_POWER_RESET_SYSCON=y -CONFIG_POWER_RESET_SYSCON_POWEROFF=y -# CONFIG_POWER_RESET_RMOBILE is not set -# CONFIG_SYSCON_REBOOT_MODE is not set -# CONFIG_POWER_RESET_SC27XX is not set -# CONFIG_NVMEM_REBOOT_MODE is not set -# CONFIG_POWER_SUPPLY is not set -CONFIG_HWMON=y -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -# CONFIG_SENSORS_AD7314 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM1177 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7310 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set -# CONFIG_SENSORS_AS370 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_AXI_FAN_CONTROL is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ASPEED is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_BT1_PVT is not set -# CONFIG_SENSORS_CORSAIR_CPRO is not set -# CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_SPARX5 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_GXP_FAN_CTRL is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HS3001 is not set -# CONFIG_SENSORS_IIO_HWMON is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_LAN966X is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2947_I2C is not set -# CONFIG_SENSORS_LTC2947_SPI is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC2992 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_MAX1111 is not set -# CONFIG_SENSORS_MAX127 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX31722 is not set -# CONFIG_SENSORS_MAX31730 is not set -# CONFIG_SENSORS_MAX31760 is not set -# CONFIG_MAX31827 is not set -# CONFIG_SENSORS_MAX6620 is not set -# CONFIG_SENSORS_MAX6621 is not set -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6642 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MC34VR500 is not set -# CONFIG_SENSORS_MCP3021 is not set -# CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_TPS23861 is not set -# CONFIG_SENSORS_MR75203 is not set -# CONFIG_SENSORS_ADCXX is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_NTC_THERMISTOR is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT6775_I2C is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NSA320 is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set -# CONFIG_SENSORS_OCC_P8_I2C is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_PMBUS is not set -# CONFIG_SENSORS_PWM_FAN is not set -# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set -# CONFIG_SENSORS_SL28CPLD is not set -# CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SBRMI is not set -# CONFIG_SENSORS_SHT15 is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_SHT3x is not set -# CONFIG_SENSORS_SHT4x is not set -# CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC2305 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_STTS751 is not set -CONFIG_SENSORS_SFCTEMP=y -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_ADS7871 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA238 is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set -# CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_TMP464 is not set -# CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83773G is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_NETLINK is not set -# CONFIG_THERMAL_STATISTICS is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_OF=y -CONFIG_THERMAL_WRITABLE_TRIPS=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_GOV_FAIR_SHARE is not set -CONFIG_THERMAL_GOV_STEP_WISE=y -# CONFIG_THERMAL_GOV_BANG_BANG is not set -# CONFIG_THERMAL_GOV_USER_SPACE is not set -CONFIG_CPU_THERMAL=y -CONFIG_CPU_FREQ_THERMAL=y -CONFIG_DEVFREQ_THERMAL=y -CONFIG_THERMAL_EMULATION=y -# CONFIG_THERMAL_MMIO is not set -# CONFIG_HISI_THERMAL is not set -# CONFIG_IMX_THERMAL is not set -# CONFIG_IMX8MM_THERMAL is not set -# CONFIG_K3_THERMAL is not set -# CONFIG_QORIQ_THERMAL is not set -# CONFIG_SPEAR_THERMAL is not set -# CONFIG_SUN8I_THERMAL is not set -# CONFIG_ROCKCHIP_THERMAL is not set -# CONFIG_RCAR_THERMAL is not set -# CONFIG_RCAR_GEN3_THERMAL is not set -# CONFIG_RZG2L_THERMAL is not set -# CONFIG_KIRKWOOD_THERMAL is not set -# CONFIG_DOVE_THERMAL is not set -# CONFIG_ARMADA_THERMAL is not set -# CONFIG_DA9062_THERMAL is not set - -# -# Mediatek thermal drivers -# -# CONFIG_MTK_THERMAL is not set -# end of Mediatek thermal drivers - -# -# Intel thermal drivers -# - -# -# ACPI INT340X thermal drivers -# -# end of ACPI INT340X thermal drivers -# end of Intel thermal drivers - -# -# Broadcom thermal drivers -# -# CONFIG_BCM2711_THERMAL is not set -# CONFIG_BCM2835_THERMAL is not set -# CONFIG_BRCMSTB_THERMAL is not set -# CONFIG_BCM_NS_THERMAL is not set -# CONFIG_BCM_SR_THERMAL is not set -# end of Broadcom thermal drivers - -# -# Texas Instruments thermal drivers -# -# CONFIG_TI_SOC_THERMAL is not set -# end of Texas Instruments thermal drivers - -# -# Samsung thermal drivers -# -# CONFIG_EXYNOS_THERMAL is not set -# end of Samsung thermal drivers - -# -# NVIDIA Tegra thermal drivers -# -# CONFIG_TEGRA_SOCTHERM is not set -# CONFIG_TEGRA_BPMP_THERMAL is not set -# CONFIG_TEGRA30_TSENSOR is not set -# end of NVIDIA Tegra thermal drivers - -# CONFIG_GENERIC_ADC_THERMAL is not set - -# -# Qualcomm thermal drivers -# -# end of Qualcomm thermal drivers - -# CONFIG_UNIPHIER_THERMAL is not set -# CONFIG_SPRD_THERMAL is not set -# CONFIG_LOONGSON2_THERMAL is not set -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -CONFIG_WATCHDOG_SYSFS=y -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set - -# -# Watchdog Pretimeout Governors -# -# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_DA9052_WATCHDOG is not set -# CONFIG_DA9055_WATCHDOG is not set -# CONFIG_DA9063_WATCHDOG is not set -# CONFIG_DA9062_WATCHDOG is not set -# CONFIG_GPIO_WATCHDOG is not set -# CONFIG_MENF21BMC_WATCHDOG is not set -# CONFIG_XILINX_WATCHDOG is not set -# CONFIG_XILINX_WINDOW_WATCHDOG is not set -# CONFIG_ZIIRAVE_WATCHDOG is not set -# CONFIG_MLX_WDT is not set -# CONFIG_SL28CPLD_WATCHDOG is not set -# CONFIG_ARM_SP805_WATCHDOG is not set -# CONFIG_ARMADA_37XX_WATCHDOG is not set -# CONFIG_ASM9260_WATCHDOG is not set -# CONFIG_AT91RM9200_WATCHDOG is not set -# CONFIG_AT91SAM9X_WATCHDOG is not set -# CONFIG_SAMA5D4_WATCHDOG is not set -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_FTWDT010_WATCHDOG is not set -# CONFIG_S3C2410_WATCHDOG is not set -# CONFIG_SA1100_WATCHDOG is not set -# CONFIG_DW_WATCHDOG is not set -# CONFIG_EP93XX_WATCHDOG is not set -# CONFIG_OMAP_WATCHDOG is not set -# CONFIG_PNX4008_WATCHDOG is not set -# CONFIG_DAVINCI_WATCHDOG is not set -# CONFIG_K3_RTI_WATCHDOG is not set -# CONFIG_RN5T618_WATCHDOG is not set -# CONFIG_SUNXI_WATCHDOG is not set -# CONFIG_NPCM7XX_WATCHDOG is not set -# CONFIG_STMP3XXX_RTC_WATCHDOG is not set -# CONFIG_TS4800_WATCHDOG is not set -# CONFIG_TS72XX_WATCHDOG is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_MAX77620_WATCHDOG is not set -# CONFIG_IMX2_WDT is not set -# CONFIG_IMX7ULP_WDT is not set -# CONFIG_MOXART_WDT is not set -# CONFIG_ST_LPC_WATCHDOG is not set -# CONFIG_TEGRA_WATCHDOG is not set -# CONFIG_QCOM_WDT is not set -# CONFIG_MESON_GXBB_WATCHDOG is not set -# CONFIG_MESON_WATCHDOG is not set -# CONFIG_MEDIATEK_WATCHDOG is not set -# CONFIG_DIGICOLOR_WATCHDOG is not set -# CONFIG_LPC18XX_WATCHDOG is not set -# CONFIG_RENESAS_WDT is not set -# CONFIG_RENESAS_RZAWDT is not set -# CONFIG_RENESAS_RZN1WDT is not set -# CONFIG_RENESAS_RZG2LWDT is not set -# CONFIG_ASPEED_WATCHDOG is not set -CONFIG_STM32_WATCHDOG=y -# CONFIG_UNIPHIER_WATCHDOG is not set -# CONFIG_RTD119X_WATCHDOG is not set -# CONFIG_REALTEK_OTTO_WDT is not set -# CONFIG_SPRD_WATCHDOG is not set -# CONFIG_VISCONTI_WATCHDOG is not set -# CONFIG_MSC313E_WATCHDOG is not set -# CONFIG_APPLE_WATCHDOG is not set -# CONFIG_SUNPLUS_WATCHDOG is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ADVANTECH_EC_WDT is not set -# CONFIG_ALIM1535_WDT is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_EBC_C384_WDT is not set -# CONFIG_EXAR_WDT is not set -# CONFIG_F71808E_WDT is not set -# CONFIG_SP5100_TCO is not set -# CONFIG_SC520_WDT is not set -# CONFIG_SBC_FITPC2_WATCHDOG is not set -# CONFIG_EUROTECH_WDT is not set -# CONFIG_IB700_WDT is not set -# CONFIG_IBMASR is not set -# CONFIG_WAFER_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_IE6XX_WDT is not set -# CONFIG_IT8712F_WDT is not set -# CONFIG_IT87_WDT is not set -# CONFIG_HP_WATCHDOG is not set -# CONFIG_SC1200_WDT is not set -# CONFIG_PC87413_WDT is not set -# CONFIG_NV_TCO is not set -# CONFIG_RDC321X_WDT is not set -# CONFIG_60XX_WDT is not set -# CONFIG_CPU5_WDT is not set -# CONFIG_SMSC_SCH311X_WDT is not set -# CONFIG_SMSC37B787_WDT is not set -# CONFIG_TQMX86_WDT is not set -# CONFIG_VIA_WDT is not set -# CONFIG_W83627HF_WDT is not set -# CONFIG_W83877F_WDT is not set -# CONFIG_W83977F_WDT is not set -# CONFIG_MACHZ_WDT is not set -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -# CONFIG_BCM47XX_WDT is not set -# CONFIG_JZ4740_WDT is not set -CONFIG_MARVELL_GTI_WDT=y -# CONFIG_BCM2835_WDT is not set -# CONFIG_BCM_KONA_WDT is not set -# CONFIG_BCM_KONA_WDT_DEBUG is not set -# CONFIG_BCM7038_WDT is not set -# CONFIG_IMGPDC_WDT is not set -# CONFIG_LOONGSON1_WDT is not set -# CONFIG_GXP_WATCHDOG is not set -# CONFIG_MT7621_WDT is not set -# CONFIG_MPC5200_WDT is not set -# CONFIG_MEN_A21_WDT is not set -CONFIG_STARFIVE_WATCHDOG=y -# CONFIG_UML_WATCHDOG is not set - -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set -CONFIG_BCMA_POSSIBLE=y -# CONFIG_BCMA is not set - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=y -# CONFIG_MFD_ACT8945A is not set -# CONFIG_MFD_SUN4I_GPADC is not set -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_SMPRO is not set -# CONFIG_MFD_AS3722 is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_AT91_USART is not set -# CONFIG_MFD_ATMEL_FLEXCOM is not set -# CONFIG_MFD_ATMEL_HLCDC is not set -# CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_BD9571MWV is not set -CONFIG_MFD_AXP20X=y -CONFIG_MFD_AXP20X_I2C=y -# CONFIG_MFD_CS42L43_I2C is not set -# CONFIG_MFD_MADERA is not set -# CONFIG_MFD_MAX5970 is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_ENE_KB3930 is not set -# CONFIG_MFD_EXYNOS_LPASS is not set -# CONFIG_MFD_GATEWORKS_GSC is not set -# CONFIG_MFD_MC13XXX_SPI is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MP2629 is not set -# CONFIG_MFD_MXS_LRADC is not set -# CONFIG_MFD_MX25_TSADC is not set -# CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_MFD_HI655X_PMIC is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set -# CONFIG_INTEL_SOC_PMIC is not set -# CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77541 is not set -# CONFIG_MFD_MAX77620 is not set -# CONFIG_MFD_MAX77650 is not set -# CONFIG_MFD_MAX77686 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77714 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MT6360 is not set -# CONFIG_MFD_MT6370 is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_OCELOT is not set -# CONFIG_EZX_PCAP is not set -# CONFIG_MFD_CPCAP is not set -# CONFIG_MFD_VIPERBOARD is not set -# CONFIG_MFD_NTXEC is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_PM8XXX is not set -# CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RT4831 is not set -# CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RT5120 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_RK8XX_I2C is not set -# CONFIG_MFD_RK8XX_SPI is not set -# CONFIG_MFD_RN5T618 is not set -# CONFIG_MFD_SEC_CORE is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SL28CPLD is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SC27XX_PMIC is not set -# CONFIG_RZ_MTU3 is not set -# CONFIG_ABX500_CORE is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_SUN6I_PRCM is not set -CONFIG_MFD_SYSCON=y -# CONFIG_MFD_TI_AM335X_TSCADC is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS65217 is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TI_LP87565 is not set -# CONFIG_MFD_TPS65218 is not set -# CONFIG_MFD_TPS65219 is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_MFD_TPS6594_SPI is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 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 -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_STW481X is not set -# CONFIG_MFD_ROHM_BD718XX is not set -# CONFIG_MFD_ROHM_BD71828 is not set -# CONFIG_MFD_ROHM_BD957XMUF is not set -# CONFIG_MFD_STM32_LPTIMER is not set -# CONFIG_MFD_STM32_TIMERS is not set -# CONFIG_MFD_STPMIC1 is not set -# CONFIG_MFD_STMFX is not set -# CONFIG_MFD_ATC260X_I2C is not set -# CONFIG_MFD_KHADAS_MCU is not set -# CONFIG_MFD_ACER_A500_EC is not set -# CONFIG_MFD_QCOM_PM8008 is not set -# CONFIG_MFD_INTEL_M10_BMC_SPI is not set -# CONFIG_MFD_RSMU_I2C is not set -# CONFIG_MFD_RSMU_SPI is not set -# end of Multifunction device drivers - -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -# CONFIG_REGULATOR_88PG86X is not set -# CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_ANATOP is not set -# CONFIG_REGULATOR_AW37503 is not set -CONFIG_REGULATOR_AXP20X=y -# CONFIG_REGULATOR_DA9121 is not set -# CONFIG_REGULATOR_DA9210 is not set -# CONFIG_REGULATOR_DA9211 is not set -# CONFIG_REGULATOR_FAN53555 is not set -# CONFIG_REGULATOR_FAN53880 is not set -CONFIG_REGULATOR_GPIO=y -# CONFIG_REGULATOR_ISL9305 is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_LP872X is not set -# CONFIG_REGULATOR_LP8755 is not set -# CONFIG_REGULATOR_LTC3589 is not set -# CONFIG_REGULATOR_LTC3676 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX77620 is not set -# CONFIG_REGULATOR_MAX77650 is not set -# CONFIG_REGULATOR_MAX77857 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8893 is not set -# CONFIG_REGULATOR_MAX8907 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_MAX8973 is not set -# CONFIG_REGULATOR_MAX20086 is not set -# CONFIG_REGULATOR_MAX20411 is not set -# CONFIG_REGULATOR_MAX77686 is not set -# CONFIG_REGULATOR_MAX77693 is not set -# CONFIG_REGULATOR_MAX77802 is not set -# CONFIG_REGULATOR_MAX77826 is not set -# CONFIG_REGULATOR_MCP16502 is not set -# CONFIG_REGULATOR_MP5416 is not set -# CONFIG_REGULATOR_MP8859 is not set -# CONFIG_REGULATOR_MP886X is not set -# CONFIG_REGULATOR_MPQ7920 is not set -# CONFIG_REGULATOR_MT6311 is not set -# CONFIG_REGULATOR_PBIAS is not set -# CONFIG_REGULATOR_PCA9450 is not set -# CONFIG_REGULATOR_PF8X00 is not set -# CONFIG_REGULATOR_PFUZE100 is not set -# CONFIG_REGULATOR_PV88060 is not set -# CONFIG_REGULATOR_PV88080 is not set -# CONFIG_REGULATOR_PV88090 is not set -# CONFIG_REGULATOR_PWM is not set -# CONFIG_REGULATOR_QCOM_REFGEN is not set -# CONFIG_REGULATOR_QCOM_RPMH is not set -# CONFIG_REGULATOR_QCOM_SPMI is not set -# CONFIG_REGULATOR_QCOM_USB_VBUS is not set -# CONFIG_REGULATOR_RAA215300 is not set -CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=y -# CONFIG_REGULATOR_RT4801 is not set -# CONFIG_REGULATOR_RT4803 is not set -# CONFIG_REGULATOR_RT5190A is not set -# CONFIG_REGULATOR_RT5739 is not set -# CONFIG_REGULATOR_RT5759 is not set -# CONFIG_REGULATOR_RT6160 is not set -# CONFIG_REGULATOR_RT6190 is not set -# CONFIG_REGULATOR_RT6245 is not set -# CONFIG_REGULATOR_RTQ2134 is not set -# CONFIG_REGULATOR_RTMV20 is not set -# CONFIG_REGULATOR_RTQ6752 is not set -# CONFIG_REGULATOR_RTQ2208 is not set -# CONFIG_REGULATOR_S2MPA01 is not set -# CONFIG_REGULATOR_S2MPS11 is not set -# CONFIG_REGULATOR_S5M8767 is not set -# CONFIG_REGULATOR_SC2731 is not set -# CONFIG_REGULATOR_SLG51000 is not set -# CONFIG_REGULATOR_STARFIVE_JH7110 is not set -# CONFIG_REGULATOR_STM32_BOOSTER is not set -# CONFIG_REGULATOR_STM32_VREFBUF is not set -# CONFIG_REGULATOR_STM32_PWR is not set -# CONFIG_REGULATOR_TI_ABB is not set -# CONFIG_REGULATOR_STW481X_VMMC is not set -# CONFIG_REGULATOR_SY8106A is not set -# CONFIG_REGULATOR_SY8824X is not set -# CONFIG_REGULATOR_SY8827N is not set -# CONFIG_REGULATOR_TPS51632 is not set -# CONFIG_REGULATOR_TPS62360 is not set -# CONFIG_REGULATOR_TPS6286X is not set -# CONFIG_REGULATOR_TPS6287X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_TPS65132 is not set -# CONFIG_REGULATOR_TPS6524X is not set -# CONFIG_REGULATOR_TPS68470 is not set -# CONFIG_REGULATOR_UNIPHIER is not set -# CONFIG_REGULATOR_VCTRL is not set -# CONFIG_REGULATOR_QCOM_LABIBB is not set -# CONFIG_RC_CORE is not set - -# -# CEC support -# -# CONFIG_MEDIA_CEC_SUPPORT is not set -# end of CEC support - -CONFIG_MEDIA_SUPPORT=y -# CONFIG_MEDIA_SUPPORT_FILTER is not set -# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set - -# -# Media device types -# -CONFIG_MEDIA_CAMERA_SUPPORT=y -CONFIG_MEDIA_ANALOG_TV_SUPPORT=y -CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y -CONFIG_MEDIA_RADIO_SUPPORT=y -CONFIG_MEDIA_SDR_SUPPORT=y -CONFIG_MEDIA_PLATFORM_SUPPORT=y -CONFIG_MEDIA_TEST_SUPPORT=y -# end of Media device types - -# -# Media core support -# -CONFIG_VIDEO_DEV=y -CONFIG_MEDIA_CONTROLLER=y -CONFIG_DVB_CORE=y -# end of Media core support - -# -# Video4Linux options -# -CONFIG_VIDEO_V4L2_I2C=y -CONFIG_VIDEO_V4L2_SUBDEV_API=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_V4L2_MEM2MEM_DEV=m -CONFIG_V4L2_FWNODE=y -CONFIG_V4L2_ASYNC=y -CONFIG_V4L2_CCI=y -CONFIG_V4L2_CCI_I2C=y -# end of Video4Linux options - -# -# Media controller options -# -# CONFIG_MEDIA_CONTROLLER_DVB is not set -# end of Media controller options - -# -# Digital TV options -# -# CONFIG_DVB_MMAP is not set -CONFIG_DVB_NET=y -CONFIG_DVB_MAX_ADAPTERS=16 -CONFIG_DVB_DYNAMIC_MINORS=y -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_ULE_DEBUG is not set -# end of Digital TV options - -# -# Media drivers -# - -# -# Media drivers -# -CONFIG_MEDIA_USB_SUPPORT=y - -# -# Webcam devices -# -# CONFIG_USB_GSPCA is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_S2255 is not set -# CONFIG_VIDEO_USBTV is not set -CONFIG_USB_VIDEO_CLASS=y -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y - -# -# Analog TV USB devices -# -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_STK1160 is not set - -# -# Analog/digital TV USB devices -# -# CONFIG_VIDEO_AU0828 is not set - -# -# Digital TV USB devices -# -# CONFIG_DVB_AS102 is not set -# CONFIG_DVB_B2C2_FLEXCOP_USB is not set -# CONFIG_DVB_USB_V2 is not set -# CONFIG_SMS_USB_DRV is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set - -# -# Webcam, TV (analog/digital) USB devices -# -# CONFIG_VIDEO_EM28XX is not set - -# -# Software defined radio USB devices -# -# CONFIG_USB_AIRSPY is not set -# CONFIG_USB_HACKRF is not set -# CONFIG_USB_MSI2500 is not set -# CONFIG_MEDIA_PCI_SUPPORT is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_SHARK is not set -# CONFIG_RADIO_SHARK2 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_USB_KEENE is not set -# CONFIG_USB_MA901 is not set -# CONFIG_USB_MR800 is not set -# CONFIG_USB_RAREMONO is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_V4L_RADIO_ISA_DRIVERS is not set -CONFIG_MEDIA_PLATFORM_DRIVERS=y -CONFIG_V4L_PLATFORM_DRIVERS=y -# CONFIG_SDR_PLATFORM_DRIVERS is not set -# CONFIG_DVB_PLATFORM_DRIVERS is not set -CONFIG_V4L_MEM2MEM_DRIVERS=y -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -# CONFIG_VIDEO_MUX is not set - -# -# Allegro DVT media platform drivers -# -# CONFIG_VIDEO_ALLEGRO_DVT is not set - -# -# Amlogic media platform drivers -# -# CONFIG_VIDEO_MESON_GE2D is not set - -# -# Amphion drivers -# -# CONFIG_VIDEO_AMPHION_VPU is not set - -# -# Aspeed media platform drivers -# -# CONFIG_VIDEO_ASPEED is not set - -# -# Atmel media platform drivers -# -# CONFIG_VIDEO_ATMEL_ISI is not set - -# -# Cadence media platform drivers -# -CONFIG_VIDEO_CADENCE_CSI2RX=y -# CONFIG_VIDEO_CADENCE_CSI2TX is not set - -# -# Chips&Media media platform drivers -# -# CONFIG_VIDEO_CODA is not set -CONFIG_VIDEO_WAVE_VPU=m - -# -# Intel media platform drivers -# -# CONFIG_VIDEO_PXA27x is not set - -# -# Marvell media platform drivers -# -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_MMP_CAMERA is not set - -# -# Mediatek media platform drivers -# -# CONFIG_VIDEO_MEDIATEK_JPEG is not set -# CONFIG_VIDEO_MEDIATEK_MDP is not set -# CONFIG_VIDEO_MEDIATEK_VPU is not set - -# -# Microchip Technology, Inc. media platform drivers -# -# CONFIG_VIDEO_MICROCHIP_ISC is not set -# CONFIG_VIDEO_MICROCHIP_XISC is not set -# CONFIG_VIDEO_MICROCHIP_CSI2DC is not set - -# -# NVidia media platform drivers -# -# CONFIG_VIDEO_TEGRA_VDE is not set - -# -# NXP media platform drivers -# -# CONFIG_VIDEO_IMX7_CSI is not set -# CONFIG_VIDEO_IMX8MQ_MIPI_CSI2 is not set -# CONFIG_VIDEO_IMX_MIPI_CSIS is not set -# CONFIG_VIDEO_IMX8_ISI is not set -# CONFIG_VIDEO_IMX_PXP is not set -# CONFIG_VIDEO_MX2_EMMAPRP is not set -# CONFIG_VIDEO_DW100 is not set -# CONFIG_VIDEO_IMX8_JPEG is not set - -# -# Qualcomm media platform drivers -# -# CONFIG_VIDEO_QCOM_CAMSS is not set - -# -# Renesas media platform drivers -# -# CONFIG_VIDEO_RENESAS_CEU is not set -# CONFIG_VIDEO_RCAR_ISP is not set -# CONFIG_VIDEO_SH_VOU is not set -# CONFIG_VIDEO_RCAR_CSI2 is not set -# CONFIG_VIDEO_RCAR_VIN is not set -# CONFIG_VIDEO_RZG2L_CSI2 is not set -# CONFIG_VIDEO_RZG2L_CRU is not set -# CONFIG_VIDEO_RENESAS_FCP is not set -# CONFIG_VIDEO_RENESAS_FDP1 is not set -# CONFIG_VIDEO_RENESAS_JPU is not set -# CONFIG_VIDEO_RENESAS_VSP1 is not set - -# -# Rockchip media platform drivers -# -# CONFIG_VIDEO_ROCKCHIP_RGA is not set -# CONFIG_VIDEO_ROCKCHIP_ISP1 is not set - -# -# Samsung media platform drivers -# -# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set -# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set -# CONFIG_VIDEO_S3C_CAMIF is not set -# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set -# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set -# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set - -# -# STMicroelectronics media platform drivers -# -# CONFIG_VIDEO_STI_BDISP is not set -# CONFIG_VIDEO_STI_DELTA is not set -# CONFIG_VIDEO_STI_HVA is not set -# CONFIG_VIDEO_STM32_DCMI is not set -# CONFIG_VIDEO_STM32_DMA2D is not set - -# -# Starfive media platform drivers -# -# CONFIG_VIN_SENSOR_OV5640 is not set -# CONFIG_VIN_SENSOR_SC2235 is not set -CONFIG_VIN_SENSOR_OV4689=y -# CONFIG_VIN_SENSOR_OV13850 is not set -CONFIG_VIN_SENSOR_IMX219=y -CONFIG_VIDEO_STF_VIN=y - -# -# Sunxi media platform drivers -# -# CONFIG_VIDEO_SUN4I_CSI is not set -# CONFIG_VIDEO_SUN6I_CSI is not set -# CONFIG_VIDEO_SUN8I_A83T_MIPI_CSI2 is not set -# CONFIG_VIDEO_SUN8I_DEINTERLACE is not set -# CONFIG_VIDEO_SUN8I_ROTATE is not set - -# -# Texas Instruments drivers -# -# CONFIG_VIDEO_TI_CAL is not set -# CONFIG_VIDEO_TI_VPE is not set -# CONFIG_VIDEO_AM437X_VPFE is not set -# CONFIG_VIDEO_DAVINCI_VPIF_DISPLAY is not set -# CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE is not set -# CONFIG_VIDEO_OMAP2_VOUT is not set -# CONFIG_VIDEO_OMAP3 is not set - -# -# Verisilicon media platform drivers -# -# CONFIG_VIDEO_HANTRO is not set - -# -# VIA media platform drivers -# - -# -# Xilinx media platform drivers -# -# CONFIG_VIDEO_XILINX is not set - -# -# MMC/SDIO DVB adapters -# -# CONFIG_SMS_SDIO_DRV is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_DVB_TEST_DRIVERS is not set -CONFIG_UVC_COMMON=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEOBUF2_V4L2=y -CONFIG_VIDEOBUF2_MEMOPS=y -CONFIG_VIDEOBUF2_DMA_CONTIG=y -CONFIG_VIDEOBUF2_VMALLOC=y -# end of Media drivers - -# -# Media ancillary drivers -# -CONFIG_MEDIA_ATTACH=y -CONFIG_VIDEO_CAMERA_SENSOR=y -# CONFIG_VIDEO_AR0521 is not set -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_HI846 is not set -# CONFIG_VIDEO_HI847 is not set -# CONFIG_VIDEO_IMX208 is not set -# CONFIG_VIDEO_IMX214 is not set -CONFIG_VIDEO_IMX219=y -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX296 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX334 is not set -# CONFIG_VIDEO_IMX335 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_IMX415 is not set -CONFIG_VIDEO_IMX708=y -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T112 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_OG01A1B is not set -# CONFIG_VIDEO_OV01A10 is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV08D10 is not set -# CONFIG_VIDEO_OV08X40 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -# CONFIG_VIDEO_OV2640 is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV2740 is not set -# CONFIG_VIDEO_OV4689 is not set -# CONFIG_VIDEO_OV5640 is not set -# CONFIG_VIDEO_OV5645 is not set -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5693 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8858 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_OV9734 is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RDACM21 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_ST_VGXY61 is not set -# CONFIG_VIDEO_CCS is not set -# CONFIG_VIDEO_ET8EK8 is not set - -# -# Lens drivers -# -# CONFIG_VIDEO_AD5820 is not set -# CONFIG_VIDEO_AK7375 is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_DW9719 is not set -# CONFIG_VIDEO_DW9768 is not set -# CONFIG_VIDEO_DW9807_VCM is not set -# end of Lens drivers - -# -# Flash devices -# -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set -# end of Flash devices - -# -# Audio decoders, processors and mixers -# -# CONFIG_VIDEO_CS3308 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_SONY_BTF_MPX is not set -# CONFIG_VIDEO_TDA1997X is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_UDA1342 is not set -# CONFIG_VIDEO_VP27SMPX is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_WM8775 is not set -# end of Audio decoders, processors and mixers - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set -# end of RDS decoders - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_ADV7183 is not set -# CONFIG_VIDEO_ADV748X is not set -# CONFIG_VIDEO_ADV7604 is not set -# CONFIG_VIDEO_ADV7842 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_ISL7998X is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_ML86V7667 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_TC358743 is not set -# CONFIG_VIDEO_TC358746 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_TW2804 is not set -# CONFIG_VIDEO_TW9903 is not set -# CONFIG_VIDEO_TW9906 is not set -# CONFIG_VIDEO_TW9910 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set -# end of Video decoders - -# -# Video encoders -# -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_ADV7393 is not set -# CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_AK881X is not set -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_THS8200 is not set -# end of Video encoders - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# end of Video improvement chips - -# -# Audio/Video compression chips -# -# CONFIG_VIDEO_SAA6752HS is not set -# end of Audio/Video compression chips - -# -# SDR tuner chips -# -# CONFIG_SDR_MAX2175 is not set -# end of SDR tuner chips - -# -# Miscellaneous helper chips -# -# CONFIG_VIDEO_I2C is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_ST_MIPID02 is not set -# CONFIG_VIDEO_THS7303 is not set -# end of Miscellaneous helper chips - -# -# Video serializers and deserializers -# -# CONFIG_VIDEO_DS90UB913 is not set -# CONFIG_VIDEO_DS90UB953 is not set -# CONFIG_VIDEO_DS90UB960 is not set -# end of Video serializers and deserializers - -# -# Media SPI Adapters -# -# CONFIG_CXD2880_SPI_DRV is not set -# CONFIG_VIDEO_GS1662 is not set -# end of Media SPI Adapters - -CONFIG_MEDIA_TUNER=y - -# -# Customize TV tuners -# -# CONFIG_MEDIA_TUNER_E4000 is not set -# CONFIG_MEDIA_TUNER_FC0011 is not set -# CONFIG_MEDIA_TUNER_FC0012 is not set -# CONFIG_MEDIA_TUNER_FC0013 is not set -# CONFIG_MEDIA_TUNER_FC2580 is not set -# CONFIG_MEDIA_TUNER_IT913X is not set -# CONFIG_MEDIA_TUNER_M88RS6000T is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -# CONFIG_MEDIA_TUNER_MC44S803 is not set -# CONFIG_MEDIA_TUNER_MSI001 is not set -# CONFIG_MEDIA_TUNER_MT2060 is not set -# CONFIG_MEDIA_TUNER_MT2063 is not set -# CONFIG_MEDIA_TUNER_MT20XX is not set -# CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set -# CONFIG_MEDIA_TUNER_MXL301RF is not set -# CONFIG_MEDIA_TUNER_MXL5005S is not set -# CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_R820T is not set -# CONFIG_MEDIA_TUNER_SI2157 is not set -# CONFIG_MEDIA_TUNER_SIMPLE is not set -# CONFIG_MEDIA_TUNER_TDA18212 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_TDA18250 is not set -# CONFIG_MEDIA_TUNER_TDA18271 is not set -# CONFIG_MEDIA_TUNER_TDA827X is not set -# CONFIG_MEDIA_TUNER_TDA8290 is not set -# CONFIG_MEDIA_TUNER_TDA9887 is not set -# CONFIG_MEDIA_TUNER_TEA5761 is not set -# CONFIG_MEDIA_TUNER_TEA5767 is not set -# CONFIG_MEDIA_TUNER_TUA9001 is not set -# CONFIG_MEDIA_TUNER_XC2028 is not set -# CONFIG_MEDIA_TUNER_XC4000 is not set -# CONFIG_MEDIA_TUNER_XC5000 is not set -# end of Customize TV tuners - -# -# Customise DVB Frontends -# - -# -# Multistandard (satellite) frontends -# -# CONFIG_DVB_MXL5XX is not set -# CONFIG_DVB_STB0899 is not set -# CONFIG_DVB_STB6100 is not set -# CONFIG_DVB_STV090x is not set -# CONFIG_DVB_STV0910 is not set -# CONFIG_DVB_STV6110x is not set -# CONFIG_DVB_STV6111 is not set - -# -# Multistandard (cable + terrestrial) frontends -# -# CONFIG_DVB_DRXK is not set -# CONFIG_DVB_MN88472 is not set -# CONFIG_DVB_MN88473 is not set -# CONFIG_DVB_SI2165 is not set -# CONFIG_DVB_TDA18271C2DD is not set - -# -# DVB-S (satellite) frontends -# -# CONFIG_DVB_CX24110 is not set -# CONFIG_DVB_CX24116 is not set -# CONFIG_DVB_CX24117 is not set -# CONFIG_DVB_CX24120 is not set -# CONFIG_DVB_CX24123 is not set -# CONFIG_DVB_DS3000 is not set -# CONFIG_DVB_MB86A16 is not set -# CONFIG_DVB_MT312 is not set -# CONFIG_DVB_S5H1420 is not set -# CONFIG_DVB_SI21XX is not set -# CONFIG_DVB_STB6000 is not set -# CONFIG_DVB_STV0288 is not set -# CONFIG_DVB_STV0299 is not set -# CONFIG_DVB_STV0900 is not set -# CONFIG_DVB_STV6110 is not set -# CONFIG_DVB_TDA10071 is not set -# CONFIG_DVB_TDA10086 is not set -# CONFIG_DVB_TDA8083 is not set -# CONFIG_DVB_TDA8261 is not set -# CONFIG_DVB_TDA826X is not set -# CONFIG_DVB_TS2020 is not set -# CONFIG_DVB_TUA6100 is not set -# CONFIG_DVB_TUNER_CX24113 is not set -# CONFIG_DVB_TUNER_ITD1000 is not set -# CONFIG_DVB_VES1X93 is not set -# CONFIG_DVB_ZL10036 is not set -# CONFIG_DVB_ZL10039 is not set - -# -# DVB-T (terrestrial) frontends -# -# CONFIG_DVB_CX22700 is not set -# CONFIG_DVB_CX22702 is not set -# CONFIG_DVB_CXD2820R is not set -# CONFIG_DVB_CXD2841ER is not set -# CONFIG_DVB_DIB3000MB is not set -# CONFIG_DVB_DIB3000MC is not set -# CONFIG_DVB_DIB7000M is not set -# CONFIG_DVB_DIB7000P is not set -# CONFIG_DVB_DIB9000 is not set -# CONFIG_DVB_DRXD is not set -# CONFIG_DVB_EC100 is not set -# CONFIG_DVB_L64781 is not set -# CONFIG_DVB_MT352 is not set -# CONFIG_DVB_NXT6000 is not set -# CONFIG_DVB_S5H1432 is not set -# CONFIG_DVB_SP887X is not set -# CONFIG_DVB_STV0367 is not set -# CONFIG_DVB_TDA10048 is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_ZD1301_DEMOD is not set -# CONFIG_DVB_ZL10353 is not set -# CONFIG_DVB_CXD2880 is not set - -# -# DVB-C (cable) frontends -# -# CONFIG_DVB_STV0297 is not set -# CONFIG_DVB_TDA10021 is not set -# CONFIG_DVB_TDA10023 is not set -# CONFIG_DVB_VES1820 is not set - -# -# ATSC (North American/Korean Terrestrial/Cable DTV) frontends -# -# CONFIG_DVB_AU8522_DTV is not set -# CONFIG_DVB_AU8522_V4L is not set -# CONFIG_DVB_BCM3510 is not set -# CONFIG_DVB_LG2160 is not set -# CONFIG_DVB_LGDT3305 is not set -# CONFIG_DVB_LGDT330X is not set -# CONFIG_DVB_MXL692 is not set -# CONFIG_DVB_NXT200X is not set -# CONFIG_DVB_OR51132 is not set -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_S5H1409 is not set -# CONFIG_DVB_S5H1411 is not set - -# -# ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_DIB8000 is not set -# CONFIG_DVB_MB86A20S is not set -# CONFIG_DVB_S921 is not set - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# -# CONFIG_DVB_MN88443X is not set -# CONFIG_DVB_TC90522 is not set - -# -# Digital terrestrial only tuners/PLL -# -# CONFIG_DVB_PLL is not set -# CONFIG_DVB_TUNER_DIB0070 is not set -# CONFIG_DVB_TUNER_DIB0090 is not set - -# -# SEC control devices for DVB-S -# -# CONFIG_DVB_A8293 is not set -# CONFIG_DVB_AF9033 is not set -# CONFIG_DVB_ASCOT2E is not set -# CONFIG_DVB_ATBM8830 is not set -# CONFIG_DVB_HELENE is not set -# CONFIG_DVB_HORUS3A is not set -# CONFIG_DVB_ISL6405 is not set -# CONFIG_DVB_ISL6421 is not set -# CONFIG_DVB_ISL6423 is not set -# CONFIG_DVB_IX2505V is not set -# CONFIG_DVB_LGS8GL5 is not set -# CONFIG_DVB_LGS8GXX is not set -# CONFIG_DVB_LNBH25 is not set -# CONFIG_DVB_LNBH29 is not set -# CONFIG_DVB_LNBP21 is not set -# CONFIG_DVB_LNBP22 is not set -# CONFIG_DVB_M88RS2000 is not set -# CONFIG_DVB_TDA665x is not set -# CONFIG_DVB_DRX39XYJ is not set - -# -# Common Interface (EN50221) controller drivers -# -# CONFIG_DVB_CXD2099 is not set -# CONFIG_DVB_SP2 is not set -# end of Customise DVB Frontends - -# -# Tools to develop new frontends -# -# CONFIG_DVB_DUMMY_FE is not set -# end of Media ancillary drivers - -# -# Graphics support -# -CONFIG_APERTURE_HELPERS=y -CONFIG_VIDEO_CMDLINE=y -CONFIG_VIDEO_NOMODESET=y -# CONFIG_AUXDISPLAY is not set -# CONFIG_TEGRA_HOST1X is not set -# CONFIG_IMX_IPUV3_CORE is not set -CONFIG_DRM=y -CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DEBUG_MM is not set -CONFIG_DRM_KMS_HELPER=y -# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set -# CONFIG_DRM_DEBUG_MODESET_LOCK is not set -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set -# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set -CONFIG_DRM_GEM_DMA_HELPER=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# end of I2C encoder or helper chips - -# -# ARM devices -# -# CONFIG_DRM_HDLCD is not set -# CONFIG_DRM_MALI_DISPLAY is not set -# CONFIG_DRM_KOMEDA is not set -# end of ARM devices - -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_KMB_DISPLAY is not set -# CONFIG_DRM_VGEM is not set -# CONFIG_DRM_VKMS is not set -# CONFIG_DRM_EXYNOS is not set -# CONFIG_DRM_UDL is not set -# CONFIG_DRM_AST is not set -# CONFIG_DRM_MGAG200 is not set -# CONFIG_DRM_RCAR_DW_HDMI is not set -# CONFIG_DRM_RCAR_USE_LVDS is not set -# CONFIG_DRM_RCAR_USE_MIPI_DSI is not set -# CONFIG_DRM_RZG2L_MIPI_DSI is not set -# CONFIG_DRM_SHMOBILE is not set -# CONFIG_DRM_SUN4I is not set -# CONFIG_DRM_QXL is not set -# CONFIG_DRM_TEGRA is not set -CONFIG_DRM_PANEL=y - -# -# Display Panels -# -# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set -# CONFIG_DRM_PANEL_ARM_VERSATILE is not set -# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set -# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set -# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set -# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set -# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set -# CONFIG_DRM_PANEL_DSI_CM is not set -# CONFIG_DRM_PANEL_LVDS is not set -CONFIG_DRM_PANEL_SIMPLE=y -# CONFIG_DRM_PANEL_EDP is not set -# CONFIG_DRM_PANEL_EBBG_FT8719 is not set -# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set -# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set -# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set -# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set -# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set -# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set -# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set -# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set -CONFIG_DRM_PANEL_STARFIVE_JADARD=y -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set -# CONFIG_DRM_PANEL_JDI_R63452 is not set -# CONFIG_DRM_PANEL_KHADAS_TS050 is not set -# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set -# CONFIG_DRM_PANEL_LG_LB035Q02 is not set -# CONFIG_DRM_PANEL_LG_LG4573 is not set -# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set -# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set -# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set -# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set -# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set -# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set -# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set -# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set -# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set -# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set -# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set -# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set -# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set -# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set -# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set -# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set -# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set -# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set -# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set -# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set -# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set -# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set -# CONFIG_DRM_PANEL_TPO_TPG110 is not set -# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set -# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set -# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set -# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set -# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -# CONFIG_DRM_CHIPONE_ICN6211 is not set -# CONFIG_DRM_CHRONTEL_CH7033 is not set -# CONFIG_DRM_CROS_EC_ANX7688 is not set -# CONFIG_DRM_DISPLAY_CONNECTOR is not set -# CONFIG_DRM_FSL_LDB is not set -# CONFIG_DRM_ITE_IT6505 is not set -# CONFIG_DRM_LONTIUM_LT8912B is not set -# CONFIG_DRM_LONTIUM_LT9211 is not set -# CONFIG_DRM_LONTIUM_LT9611 is not set -# CONFIG_DRM_LONTIUM_LT9611UXC is not set -# CONFIG_DRM_ITE_IT66121 is not set -# CONFIG_DRM_LVDS_CODEC is not set -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -# CONFIG_DRM_NWL_MIPI_DSI is not set -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_PARADE_PS8622 is not set -# CONFIG_DRM_PARADE_PS8640 is not set -# CONFIG_DRM_SAMSUNG_DSIM is not set -# CONFIG_DRM_SIL_SII8620 is not set -# CONFIG_DRM_SII902X is not set -# CONFIG_DRM_SII9234 is not set -# CONFIG_DRM_SIMPLE_BRIDGE is not set -# CONFIG_DRM_THINE_THC63LVD1024 is not set -CONFIG_DRM_TOSHIBA_TC358762=y -# CONFIG_DRM_TOSHIBA_TC358764 is not set -# CONFIG_DRM_TOSHIBA_TC358767 is not set -# CONFIG_DRM_TOSHIBA_TC358768 is not set -# CONFIG_DRM_TOSHIBA_TC358775 is not set -# CONFIG_DRM_TI_DLPC3433 is not set -# CONFIG_DRM_TI_TFP410 is not set -# CONFIG_DRM_TI_SN65DSI83 is not set -# CONFIG_DRM_TI_SN65DSI86 is not set -# CONFIG_DRM_TI_TPD12S015 is not set -# CONFIG_DRM_ANALOGIX_ANX6345 is not set -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# CONFIG_DRM_ANALOGIX_ANX7625 is not set -# CONFIG_DRM_I2C_ADV7511 is not set -# CONFIG_DRM_CDNS_DSI is not set -# CONFIG_DRM_CDNS_MHDP8546 is not set -# CONFIG_DRM_IMX8QM_LDB is not set -# CONFIG_DRM_IMX8QXP_LDB is not set -# CONFIG_DRM_IMX8QXP_PIXEL_COMBINER is not set -# CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI is not set -# end of Display Interface Bridges - -# CONFIG_DRM_IMX_LCDC is not set -# CONFIG_DRM_INGENIC is not set -# CONFIG_DRM_V3D is not set -# CONFIG_DRM_VC4 is not set -# CONFIG_DRM_LOONGSON is not set -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_HISI_HIBMC is not set -# CONFIG_DRM_LOGICVC is not set -# CONFIG_DRM_MXSFB is not set -# CONFIG_DRM_IMX_LCDIF is not set -# CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CIRRUS_QEMU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_OFDRM is not set -# CONFIG_DRM_PANEL_MIPI_DBI is not set -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_TINYDRM_HX8357D is not set -# CONFIG_TINYDRM_ILI9163 is not set -# CONFIG_TINYDRM_ILI9225 is not set -# CONFIG_TINYDRM_ILI9341 is not set -# CONFIG_TINYDRM_ILI9486 is not set -# CONFIG_TINYDRM_MI0283QT is not set -# CONFIG_TINYDRM_REPAPER is not set -# CONFIG_TINYDRM_ST7586 is not set -# CONFIG_TINYDRM_ST7735R is not set -# CONFIG_DRM_PL111 is not set -# CONFIG_DRM_TVE200 is not set -# CONFIG_DRM_LIMA is not set -# CONFIG_DRM_PANFROST is not set -# CONFIG_DRM_ASPEED_GFX is not set -# CONFIG_DRM_MCDE is not set -# CONFIG_DRM_TIDSS is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_SSD130X is not set -# CONFIG_DRM_SPRD is not set -CONFIG_DRM_VERISILICON=y -CONFIG_SOC_STARFIVE_VF2_VOUT=y -# CONFIG_VERISILICON_VIRTUAL_DISPLAY is not set -# CONFIG_VERISILICON_MMU is not set -# CONFIG_VERISILICON_DEC is not set -CONFIG_STARFIVE_INNO_HDMI=y -CONFIG_STARFIVE_DSI=y -# CONFIG_DRM_I2C_ADV7513 is not set -CONFIG_DRM_IMG=y -CONFIG_DRM_IMG_ROGUE=y -CONFIG_DRM_LEGACY=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y - -# -# Frame buffer Devices -# -CONFIG_FB=y -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_CLPS711X is not set -# CONFIG_FB_IMX is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_ARC is not set -# CONFIG_FB_CONTROL is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_EFI is not set -# CONFIG_FB_GBE is not set -# CONFIG_FB_PVR2 is not set -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_ATMEL is not set -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_VIA is not set -# CONFIG_FB_NEOMAGIC is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_WM8505 is not set -# CONFIG_FB_PXA168 is not set -# CONFIG_FB_SH_MOBILE_LCDC is not set -# CONFIG_FB_S3C is not set -# CONFIG_FB_SMSCUFX is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_FB_GOLDFISH is not set -# CONFIG_FB_DA8XX is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_SIMPLE is not set -# CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SM712 is not set -# CONFIG_FB_OMAP2 is not set -# CONFIG_MMP_DISP is not set -CONFIG_FB_CORE=y -CONFIG_FB_NOTIFY=y -# CONFIG_FIRMWARE_EDID is not set -CONFIG_FB_DEVICE=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_DMAMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS=y -CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set -# end of Frame buffer Devices - -# -# Backlight & LCD device support -# -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_KTD253 is not set -# CONFIG_BACKLIGHT_KTZ8866 is not set -# CONFIG_BACKLIGHT_OMAP1 is not set -# CONFIG_BACKLIGHT_PWM is not set -# CONFIG_BACKLIGHT_QCOM_WLED is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_LM3630A is not set -# CONFIG_BACKLIGHT_LM3639 is not set -# CONFIG_BACKLIGHT_LP855X is not set -# CONFIG_BACKLIGHT_GPIO is not set -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_BD6107 is not set -# CONFIG_BACKLIGHT_ARCXCNN is not set -# CONFIG_BACKLIGHT_LED is not set -# end of Backlight & LCD device support - -CONFIG_VIDEOMODE_HELPERS=y -CONFIG_HDMI=y - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set -# end of Console display driver support - -# CONFIG_LOGO is not set -# end of Graphics support - -# CONFIG_DRM_ACCEL is not set -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_DMAENGINE_PCM=y -CONFIG_SND_HWDEP=y -CONFIG_SND_RAWMIDI=y -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_OSSEMUL is not set -CONFIG_SND_PCM_TIMER=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -CONFIG_SND_CTL_FAST_LOOKUP=y -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_CTL_INPUT_VALIDATION is not set -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_PCMTEST is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set - -# -# HD-Audio -# -# CONFIG_SND_HDA_INTEL is not set -# end of HD-Audio - -CONFIG_SND_HDA_PREALLOC_SIZE=64 -CONFIG_SND_SPI=y -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=y -# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set -CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX is not set -CONFIG_SND_SOC=y -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -# CONFIG_SND_SOC_ADI is not set -# CONFIG_SND_SOC_AMD_ACP is not set -# CONFIG_SND_AMD_ACP_CONFIG is not set -# CONFIG_SND_SOC_APPLE_MCA is not set -# CONFIG_SND_ATMEL_SOC is not set -# CONFIG_SND_BCM2835_SOC_I2S is not set -# CONFIG_SND_SOC_CYGNUS is not set -# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set -# CONFIG_SND_EP93XX_SOC is not set -CONFIG_SND_DESIGNWARE_I2S=y -# CONFIG_SND_DESIGNWARE_PCM is not set - -# -# SoC Audio for Freescale CPUs -# - -# -# Common SoC Audio options for Freescale CPUs: -# -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_AUDMIX is not set -# 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_FSL_XCVR is not set -# CONFIG_SND_SOC_FSL_AUD2HTX is not set -# CONFIG_SND_SOC_FSL_RPMSG is not set -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# CONFIG_SND_IMX_SOC is not set -# end of SoC Audio for Freescale CPUs - -# CONFIG_SND_SOC_CHV3_I2S is not set -# CONFIG_SND_I2S_HI6210_I2S is not set -# CONFIG_SND_JZ4740_SOC_I2S is not set -# CONFIG_SND_KIRKWOOD_SOC is not set - -# -# SoC Audio for Loongson CPUs -# -# CONFIG_SND_SOC_LOONGSON_I2S_PCI is not set -# CONFIG_SND_SOC_LOONGSON_CARD is not set -# end of SoC Audio for Loongson CPUs - -# CONFIG_SND_SOC_IMG is not set -CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y -# CONFIG_SND_SOC_INTEL_KEEMBAY is not set -# CONFIG_SND_SOC_INTEL_AVS is not set -CONFIG_SND_SOC_INTEL_MACH=y -# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set -# CONFIG_SND_SOC_MT8186 is not set -# CONFIG_SND_SOC_MTK_BTCVSD is not set -# CONFIG_SND_SOC_MT8188 is not set -# CONFIG_SND_SOC_MT8195 is not set - -# -# ASoC support for Amlogic platforms -# -# CONFIG_SND_MESON_AIU is not set -# CONFIG_SND_MESON_AXG_FRDDR is not set -# CONFIG_SND_MESON_AXG_TODDR is not set -# CONFIG_SND_MESON_AXG_TDMIN is not set -# CONFIG_SND_MESON_AXG_TDMOUT is not set -# CONFIG_SND_MESON_AXG_SOUND_CARD is not set -# CONFIG_SND_MESON_AXG_SPDIFOUT is not set -# CONFIG_SND_MESON_AXG_SPDIFIN is not set -# CONFIG_SND_MESON_AXG_PDM is not set -# CONFIG_SND_MESON_GX_SOUND_CARD is not set -# CONFIG_SND_MESON_G12A_TOACODEC is not set -# CONFIG_SND_MESON_G12A_TOHDMITX is not set -# CONFIG_SND_SOC_MESON_T9015 is not set -# end of ASoC support for Amlogic platforms - -# CONFIG_SND_MXS_SOC is not set -# CONFIG_SND_PXA2XX_SOC is not set -# CONFIG_SND_SOC_QCOM is not set -# CONFIG_SND_SOC_ROCKCHIP is not set -# CONFIG_SND_SOC_SAMSUNG is not set - -# -# SoC Audio support for Renesas SoCs -# -# CONFIG_SND_SOC_SH4_FSI is not set -# CONFIG_SND_SOC_RCAR is not set -CONFIG_SND_SOC_RZ=m -# end of SoC Audio support for Renesas SoCs - -# CONFIG_SND_SOC_SOF_TOPLEVEL is not set -# CONFIG_SND_SOC_SPRD is not set -CONFIG_SND_SOC_STARFIVE=y -# CONFIG_SND_SOC_JH7110_PDM is not set -CONFIG_SND_SOC_JH7110_PWMDAC=y -# CONFIG_SND_SOC_JH7110_SPDIF is not set -CONFIG_SND_SOC_JH7110_TDM=y -# CONFIG_SND_SOC_STI is not set - -# -# STMicroelectronics STM32 SOC audio support -# -# CONFIG_SND_SOC_STM32_SAI is not set -# CONFIG_SND_SOC_STM32_I2S is not set -# CONFIG_SND_SOC_STM32_SPDIFRX is not set -# end of STMicroelectronics STM32 SOC audio support - -# -# Allwinner SoC Audio support -# -# CONFIG_SND_SUN4I_CODEC is not set -# CONFIG_SND_SUN8I_CODEC is not set -# CONFIG_SND_SUN8I_CODEC_ANALOG is not set -# CONFIG_SND_SUN50I_CODEC_ANALOG is not set -# CONFIG_SND_SUN4I_I2S is not set -# CONFIG_SND_SUN4I_SPDIF is not set -# CONFIG_SND_SUN50I_DMIC is not set -# end of Allwinner SoC Audio support - -# CONFIG_SND_SOC_TEGRA is not set - -# -# Audio support for Texas Instruments SoCs -# - -# -# Texas Instruments DAI support for: -# -# CONFIG_SND_SOC_DAVINCI_ASP is not set -# CONFIG_SND_SOC_DAVINCI_MCASP is not set -# CONFIG_SND_SOC_OMAP_DMIC is not set -# CONFIG_SND_SOC_OMAP_MCBSP is not set -# CONFIG_SND_SOC_OMAP_MCPDM is not set - -# -# Audio support for boards with Texas Instruments SoCs -# -# CONFIG_SND_SOC_OMAP_HDMI is not set -# CONFIG_SND_SOC_J721E_EVM is not set -# end of Audio support for Texas Instruments SoCs - -# CONFIG_SND_SOC_UNIPHIER is not set -# CONFIG_SND_SOC_XILINX_I2S is not set -# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set -# CONFIG_SND_SOC_XILINX_SPDIF is not set -# CONFIG_SND_SOC_XTFPGA_I2S is not set -CONFIG_SND_SOC_I2C_AND_SPI=y - -# -# CODEC drivers -# -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_AC108=y -# CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_ADAU1372_I2C is not set -# CONFIG_SND_SOC_ADAU1372_SPI is not set -# CONFIG_SND_SOC_ADAU1701 is not set -# CONFIG_SND_SOC_ADAU1761_I2C is not set -# CONFIG_SND_SOC_ADAU1761_SPI is not set -# CONFIG_SND_SOC_ADAU7002 is not set -# CONFIG_SND_SOC_ADAU7118_HW is not set -# CONFIG_SND_SOC_ADAU7118_I2C is not set -# CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4118 is not set -# CONFIG_SND_SOC_AK4375 is not set -# CONFIG_SND_SOC_AK4458 is not set -# CONFIG_SND_SOC_AK4554 is not set -# CONFIG_SND_SOC_AK4613 is not set -# CONFIG_SND_SOC_AK4642 is not set -# CONFIG_SND_SOC_AK5386 is not set -# CONFIG_SND_SOC_AK5558 is not set -# CONFIG_SND_SOC_ALC5623 is not set -# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set -# CONFIG_SND_SOC_AW8738 is not set -# CONFIG_SND_SOC_AW88395 is not set -# CONFIG_SND_SOC_AW88261 is not set -# CONFIG_SND_SOC_BD28623 is not set -# CONFIG_SND_SOC_BT_SCO is not set -# CONFIG_SND_SOC_CHV3_CODEC is not set -# CONFIG_SND_SOC_CPCAP is not set -# CONFIG_SND_SOC_CS35L32 is not set -# 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_CS35L41_SPI is not set -# CONFIG_SND_SOC_CS35L41_I2C is not set -# CONFIG_SND_SOC_CS35L45_SPI is not set -# CONFIG_SND_SOC_CS35L45_I2C is not set -# CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SPI 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 -# CONFIG_SND_SOC_CS42L56 is not set -# CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set -# CONFIG_SND_SOC_CS4234 is not set -# CONFIG_SND_SOC_CS4265 is not set -# CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set -# 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_CX2072X is not set -# CONFIG_SND_SOC_JZ4740_CODEC is not set -# CONFIG_SND_SOC_JZ4725B_CODEC is not set -# CONFIG_SND_SOC_JZ4760_CODEC is not set -# CONFIG_SND_SOC_JZ4770_CODEC is not set -# CONFIG_SND_SOC_DA7213 is not set -# CONFIG_SND_SOC_DMIC is not set -# CONFIG_SND_SOC_ES7134 is not set -# CONFIG_SND_SOC_ES7241 is not set -# CONFIG_SND_SOC_ES8316 is not set -# CONFIG_SND_SOC_ES8326 is not set -# CONFIG_SND_SOC_ES8328_I2C is not set -# CONFIG_SND_SOC_ES8328_SPI is not set -# CONFIG_SND_SOC_GTM601 is not set -# CONFIG_SND_SOC_HDA is not set -# CONFIG_SND_SOC_ICS43432 is not set -# CONFIG_SND_SOC_IDT821034 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set -# CONFIG_SND_SOC_LOCHNAGAR_SC is not set -# CONFIG_SND_SOC_MAX98088 is not set -# CONFIG_SND_SOC_MAX98090 is not set -# CONFIG_SND_SOC_MAX98357A is not set -# CONFIG_SND_SOC_MAX98504 is not set -# CONFIG_SND_SOC_MAX9867 is not set -# CONFIG_SND_SOC_MAX98927 is not set -# CONFIG_SND_SOC_MAX98520 is not set -# CONFIG_SND_SOC_MAX98373_I2C is not set -# CONFIG_SND_SOC_MAX98388 is not set -# CONFIG_SND_SOC_MAX98390 is not set -# CONFIG_SND_SOC_MAX98396 is not set -# CONFIG_SND_SOC_MAX9860 is not set -# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set -# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set -# CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM1789_I2C is not set -# CONFIG_SND_SOC_PCM179X_I2C is not set -# CONFIG_SND_SOC_PCM179X_SPI is not set -# CONFIG_SND_SOC_PCM186X_I2C is not set -# CONFIG_SND_SOC_PCM186X_SPI is not set -# CONFIG_SND_SOC_PCM3060_I2C is not set -# CONFIG_SND_SOC_PCM3060_SPI is not set -# CONFIG_SND_SOC_PCM3168A_I2C is not set -# CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM5102A is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set -# CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_PEB2466 is not set -# CONFIG_SND_SOC_RK3328 is not set -# CONFIG_SND_SOC_RK817 is not set -# CONFIG_SND_SOC_RT5616 is not set -# CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_RT5640 is not set -# CONFIG_SND_SOC_RT5659 is not set -# CONFIG_SND_SOC_RT9120 is not set -# CONFIG_SND_SOC_SGTL5000 is not set -# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set -# CONFIG_SND_SOC_SIMPLE_MUX is not set -# CONFIG_SND_SOC_SMA1303 is not set -CONFIG_SND_SOC_SPDIF=y -# CONFIG_SND_SOC_SRC4XXX_I2C is not set -# CONFIG_SND_SOC_SSM2305 is not set -# CONFIG_SND_SOC_SSM2518 is not set -# CONFIG_SND_SOC_SSM2602_SPI is not set -# CONFIG_SND_SOC_SSM2602_I2C is not set -# CONFIG_SND_SOC_SSM3515 is not set -# CONFIG_SND_SOC_SSM4567 is not set -# CONFIG_SND_SOC_STA32X is not set -# CONFIG_SND_SOC_STA350 is not set -# CONFIG_SND_SOC_STI_SAS is not set -# CONFIG_SND_SOC_TAS2552 is not set -# CONFIG_SND_SOC_TAS2562 is not set -# CONFIG_SND_SOC_TAS2764 is not set -# CONFIG_SND_SOC_TAS2770 is not set -# CONFIG_SND_SOC_TAS2780 is not set -# CONFIG_SND_SOC_TAS2781_I2C is not set -# CONFIG_SND_SOC_TAS5086 is not set -# CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TAS5805M is not set -# CONFIG_SND_SOC_TAS6424 is not set -# CONFIG_SND_SOC_TDA7419 is not set -# CONFIG_SND_SOC_TFA9879 is not set -# CONFIG_SND_SOC_TFA989X is not set -# CONFIG_SND_SOC_TLV320ADC3XXX is not set -# CONFIG_SND_SOC_TLV320AIC23_I2C is not set -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set -# CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set -# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set -# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set -# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set -# CONFIG_SND_SOC_TLV320ADCX140 is not set -# CONFIG_SND_SOC_TS3A227E is not set -# CONFIG_SND_SOC_TSCS42XX is not set -# CONFIG_SND_SOC_TSCS454 is not set -# CONFIG_SND_SOC_UDA1334 is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8523 is not set -# CONFIG_SND_SOC_WM8524 is not set -# CONFIG_SND_SOC_WM8580 is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731_I2C is not set -# CONFIG_SND_SOC_WM8731_SPI is not set -# CONFIG_SND_SOC_WM8737 is not set -# CONFIG_SND_SOC_WM8741 is not set -# CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM8770 is not set -# CONFIG_SND_SOC_WM8776 is not set -# CONFIG_SND_SOC_WM8782 is not set -# 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_WM8940 is not set -CONFIG_SND_SOC_WM8960=y -# CONFIG_SND_SOC_WM8961 is not set -# CONFIG_SND_SOC_WM8962 is not set -# CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8978 is not set -# CONFIG_SND_SOC_WM8985 is not set -# CONFIG_SND_SOC_ZL38060 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_MT6660 is not set -# CONFIG_SND_SOC_NAU8315 is not set -# CONFIG_SND_SOC_NAU8540 is not set -# CONFIG_SND_SOC_NAU8810 is not set -# CONFIG_SND_SOC_NAU8821 is not set -# CONFIG_SND_SOC_NAU8822 is not set -# CONFIG_SND_SOC_NAU8824 is not set -# CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set -# CONFIG_SND_SOC_LPASS_VA_MACRO is not set -# CONFIG_SND_SOC_LPASS_RX_MACRO is not set -# CONFIG_SND_SOC_LPASS_TX_MACRO is not set -# end of CODEC drivers - -CONFIG_SND_SIMPLE_CARD_UTILS=y -CONFIG_SND_SIMPLE_CARD=y -# CONFIG_SND_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set -# CONFIG_SND_TEST_COMPONENT is not set -# CONFIG_SND_VIRTIO is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_BATTERY_STRENGTH is not set -# CONFIG_HIDRAW is not set -CONFIG_UHID=y -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EVISION is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_GOOGLE_STADIA_FF is not set -# CONFIG_HID_VIVALDI 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_VRC2 is not set -# CONFIG_HID_XIAOMI is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LETSKETCH is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set -# CONFIG_HID_REDRAGON is not set -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_NTRIG is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PENMOUNT is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PXRC is not set -# CONFIG_HID_RAZER is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -# CONFIG_HID_SONY is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_TOPRE is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_MCP2221 is not set -# end of Special HID drivers - -# -# HID-BPF support -# -# end of HID-BPF support - -# -# USB HID support -# -CONFIG_USB_HID=y -# CONFIG_HID_PID is not set -# CONFIG_USB_HIDDEV is not set -# end of USB HID support - -CONFIG_I2C_HID=y -# CONFIG_I2C_HID_OF is not set -# CONFIG_I2C_HID_OF_ELAN is not set -# CONFIG_I2C_HID_OF_GOODIX is not set - -# -# Intel ISH HID support -# -# end of Intel ISH HID support - -# -# AMD SFH HID Support -# -# CONFIG_AMD_SFH_HID is not set -# end of AMD SFH HID Support - -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -# CONFIG_USB_LED_TRIG is not set -# CONFIG_USB_ULPI_BUS is not set -# CONFIG_USB_CONN_GPIO is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB=y -CONFIG_USB_PCI=y -# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set - -# -# Miscellaneous USB options -# -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_FEW_INIT_RETRIES is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -CONFIG_USB_OTG=y -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_OTG_DISABLE_EXTERNAL_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 - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y -# CONFIG_USB_XHCI_PCI_RENESAS is not set -CONFIG_USB_XHCI_PLATFORM=y -# CONFIG_USB_XHCI_HISTB is not set -# CONFIG_USB_XHCI_MTK is not set -# CONFIG_USB_XHCI_MVEBU is not set -# CONFIG_USB_XHCI_RCAR is not set -# CONFIG_USB_BRCMSTB is not set -# CONFIG_USB_EHCI_HCD is not set -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_MAX3421_HCD is not set -# CONFIG_USB_OHCI_HCD is not set -# CONFIG_USB_UHCI_HCD is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_RENESAS_USBHS_HCD is not set -# CONFIG_USB_HCD_TEST_MODE is not set -CONFIG_USB_RENESAS_USBHS=y - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set -# CONFIG_USB_WDM is not set -# CONFIG_USB_TMC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -CONFIG_USB_UAS=y - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USBIP_CORE is not set - -# -# USB dual-mode controller drivers -# -CONFIG_USB_CDNS_SUPPORT=y -CONFIG_USB_CDNS_HOST=y -CONFIG_USB_CDNS3=y -CONFIG_USB_CDNS3_GADGET=y -CONFIG_USB_CDNS3_HOST=y -CONFIG_USB_CDNS3_TI=y -CONFIG_USB_CDNS3_IMX=y -CONFIG_USB_CDNS3_STARFIVE=y -# CONFIG_USB_FOTG210 is not set -# CONFIG_USB_MTU3 is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_ISP1760 is not set - -# -# USB port drivers -# -CONFIG_USB_SERIAL=m -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_SIMPLE is not set -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_VISOR=m -CONFIG_USB_SERIAL_IPAQ=m -CONFIG_USB_SERIAL_IR=m -CONFIG_USB_SERIAL_EDGEPORT=m -CONFIG_USB_SERIAL_EDGEPORT_TI=m -CONFIG_USB_SERIAL_F81232=m -# CONFIG_USB_SERIAL_F8153X is not set -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -CONFIG_USB_SERIAL_KEYSPAN_PDA=m -CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KLSI=m -CONFIG_USB_SERIAL_KOBIL_SCT=m -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_METRO=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -# CONFIG_USB_SERIAL_MXUPORT is not set -CONFIG_USB_SERIAL_NAVMAN=m -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_QCAUX=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -CONFIG_USB_SERIAL_CYBERJACK=m -CONFIG_USB_SERIAL_WWAN=m -# CONFIG_USB_SERIAL_OPTION is not set -CONFIG_USB_SERIAL_OMNINET=m -CONFIG_USB_SERIAL_OPTICON=m -CONFIG_USB_SERIAL_XSENS_MT=m -CONFIG_USB_SERIAL_WISHBONE=m -CONFIG_USB_SERIAL_SSU100=m -# CONFIG_USB_SERIAL_QT2 is not set -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_XR is not set -CONFIG_USB_SERIAL_DEBUG=m - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_USB_QCOM_EUD is not set -# CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_YUREX is not set -CONFIG_USB_EZUSB_FX2=m -# CONFIG_USB_HUB_USB251XB is not set -# CONFIG_USB_HSIC_USB3503 is not set -# CONFIG_USB_HSIC_USB4604 is not set -# CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_CHAOSKEY is not set -# CONFIG_BRCM_USB_PINMAP is not set -# CONFIG_USB_ONBOARD_HUB is not set - -# -# USB Physical Layer drivers -# -# CONFIG_NOP_USB_XCEIV is not set -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_ISP1301 is not set -# CONFIG_USB_TEGRA_PHY is not set -# CONFIG_USB_ULPI is not set -# end of USB Physical Layer drivers - -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -# CONFIG_U_SERIAL_CONSOLE is not set - -# -# USB Peripheral Controller -# -# CONFIG_USB_LPC32XX is not set -# CONFIG_USB_GR_UDC is not set -# CONFIG_USB_R8A66597 is not set -CONFIG_USB_RENESAS_USBHS_UDC=m -# CONFIG_USB_RZV2M_USB3DRD is not set -# CONFIG_USB_RENESAS_USBF is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_SNP_UDC_PLAT is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_BDC_UDC is not set -# CONFIG_USB_AMD5536UDC is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_EG20T is not set -# CONFIG_USB_GADGET_XILINX is not set -# CONFIG_USB_MAX3420_UDC is not set -# CONFIG_USB_ASPEED_UDC is not set -# CONFIG_USB_ASPEED_VHUB is not set -# CONFIG_USB_DUMMY_HCD is not set -# end of USB Peripheral Controller - -CONFIG_USB_LIBCOMPOSITE=y -CONFIG_USB_F_ACM=y -CONFIG_USB_U_SERIAL=y -CONFIG_USB_U_ETHER=y -CONFIG_USB_F_SERIAL=y -CONFIG_USB_F_OBEX=y -CONFIG_USB_F_NCM=y -CONFIG_USB_F_ECM=y -CONFIG_USB_F_EEM=y -CONFIG_USB_F_SUBSET=y -CONFIG_USB_F_RNDIS=y -CONFIG_USB_F_MASS_STORAGE=y -CONFIG_USB_F_FS=y -CONFIG_USB_CONFIGFS=y -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_OBEX=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_RNDIS=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -# CONFIG_USB_CONFIGFS_F_LB_SS is not set -CONFIG_USB_CONFIGFS_F_FS=y -# CONFIG_USB_CONFIGFS_F_UAC1 is not set -# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set -# CONFIG_USB_CONFIGFS_F_UAC2 is not set -# CONFIG_USB_CONFIGFS_F_MIDI is not set -# CONFIG_USB_CONFIGFS_F_MIDI2 is not set -# CONFIG_USB_CONFIGFS_F_HID is not set -# CONFIG_USB_CONFIGFS_F_UVC is not set -# CONFIG_USB_CONFIGFS_F_PRINTER is not set - -# -# USB Gadget precomposed configurations -# -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_G_NCM is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_G_ACM_MS is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set -# CONFIG_USB_RAW_GADGET is not set -# end of USB Gadget precomposed configurations - -# CONFIG_TYPEC is not set -CONFIG_USB_ROLE_SWITCH=y -CONFIG_MMC=y -CONFIG_PWRSEQ_EMMC=y -CONFIG_PWRSEQ_SIMPLE=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_DEBUG=y -# CONFIG_MMC_SUNPLUS is not set -# CONFIG_MMC_ARMMMCI is not set -CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -# CONFIG_MMC_SDHCI_OF_ARASAN is not set -# CONFIG_MMC_SDHCI_OF_ASPEED is not set -# CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -CONFIG_MMC_SDHCI_OF_DWCMSHC=y -# CONFIG_MMC_SDHCI_OF_SPARX5 is not set -# CONFIG_MMC_SDHCI_CADENCE is not set -# CONFIG_MMC_SDHCI_ESDHC_IMX is not set -# CONFIG_MMC_SDHCI_DOVE is not set -# CONFIG_MMC_SDHCI_TEGRA is not set -# CONFIG_MMC_SDHCI_S3C is not set -# CONFIG_MMC_SDHCI_PXAV3 is not set -# CONFIG_MMC_SDHCI_PXAV2 is not set -# CONFIG_MMC_SDHCI_SPEAR is not set -# CONFIG_MMC_SDHCI_BCM_KONA is not set -# CONFIG_MMC_SDHCI_F_SDH30 is not set -# CONFIG_MMC_SDHCI_MILBEAUT is not set -# CONFIG_MMC_SDHCI_IPROC is not set -# CONFIG_MMC_MESON_GX is not set -# CONFIG_MMC_MESON_MX_SDHC is not set -# CONFIG_MMC_MESON_MX_SDIO is not set -# CONFIG_MMC_MOXART is not set -# CONFIG_MMC_SDHCI_ST is not set -# CONFIG_MMC_OMAP_HS is not set -# CONFIG_MMC_SDHCI_MSM is not set -# CONFIG_MMC_TIFM_SD is not set -# CONFIG_MMC_DAVINCI is not set -CONFIG_MMC_SPI=y -# CONFIG_MMC_SDHCI_SPRD is not set -CONFIG_MMC_TMIO_CORE=y -CONFIG_MMC_SDHI=y -# CONFIG_MMC_SDHI_SYS_DMAC is not set -# CONFIG_MMC_SDHI_INTERNAL_DMAC is not set -# CONFIG_MMC_UNIPHIER is not set -# CONFIG_MMC_CB710 is not set -# CONFIG_MMC_VIA_SDMMC is not set -CONFIG_MMC_DW=y -CONFIG_MMC_DW_PLTFM=y -# CONFIG_MMC_DW_BLUEFIELD is not set -# CONFIG_MMC_DW_EXYNOS is not set -# CONFIG_MMC_DW_HI3798CV200 is not set -# CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set -CONFIG_MMC_DW_STARFIVE=y -# CONFIG_MMC_SH_MMCIF is not set -# CONFIG_MMC_VUB300 is not set -# CONFIG_MMC_USHC is not set -# CONFIG_MMC_USDHI6ROL0 is not set -# CONFIG_MMC_CQHCI is not set -# CONFIG_MMC_HSQ is not set -# CONFIG_MMC_TOSHIBA_PCI is not set -# CONFIG_MMC_BCM2835 is not set -# CONFIG_MMC_MTK is not set -# CONFIG_MMC_SDHCI_BRCMSTB is not set -# CONFIG_MMC_SDHCI_XENON is not set -# CONFIG_MMC_SDHCI_OMAP is not set -# CONFIG_MMC_SDHCI_AM654 is not set -# CONFIG_MMC_OWL is not set -# CONFIG_MMC_LITEX is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -# CONFIG_LEDS_CLASS_FLASH is not set -# CONFIG_LEDS_CLASS_MULTICOLOR is not set -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set - -# -# LED drivers -# -# CONFIG_LEDS_AN30259A is not set -# CONFIG_LEDS_ARIEL is not set -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_AW2013 is not set -# CONFIG_LEDS_BCM6328 is not set -# CONFIG_LEDS_BCM6358 is not set -# CONFIG_LEDS_CR0014114 is not set -# CONFIG_LEDS_EL15203000 is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LM3532 is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_LM3692X is not set -# CONFIG_LEDS_COBALT_QUBE is not set -# CONFIG_LEDS_COBALT_RAQ is not set -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP3952 is not set -# CONFIG_LEDS_LP50XX is not set -# CONFIG_LEDS_LP55XX_COMMON is not set -# CONFIG_LEDS_LP8860 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_PCA995X is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_PWM is not set -# CONFIG_LEDS_REGULATOR is not set -# CONFIG_LEDS_BD2606MVV is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_LT3593 is not set -CONFIG_LEDS_NS2=y -CONFIG_LEDS_NETXBIG=y -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_OT200 is not set -# CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set - -# -# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) -# -# CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_MLXREG is not set -# CONFIG_LEDS_USER is not set -# CONFIG_LEDS_SPI_BYTE is not set -# CONFIG_LEDS_TI_LMU_COMMON is not set -# CONFIG_LEDS_LM3697 is not set -# CONFIG_LEDS_IP30 is not set -# CONFIG_LEDS_BCM63138 is not set -# CONFIG_LEDS_LGM is not set - -# -# Flash and Torch LED drivers -# - -# -# RGB LED drivers -# - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_ONESHOT is not set -# CONFIG_LEDS_TRIGGER_DISK is not set -# CONFIG_LEDS_TRIGGER_MTD is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_CPU is not set -# CONFIG_LEDS_TRIGGER_ACTIVITY is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set - -# -# iptables trigger is under Netfilter config (LED target) -# -# CONFIG_LEDS_TRIGGER_TRANSIENT is not set -# CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_PANIC is not set -# CONFIG_LEDS_TRIGGER_NETDEV is not set -# CONFIG_LEDS_TRIGGER_PATTERN is not set -# CONFIG_LEDS_TRIGGER_AUDIO is not set -# CONFIG_LEDS_TRIGGER_TTY is not set - -# -# Simple LED drivers -# -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -CONFIG_EDAC_SUPPORT=y -# CONFIG_EDAC is not set -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set -CONFIG_RTC_NVMEM=y - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# 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_BRCMSTB is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_HYM8563 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_MAX8907 is not set -# CONFIG_RTC_DRV_MAX77686 is not set -# CONFIG_RTC_DRV_NCT3018Y is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_ISL12026 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# 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_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_S5M is not set -# CONFIG_RTC_DRV_SD3078 is not set - -# -# SPI RTC drivers -# -# CONFIG_RTC_DRV_M41T93 is not set -# CONFIG_RTC_DRV_M41T94 is not set -# CONFIG_RTC_DRV_DS1302 is not set -# CONFIG_RTC_DRV_DS1305 is not set -# CONFIG_RTC_DRV_DS1343 is not set -# CONFIG_RTC_DRV_DS1347 is not set -# CONFIG_RTC_DRV_DS1390 is not set -# CONFIG_RTC_DRV_MAX6916 is not set -# CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RX4581 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_PCF2123 is not set -# CONFIG_RTC_DRV_MCP795 is not set -CONFIG_RTC_I2C_AND_SPI=y - -# -# SPI and I2C RTC drivers -# -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RX6110 is not set - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_EFI is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_BQ4802 is not set -# CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_GAMECUBE is not set -# CONFIG_RTC_DRV_SC27XX is not set -CONFIG_RTC_DRV_SPEAR=y -# CONFIG_RTC_DRV_ZYNQMP is not set -CONFIG_RTC_DRV_STARFIVE=y - -# -# on-CPU RTC drivers -# -# CONFIG_RTC_DRV_ASM9260 is not set -# CONFIG_RTC_DRV_DIGICOLOR is not set -# CONFIG_RTC_DRV_FSL_FTM_ALARM is not set -# CONFIG_RTC_DRV_MESON is not set -# CONFIG_RTC_DRV_MESON_VRTC is not set -# CONFIG_RTC_DRV_OMAP is not set -# CONFIG_RTC_DRV_S3C is not set -# CONFIG_RTC_DRV_EP93XX is not set -# CONFIG_RTC_DRV_PL030 is not set -# CONFIG_RTC_DRV_PL031 is not set -# CONFIG_RTC_DRV_AT91RM9200 is not set -# CONFIG_RTC_DRV_AT91SAM9 is not set -# CONFIG_RTC_DRV_RZN1 is not set -# CONFIG_RTC_DRV_GENERIC is not set -# CONFIG_RTC_DRV_VT8500 is not set -# CONFIG_RTC_DRV_SUN6I is not set -# CONFIG_RTC_DRV_SUNXI is not set -# CONFIG_RTC_DRV_MV is not set -# CONFIG_RTC_DRV_ARMADA38X is not set -# CONFIG_RTC_DRV_CADENCE is not set -# CONFIG_RTC_DRV_FTRTC010 is not set -# CONFIG_RTC_DRV_STMP is not set -# CONFIG_RTC_DRV_JZ4740 is not set -# CONFIG_RTC_DRV_LOONGSON is not set -# CONFIG_RTC_DRV_LPC24XX is not set -# CONFIG_RTC_DRV_LPC32XX is not set -# CONFIG_RTC_DRV_PM8XXX is not set -# CONFIG_RTC_DRV_TEGRA is not set -# CONFIG_RTC_DRV_MXC is not set -# CONFIG_RTC_DRV_MXC_V2 is not set -# CONFIG_RTC_DRV_SNVS is not set -# CONFIG_RTC_DRV_BBNSM is not set -# CONFIG_RTC_DRV_MOXART is not set -# CONFIG_RTC_DRV_MT2712 is not set -# CONFIG_RTC_DRV_MT6397 is not set -# CONFIG_RTC_DRV_MT7622 is not set -# CONFIG_RTC_DRV_XGENE is not set -# CONFIG_RTC_DRV_R7301 is not set -# CONFIG_RTC_DRV_STM32 is not set -# CONFIG_RTC_DRV_RTD119X is not set -# CONFIG_RTC_DRV_ASPEED is not set -# CONFIG_RTC_DRV_TI_K3 is not set - -# -# HID Sensor RTC drivers -# -CONFIG_RTC_DRV_GOLDFISH=y -# CONFIG_RTC_DRV_MSC313 is not set -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DMA_OF=y -# CONFIG_ALTERA_MSGDMA is not set -CONFIG_AMBA_PL08X=y -# CONFIG_APPLE_ADMAC is not set -# CONFIG_AXI_DMAC is not set -# CONFIG_BCM_SBA_RAID is not set -# CONFIG_DMA_JZ4780 is not set -# CONFIG_DMA_SA11X0 is not set -# CONFIG_DMA_SUN6I is not set -CONFIG_DW_AXI_DMAC=y -# CONFIG_EP93XX_DMA is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_HISI_DMA is not set -# CONFIG_IMG_MDC_DMA is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_K3_DMA is not set -# CONFIG_LPC18XX_DMAMUX is not set -# CONFIG_MCF_EDMA is not set -# CONFIG_MILBEAUT_HDMAC is not set -# CONFIG_MILBEAUT_XDMAC is not set -# CONFIG_MMP_PDMA is not set -# CONFIG_MMP_TDMA is not set -# CONFIG_MV_XOR is not set -# CONFIG_MXS_DMA is not set -# CONFIG_NBPFAXI_DMA is not set -# CONFIG_PCH_DMA is not set -# CONFIG_PL330_DMA is not set -# CONFIG_PLX_DMA is not set -# CONFIG_STM32_DMA is not set -# CONFIG_STM32_DMAMUX is not set -# CONFIG_STM32_MDMA is not set -# CONFIG_SPRD_DMA is not set -# CONFIG_TEGRA20_APB_DMA is not set -# CONFIG_TEGRA210_ADMA is not set -# CONFIG_TIMB_DMA is not set -# CONFIG_UNIPHIER_MDMAC is not set -# CONFIG_UNIPHIER_XDMAC is not set -# CONFIG_XGENE_DMA is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_XDMA is not set -# CONFIG_XILINX_ZYNQMP_DMA is not set -# CONFIG_XILINX_ZYNQMP_DPDMA is not set -# CONFIG_MTK_HSDMA is not set -# CONFIG_MTK_CQDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_HIDMA is not set -CONFIG_DW_DMAC_CORE=y -# CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -CONFIG_HSU_DMA=y -# CONFIG_SF_PDMA is not set -CONFIG_RENESAS_DMA=y -CONFIG_SH_DMAE_BASE=y -# CONFIG_SH_DMAE is not set -# CONFIG_RCAR_DMAC is not set -# CONFIG_RENESAS_USB_DMAC is not set -# CONFIG_RZ_DMAC is not set -CONFIG_TI_EDMA=y -CONFIG_DMA_OMAP=y -CONFIG_TI_DMA_CROSSBAR=y -# CONFIG_INTEL_LDMA is not set - -# -# DMA Clients -# -# CONFIG_ASYNC_TX_DMA is not set -CONFIG_DMATEST=y -CONFIG_DMA_ENGINE_RAID=y - -# -# DMABUF options -# -CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set -# CONFIG_UDMABUF is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set -# CONFIG_DMABUF_HEAPS is not set -# CONFIG_DMABUF_SYSFS_STATS is not set -# end of DMABUF options - -# CONFIG_UIO is not set -# CONFIG_VFIO is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRTIO_ANCHOR=y -CONFIG_VIRTIO=y -# CONFIG_VIRTIO_MENU is not set -# CONFIG_VDPA is not set -# CONFIG_VHOST_MENU is not set - -# -# Microsoft Hyper-V guest support -# -# end of Microsoft Hyper-V guest support - -# CONFIG_GREYBUS is not set -# CONFIG_COMEDI is not set -# CONFIG_STAGING is not set -CONFIG_GOLDFISH=y -# CONFIG_GOLDFISH_PIPE is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_MELLANOX_PLATFORM is not set -# CONFIG_OLPC_XO175 is not set -CONFIG_SURFACE_PLATFORMS=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_COMMON_CLK=y - -# -# Clock driver for ARM Reference designs -# -# CONFIG_CLK_ICST is not set -# CONFIG_CLK_SP810 is not set -# end of Clock driver for ARM Reference designs - -# CONFIG_CLK_HSDK is not set -# CONFIG_LMK04832 is not set -# CONFIG_COMMON_CLK_APPLE_NCO is not set -# CONFIG_COMMON_CLK_MAX77686 is not set -# CONFIG_COMMON_CLK_MAX9485 is not set -# CONFIG_COMMON_CLK_HI655X is not set -# CONFIG_COMMON_CLK_SCMI is not set -# CONFIG_COMMON_CLK_SCPI is not set -# CONFIG_COMMON_CLK_SI5341 is not set -# CONFIG_COMMON_CLK_SI5351 is not set -# CONFIG_COMMON_CLK_SI514 is not set -# CONFIG_COMMON_CLK_SI544 is not set -# CONFIG_COMMON_CLK_SI570 is not set -# CONFIG_COMMON_CLK_BM1880 is not set -# CONFIG_COMMON_CLK_CDCE706 is not set -# CONFIG_COMMON_CLK_TPS68470 is not set -# CONFIG_COMMON_CLK_CDCE925 is not set -# CONFIG_COMMON_CLK_CS2000_CP is not set -# CONFIG_COMMON_CLK_EN7523 is not set -# CONFIG_COMMON_CLK_FSL_FLEXSPI is not set -# CONFIG_COMMON_CLK_FSL_SAI is not set -# CONFIG_COMMON_CLK_GEMINI is not set -# CONFIG_COMMON_CLK_LAN966X is not set -# CONFIG_COMMON_CLK_ASPEED is not set -# CONFIG_COMMON_CLK_S2MPS11 is not set -# CONFIG_COMMON_CLK_AXI_CLKGEN is not set -# CONFIG_CLK_QORIQ is not set -# CONFIG_CLK_LS1028A_PLLDIG is not set -# CONFIG_COMMON_CLK_XGENE is not set -# CONFIG_COMMON_CLK_LOONGSON2 is not set -# CONFIG_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_RS9_PCIE is not set -# CONFIG_COMMON_CLK_SI521XX is not set -# CONFIG_COMMON_CLK_VC3 is not set -# CONFIG_COMMON_CLK_VC5 is not set -# CONFIG_COMMON_CLK_VC7 is not set -# CONFIG_COMMON_CLK_MMP2_AUDIO is not set -# CONFIG_COMMON_CLK_FIXED_MMIO is not set -# CONFIG_COMMON_CLK_SP7021 is not set -# CONFIG_CLK_ACTIONS is not set -# CONFIG_CLK_BAIKAL_T1 is not set -# CONFIG_CLK_BCM2711_DVP is not set -# CONFIG_CLK_BCM2835 is not set -# CONFIG_CLK_BCM_63XX is not set -# CONFIG_CLK_BCM_63XX_GATE is not set -# CONFIG_CLK_BCM63268_TIMER is not set -# CONFIG_CLK_BCM_KONA is not set -# CONFIG_CLK_BCM_CYGNUS is not set -# CONFIG_CLK_BCM_HR2 is not set -# CONFIG_CLK_BCM_NSP is not set -# CONFIG_CLK_BCM_NS2 is not set -# CONFIG_CLK_BCM_SR is not set -# CONFIG_CLK_RASPBERRYPI is not set -# CONFIG_COMMON_CLK_HI3516CV300 is not set -# CONFIG_COMMON_CLK_HI3519 is not set -# CONFIG_COMMON_CLK_HI3559A is not set -# CONFIG_COMMON_CLK_HI3660 is not set -# CONFIG_COMMON_CLK_HI3670 is not set -# CONFIG_COMMON_CLK_HI3798CV200 is not set -# CONFIG_COMMON_CLK_HI6220 is not set -# CONFIG_RESET_HISI is not set -# CONFIG_STUB_CLK_HI6220 is not set -# CONFIG_STUB_CLK_HI3660 is not set -# CONFIG_COMMON_CLK_BOSTON is not set -# CONFIG_MXC_CLK is not set -# CONFIG_CLK_IMX8MM is not set -# CONFIG_CLK_IMX8MN is not set -# CONFIG_CLK_IMX8MP is not set -# CONFIG_CLK_IMX8MQ is not set -# CONFIG_CLK_IMX8ULP is not set -# CONFIG_CLK_IMX93 is not set -# CONFIG_CLK_IMXRT1050 is not set - -# -# Ingenic SoCs drivers -# -# CONFIG_INGENIC_CGU_JZ4740 is not set -# CONFIG_INGENIC_CGU_JZ4755 is not set -# CONFIG_INGENIC_CGU_JZ4725B is not set -# CONFIG_INGENIC_CGU_JZ4760 is not set -# CONFIG_INGENIC_CGU_JZ4770 is not set -# CONFIG_INGENIC_CGU_JZ4780 is not set -# CONFIG_INGENIC_CGU_X1000 is not set -# CONFIG_INGENIC_CGU_X1830 is not set -# CONFIG_INGENIC_TCU_CLK is not set -# end of Ingenic SoCs drivers - -# CONFIG_COMMON_CLK_KEYSTONE is not set -# CONFIG_TI_SYSCON_CLK is not set - -# -# Clock driver for MediaTek SoC -# -# CONFIG_COMMON_CLK_MEDIATEK_FHCTL is not set -# CONFIG_COMMON_CLK_MT2701 is not set -# CONFIG_COMMON_CLK_MT2712 is not set -# CONFIG_COMMON_CLK_MT6765 is not set -# CONFIG_COMMON_CLK_MT6779 is not set -# CONFIG_COMMON_CLK_MT6795 is not set -# CONFIG_COMMON_CLK_MT6797 is not set -# CONFIG_COMMON_CLK_MT7622 is not set -# CONFIG_COMMON_CLK_MT7629 is not set -# CONFIG_COMMON_CLK_MT7981 is not set -# CONFIG_COMMON_CLK_MT7986 is not set -# CONFIG_COMMON_CLK_MT8135 is not set -# CONFIG_COMMON_CLK_MT8167 is not set -# CONFIG_COMMON_CLK_MT8173 is not set -# CONFIG_COMMON_CLK_MT8183 is not set -# CONFIG_COMMON_CLK_MT8186 is not set -# CONFIG_COMMON_CLK_MT8188 is not set -# CONFIG_COMMON_CLK_MT8192 is not set -# CONFIG_COMMON_CLK_MT8195 is not set -# CONFIG_COMMON_CLK_MT8365 is not set -# CONFIG_COMMON_CLK_MT8516 is not set -# end of Clock driver for MediaTek SoC - -# -# Clock support for Amlogic platforms -# -# end of Clock support for Amlogic platforms - -# CONFIG_MSTAR_MSC313_CPUPLL is not set -# CONFIG_MSTAR_MSC313_MPLL is not set -# CONFIG_MCHP_CLK_MPFS is not set -CONFIG_COMMON_CLK_NUVOTON=y -CONFIG_CLK_MA35D1=y -# CONFIG_COMMON_CLK_PISTACHIO is not set -# CONFIG_COMMON_CLK_QCOM is not set -# CONFIG_CLK_MT7621 is not set -# CONFIG_CLK_MTMIPS is not set -# CONFIG_CLK_RENESAS is not set -# CONFIG_COMMON_CLK_SAMSUNG is not set -# CONFIG_CLK_SIFIVE is not set -# CONFIG_CLK_INTEL_SOCFPGA is not set -# CONFIG_SPRD_COMMON_CLK is not set -CONFIG_CLK_STARFIVE_JH71X0=y -CONFIG_CLK_STARFIVE_JH7100=y -# CONFIG_CLK_STARFIVE_JH7100_AUDIO is not set -CONFIG_CLK_STARFIVE_JH7110_PLL=y -CONFIG_CLK_STARFIVE_JH7110_SYS=y -CONFIG_CLK_STARFIVE_JH7110_AON=y -CONFIG_CLK_STARFIVE_JH7110_STG=y -CONFIG_CLK_STARFIVE_JH7110_ISP=y -CONFIG_CLK_STARFIVE_JH7110_VOUT=y -CONFIG_CLK_SUNXI=y -CONFIG_CLK_SUNXI_CLOCKS=y -CONFIG_CLK_SUNXI_PRCM_SUN6I=y -CONFIG_CLK_SUNXI_PRCM_SUN8I=y -CONFIG_CLK_SUNXI_PRCM_SUN9I=y -# CONFIG_SUNXI_CCU is not set -# CONFIG_COMMON_CLK_TI_ADPLL is not set -# CONFIG_CLK_UNIPHIER is not set -# CONFIG_COMMON_CLK_VISCONTI is not set -# CONFIG_CLK_LGM_CGU is not set -# CONFIG_XILINX_VCU is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -# CONFIG_COMMON_CLK_ZYNQMP is not set -# CONFIG_HWSPINLOCK is not set - -# -# Clock Source drivers -# -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_CLKSRC_MMIO=y -# CONFIG_BCM2835_TIMER is not set -# CONFIG_BCM_KONA_TIMER is not set -# CONFIG_DAVINCI_TIMER is not set -# CONFIG_DIGICOLOR_TIMER is not set -# CONFIG_OMAP_DM_TIMER is not set -# CONFIG_DW_APB_TIMER is not set -# CONFIG_FTTMR010_TIMER is not set -# CONFIG_IXP4XX_TIMER is not set -# CONFIG_MESON6_TIMER is not set -# CONFIG_OWL_TIMER is not set -# CONFIG_RDA_TIMER is not set -# CONFIG_SUN4I_TIMER is not set -# CONFIG_SUN5I_HSTIMER is not set -# CONFIG_TEGRA_TIMER is not set -# CONFIG_TEGRA186_TIMER is not set -# CONFIG_VT8500_TIMER is not set -# CONFIG_NPCM7XX_TIMER is not set -# CONFIG_CADENCE_TTC_TIMER is not set -# CONFIG_ASM9260_TIMER is not set -# CONFIG_CLKSRC_DBX500_PRCMU is not set -# CONFIG_CLPS711X_TIMER is not set -# CONFIG_MXS_TIMER is not set -# CONFIG_NSPIRE_TIMER is not set -# CONFIG_INTEGRATOR_AP_TIMER is not set -# CONFIG_CLKSRC_PISTACHIO is not set -# CONFIG_CLKSRC_TI_32K is not set -# CONFIG_CLKSRC_STM32_LP is not set -# CONFIG_CLKSRC_MPS2 is not set -# CONFIG_ARC_TIMERS is not set -# CONFIG_ARM_TIMER_SP804 is not set -# CONFIG_ARMV7M_SYSTICK is not set -# CONFIG_ATMEL_PIT is not set -# CONFIG_ATMEL_ST is not set -# CONFIG_CLKSRC_SAMSUNG_PWM is not set -# CONFIG_FSL_FTM_TIMER is not set -# CONFIG_MTK_TIMER is not set -# CONFIG_MTK_CPUX_TIMER is not set -# CONFIG_SPRD_TIMER is not set -# CONFIG_CLKSRC_JCORE_PIT is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_RENESAS_OSTM is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_EM_TIMER_STI is not set -# CONFIG_CLKSRC_VERSATILE is not set -# CONFIG_CLKSRC_PXA is not set -# CONFIG_TIMER_IMX_SYS_CTR is not set -# CONFIG_CLKSRC_LOONGSON1_PWM is not set -# CONFIG_CLKSRC_ST_LPC is not set -# CONFIG_GXP_TIMER is not set -CONFIG_RISCV_TIMER=y -CONFIG_STARFIVE_JH7110_TIMER=y -# CONFIG_CLINT_TIMER is not set -# CONFIG_MSC313E_TIMER is not set -# CONFIG_INGENIC_TIMER is not set -# CONFIG_INGENIC_SYSOST is not set -# CONFIG_INGENIC_OST is not set -# CONFIG_GOLDFISH_TIMER is not set -# end of Clock Source drivers - -CONFIG_MAILBOX=y -# CONFIG_ARM_MHU is not set -# CONFIG_ARM_MHU_V2 is not set -# CONFIG_IMX_MBOX is not set -# CONFIG_PLATFORM_MHU is not set -# CONFIG_PL320_MBOX is not set -# CONFIG_ARMADA_37XX_RWTM_MBOX is not set -# CONFIG_ROCKCHIP_MBOX is not set -# CONFIG_ALTERA_MBOX is not set -# CONFIG_HI3660_MBOX is not set -# CONFIG_HI6220_MBOX is not set -# CONFIG_MAILBOX_TEST is not set -# CONFIG_POLARFIRE_SOC_MAILBOX is not set -# CONFIG_QCOM_APCS_IPC is not set -# CONFIG_BCM_PDC_MBOX is not set -# CONFIG_STM32_IPCC is not set -# CONFIG_MTK_ADSP_MBOX is not set -# CONFIG_MTK_CMDQ_MBOX is not set -# CONFIG_SUN6I_MSGBOX is not set -# CONFIG_SPRD_MBOX is not set -# CONFIG_QCOM_IPCC is not set -CONFIG_STARFIVE_IPI_MBOX=y -CONFIG_STARFIVE_MBOX=m -CONFIG_STARFIVE_MBOX_TEST=m -# CONFIG_IOMMU_SUPPORT is not set - -# -# Remoteproc drivers -# -# CONFIG_REMOTEPROC is not set -# end of Remoteproc drivers - -# -# Rpmsg drivers -# -CONFIG_RPMSG=y -CONFIG_RPMSG_CHAR=y -CONFIG_RPMSG_CTRL=y -CONFIG_RPMSG_NS=y -CONFIG_RPMSG_STARFIVE=m -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -CONFIG_RPMSG_VIRTIO=y -# end of Rpmsg drivers - -# CONFIG_SOUNDWIRE is not set - -# -# SOC (System On Chip) specific Drivers -# -# CONFIG_OWL_PM_DOMAINS is not set - -# -# Amlogic SoC drivers -# -# CONFIG_MESON_CANVAS is not set -# CONFIG_MESON_CLK_MEASURE is not set -# CONFIG_MESON_GX_SOCINFO is not set -# CONFIG_MESON_GX_PM_DOMAINS is not set -# CONFIG_MESON_EE_PM_DOMAINS is not set -# CONFIG_MESON_MX_SOCINFO is not set -# end of Amlogic SoC drivers - -# -# Apple SoC drivers -# -# CONFIG_APPLE_PMGR_PWRSTATE is not set -# CONFIG_APPLE_RTKIT is not set -# CONFIG_APPLE_SART is not set -# end of Apple SoC drivers - -# -# ASPEED SoC drivers -# -# CONFIG_ASPEED_LPC_CTRL is not set -# CONFIG_ASPEED_LPC_SNOOP is not set -# CONFIG_ASPEED_UART_ROUTING is not set -# CONFIG_ASPEED_P2A_CTRL is not set -# CONFIG_ASPEED_SOCINFO is not set -# end of ASPEED SoC drivers - -# CONFIG_AT91_SOC_ID is not set -# CONFIG_AT91_SOC_SFR is not set - -# -# Broadcom SoC drivers -# -# CONFIG_BCM2835_POWER is not set -# CONFIG_SOC_BCM63XX is not set -# CONFIG_SOC_BRCMSTB is not set -# CONFIG_BCM_PMB is not set -# end of Broadcom SoC drivers - -# -# NXP/Freescale QorIQ SoC drivers -# -# CONFIG_QUICC_ENGINE is not set -CONFIG_DPAA2_CONSOLE=y -# end of NXP/Freescale QorIQ SoC drivers - -# -# fujitsu SoC drivers -# -# end of fujitsu SoC drivers - -# -# Hisilicon SoC drivers -# -# end of Hisilicon SoC drivers - -# -# i.MX SoC drivers -# -# CONFIG_IMX_GPCV2_PM_DOMAINS is not set -# CONFIG_SOC_IMX8M is not set -# CONFIG_SOC_IMX9 is not set -# end of i.MX SoC drivers - -# -# IXP4xx SoC drivers -# -# CONFIG_IXP4XX_QMGR is not set -# CONFIG_IXP4XX_NPE is not set -# end of IXP4xx SoC drivers - -# -# Enable LiteX SoC Builder specific drivers -# -# CONFIG_LITEX_SOC_CONTROLLER is not set -# end of Enable LiteX SoC Builder specific drivers - -# CONFIG_LOONGSON2_GUTS is not set - -# -# MediaTek SoC drivers -# -# CONFIG_MTK_CMDQ is not set -# CONFIG_MTK_DEVAPC is not set -# CONFIG_MTK_INFRACFG is not set -# CONFIG_MTK_PMIC_WRAP is not set -# CONFIG_MTK_REGULATOR_COUPLER is not set -# CONFIG_MTK_SCPSYS is not set -# CONFIG_MTK_SCPSYS_PM_DOMAINS is not set -# CONFIG_MTK_MMSYS is not set -# end of MediaTek SoC drivers - -# CONFIG_WPCM450_SOC is not set - -# -# Qualcomm SoC drivers -# -# CONFIG_QCOM_AOSS_QMP is not set -# CONFIG_QCOM_COMMAND_DB is not set -# CONFIG_QCOM_GENI_SE is not set -# CONFIG_QCOM_GSBI is not set -# CONFIG_QCOM_LLCC is not set -# CONFIG_QCOM_RAMP_CTRL is not set -# CONFIG_QCOM_RPM_MASTER_STATS is not set -# CONFIG_QCOM_RPMH is not set -# CONFIG_QCOM_SMD_RPM is not set -# CONFIG_QCOM_SPM is not set -# CONFIG_QCOM_WCNSS_CTRL is not set -# CONFIG_QCOM_APR is not set -# CONFIG_QCOM_ICC_BWMON is not set -# end of Qualcomm SoC drivers - -# CONFIG_SOC_RENESAS is not set -# CONFIG_ROCKCHIP_GRF is not set -# CONFIG_ROCKCHIP_IODOMAIN is not set -# CONFIG_ROCKCHIP_PM_DOMAINS is not set -# CONFIG_SOC_SAMSUNG is not set -CONFIG_SIFIVE_CCACHE=y -# CONFIG_SUN20I_PPU is not set -# CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER is not set -# CONFIG_SOC_TEGRA30_VOLTAGE_COUPLER is not set -# CONFIG_SOC_TI is not set -# CONFIG_UX500_SOC_ID is not set - -# -# Xilinx SoC drivers -# -# end of Xilinx SoC drivers -# end of SOC (System On Chip) specific Drivers - -# -# PM Domains -# -CONFIG_JH71XX_PMU=y -# end of PM Domains - -CONFIG_PM_DEVFREQ=y - -# -# DEVFREQ Governors -# -# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set -# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set -# CONFIG_DEVFREQ_GOV_POWERSAVE is not set -# CONFIG_DEVFREQ_GOV_USERSPACE is not set -# CONFIG_DEVFREQ_GOV_PASSIVE is not set - -# -# DEVFREQ Drivers -# -# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set -# CONFIG_ARM_IMX_BUS_DEVFREQ is not set -# CONFIG_ARM_TEGRA_DEVFREQ is not set -# CONFIG_ARM_MEDIATEK_CCI_DEVFREQ is not set -# CONFIG_ARM_SUN8I_A33_MBUS_DEVFREQ is not set -# CONFIG_PM_DEVFREQ_EVENT is not set -# CONFIG_EXTCON is not set -# CONFIG_MEMORY is not set -CONFIG_IIO=y -# CONFIG_IIO_BUFFER is not set -# CONFIG_IIO_CONFIGFS is not set -# CONFIG_IIO_TRIGGER is not set -# CONFIG_IIO_SW_DEVICE is not set -# CONFIG_IIO_SW_TRIGGER is not set -# CONFIG_IIO_TRIGGERED_EVENT is not set - -# -# Accelerometers -# -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADXL313_I2C is not set -# CONFIG_ADXL313_SPI is not set -# CONFIG_ADXL345_I2C is not set -# CONFIG_ADXL345_SPI is not set -# CONFIG_ADXL355_I2C is not set -# CONFIG_ADXL355_SPI is not set -# CONFIG_ADXL367_SPI is not set -# CONFIG_ADXL367_I2C is not set -# CONFIG_ADXL372_SPI is not set -# CONFIG_ADXL372_I2C is not set -# CONFIG_BMA180 is not set -# CONFIG_BMA220 is not set -# CONFIG_BMA400 is not set -# CONFIG_BMC150_ACCEL is not set -# CONFIG_BMI088_ACCEL is not set -# CONFIG_DA280 is not set -# CONFIG_DA311 is not set -# CONFIG_DMARD06 is not set -# CONFIG_DMARD09 is not set -# CONFIG_DMARD10 is not set -# CONFIG_FXLS8962AF_I2C is not set -# CONFIG_FXLS8962AF_SPI is not set -CONFIG_IIO_ST_ACCEL_3AXIS=y -CONFIG_IIO_ST_ACCEL_I2C_3AXIS=y -CONFIG_IIO_ST_ACCEL_SPI_3AXIS=y -# CONFIG_IIO_KX022A_SPI is not set -# CONFIG_IIO_KX022A_I2C is not set -# CONFIG_KXSD9 is not set -# CONFIG_KXCJK1013 is not set -# CONFIG_MC3230 is not set -# CONFIG_MMA7455_I2C is not set -# CONFIG_MMA7455_SPI is not set -# CONFIG_MMA7660 is not set -# CONFIG_MMA8452 is not set -# CONFIG_MMA9551 is not set -# CONFIG_MMA9553 is not set -# CONFIG_MSA311 is not set -# CONFIG_MXC4005 is not set -# CONFIG_MXC6255 is not set -# CONFIG_SCA3000 is not set -# CONFIG_SCA3300 is not set -# CONFIG_STK8312 is not set -# CONFIG_STK8BA50 is not set -# end of Accelerometers - -# -# Analog to digital converters -# -# CONFIG_AD4130 is not set -# CONFIG_AD7091R5 is not set -# CONFIG_AD7124 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7266 is not set -# CONFIG_AD7280 is not set -# CONFIG_AD7291 is not set -# CONFIG_AD7292 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_AD7780 is not set -# CONFIG_AD7791 is not set -# CONFIG_AD7793 is not set -# CONFIG_AD7887 is not set -# CONFIG_AD7923 is not set -# CONFIG_AD7949 is not set -# CONFIG_AD799X is not set -# CONFIG_ADI_AXI_ADC is not set -# CONFIG_ASPEED_ADC is not set -# CONFIG_AT91_ADC is not set -# CONFIG_AT91_SAMA5D2_ADC is not set -# CONFIG_AXP20X_ADC is not set -# CONFIG_AXP288_ADC is not set -# CONFIG_BCM_IPROC_ADC is not set -# CONFIG_BERLIN2_ADC is not set -# CONFIG_CC10001_ADC is not set -# CONFIG_ENVELOPE_DETECTOR is not set -# CONFIG_EP93XX_ADC is not set -# CONFIG_EXYNOS_ADC is not set -# CONFIG_HI8435 is not set -# CONFIG_HX711 is not set -# CONFIG_INA2XX_ADC is not set -# CONFIG_INGENIC_ADC is not set -# CONFIG_IMX7D_ADC is not set -# CONFIG_IMX8QXP_ADC is not set -# CONFIG_IMX93_ADC is not set -# CONFIG_LPC18XX_ADC is not set -# CONFIG_LPC32XX_ADC is not set -# CONFIG_LTC2471 is not set -# CONFIG_LTC2485 is not set -# CONFIG_LTC2496 is not set -# CONFIG_LTC2497 is not set -# CONFIG_MAX1027 is not set -# CONFIG_MAX11100 is not set -# CONFIG_MAX1118 is not set -# CONFIG_MAX11205 is not set -# CONFIG_MAX11410 is not set -# CONFIG_MAX1241 is not set -# CONFIG_MAX1363 is not set -# CONFIG_MAX9611 is not set -# CONFIG_MCP320X is not set -# CONFIG_MCP3422 is not set -# CONFIG_MCP3911 is not set -# CONFIG_MEDIATEK_MT6577_AUXADC is not set -# CONFIG_MESON_SARADC is not set -# CONFIG_NAU7802 is not set -# CONFIG_NPCM_ADC is not set -# CONFIG_RCAR_GYRO_ADC is not set -# CONFIG_ROCKCHIP_SARADC is not set -# CONFIG_RICHTEK_RTQ6056 is not set -# CONFIG_RZG2L_ADC is not set -# CONFIG_SC27XX_ADC is not set -# CONFIG_SPEAR_ADC is not set -# CONFIG_SD_ADC_MODULATOR is not set -# CONFIG_STM32_ADC_CORE is not set -# CONFIG_STM32_DFSDM_CORE is not set -# CONFIG_STM32_DFSDM_ADC is not set -# CONFIG_SUN20I_GPADC is not set -# CONFIG_TI_ADC081C is not set -# CONFIG_TI_ADC0832 is not set -# CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC12138 is not set -# CONFIG_TI_ADC108S102 is not set -# CONFIG_TI_ADC128S052 is not set -# CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set -# CONFIG_TI_ADS7924 is not set -# CONFIG_TI_ADS1100 is not set -# CONFIG_TI_ADS7950 is not set -# CONFIG_TI_ADS8344 is not set -# CONFIG_TI_ADS8688 is not set -# CONFIG_TI_ADS124S08 is not set -# CONFIG_TI_ADS131E08 is not set -# CONFIG_TI_LMP92064 is not set -# CONFIG_TI_TLC4541 is not set -# CONFIG_TI_TSC2046 is not set -# CONFIG_VF610_ADC is not set -# CONFIG_XILINX_XADC is not set -# CONFIG_XILINX_AMS is not set -# end of Analog to digital converters - -# -# Analog to digital and digital to analog converters -# -# CONFIG_AD74115 is not set -# CONFIG_AD74413R is not set -# end of Analog to digital and digital to analog converters - -# -# Analog Front Ends -# -# CONFIG_IIO_RESCALE is not set -# end of Analog Front Ends - -# -# Amplifiers -# -# CONFIG_AD8366 is not set -# CONFIG_ADA4250 is not set -# CONFIG_HMC425 is not set -# end of Amplifiers - -# -# Capacitance to digital converters -# -# CONFIG_AD7150 is not set -# CONFIG_AD7746 is not set -# end of Capacitance to digital converters - -# -# Chemical Sensors -# -# CONFIG_ATLAS_PH_SENSOR is not set -# CONFIG_ATLAS_EZO_SENSOR is not set -# CONFIG_BME680 is not set -# CONFIG_CCS811 is not set -# CONFIG_IAQCORE is not set -# CONFIG_SCD30_CORE is not set -# CONFIG_SCD4X is not set -# CONFIG_SENSIRION_SGP30 is not set -# CONFIG_SENSIRION_SGP40 is not set -# CONFIG_SPS30_I2C is not set -# CONFIG_SENSEAIR_SUNRISE_CO2 is not set -# CONFIG_VZ89X is not set -# end of Chemical Sensors - -# -# Hid Sensor IIO Common -# -# end of Hid Sensor IIO Common - -# -# IIO SCMI Sensors -# -# end of IIO SCMI Sensors - -# -# SSP Sensor Common -# -# CONFIG_IIO_SSP_SENSORHUB is not set -# end of SSP Sensor Common - -CONFIG_IIO_ST_SENSORS_I2C=y -CONFIG_IIO_ST_SENSORS_SPI=y -CONFIG_IIO_ST_SENSORS_CORE=y - -# -# Digital to analog converters -# -# CONFIG_AD3552R is not set -# CONFIG_AD5064 is not set -# CONFIG_AD5360 is not set -# CONFIG_AD5380 is not set -# CONFIG_AD5421 is not set -# CONFIG_AD5446 is not set -# CONFIG_AD5449 is not set -# CONFIG_AD5592R is not set -# CONFIG_AD5593R is not set -# CONFIG_AD5504 is not set -# CONFIG_AD5624R_SPI is not set -# CONFIG_LTC2688 is not set -# CONFIG_AD5686_SPI is not set -# CONFIG_AD5696_I2C is not set -# CONFIG_AD5755 is not set -# CONFIG_AD5758 is not set -# CONFIG_AD5761 is not set -# CONFIG_AD5764 is not set -# CONFIG_AD5766 is not set -# CONFIG_AD5770R is not set -# CONFIG_AD5791 is not set -# CONFIG_AD7293 is not set -# CONFIG_AD7303 is not set -# CONFIG_AD8801 is not set -# CONFIG_DPOT_DAC is not set -# CONFIG_DS4424 is not set -# CONFIG_LPC18XX_DAC is not set -# CONFIG_LTC1660 is not set -# CONFIG_LTC2632 is not set -# CONFIG_M62332 is not set -# CONFIG_MAX517 is not set -# CONFIG_MAX5522 is not set -# CONFIG_MAX5821 is not set -# CONFIG_MCP4725 is not set -# CONFIG_MCP4728 is not set -# CONFIG_MCP4922 is not set -# CONFIG_STM32_DAC is not set -# 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 -# end of Digital to analog converters - -# -# IIO dummy driver -# -# end of IIO dummy driver - -# -# Filters -# -# CONFIG_ADMV8818 is not set -# end of Filters - -# -# Frequency Synthesizers DDS/PLL -# - -# -# Clock Generator/Distribution -# -# CONFIG_AD9523 is not set -# end of Clock Generator/Distribution - -# -# Phase-Locked Loop (PLL) frequency synthesizers -# -# CONFIG_ADF4350 is not set -# CONFIG_ADF4371 is not set -# CONFIG_ADF4377 is not set -# CONFIG_ADMV1013 is not set -# CONFIG_ADMV1014 is not set -# CONFIG_ADMV4420 is not set -# CONFIG_ADRF6780 is not set -# end of Phase-Locked Loop (PLL) frequency synthesizers -# end of Frequency Synthesizers DDS/PLL - -# -# Digital gyroscope sensors -# -# CONFIG_ADIS16080 is not set -# CONFIG_ADIS16130 is not set -# CONFIG_ADIS16136 is not set -# CONFIG_ADIS16260 is not set -# CONFIG_ADXRS290 is not set -# CONFIG_ADXRS450 is not set -# CONFIG_BMG160 is not set -# CONFIG_FXAS21002C is not set -# CONFIG_MPU3050_I2C is not set -# CONFIG_IIO_ST_GYRO_3AXIS is not set -# CONFIG_ITG3200 is not set -# end of Digital gyroscope sensors - -# -# Health Sensors -# - -# -# Heart Rate Monitors -# -# CONFIG_AFE4403 is not set -# CONFIG_AFE4404 is not set -# CONFIG_MAX30100 is not set -# CONFIG_MAX30102 is not set -# end of Heart Rate Monitors -# end of Health Sensors - -# -# Humidity sensors -# -# CONFIG_AM2315 is not set -# CONFIG_DHT11 is not set -# CONFIG_HDC100X is not set -# CONFIG_HDC2010 is not set -# CONFIG_HTS221 is not set -# CONFIG_HTU21 is not set -# CONFIG_SI7005 is not set -# CONFIG_SI7020 is not set -# end of Humidity sensors - -# -# Inertial measurement units -# -# CONFIG_ADIS16400 is not set -# CONFIG_ADIS16460 is not set -# CONFIG_ADIS16475 is not set -# CONFIG_ADIS16480 is not set -# CONFIG_BMI160_I2C is not set -# CONFIG_BMI160_SPI is not set -# CONFIG_BOSCH_BNO055_I2C is not set -# CONFIG_FXOS8700_I2C is not set -# CONFIG_FXOS8700_SPI is not set -# CONFIG_KMX61 is not set -# CONFIG_INV_ICM42600_I2C is not set -# CONFIG_INV_ICM42600_SPI is not set -# CONFIG_INV_MPU6050_I2C is not set -# CONFIG_INV_MPU6050_SPI is not set -# CONFIG_IIO_ST_LSM6DSX is not set -# CONFIG_IIO_ST_LSM9DS0 is not set -# end of Inertial measurement units - -# -# Light sensors -# -# CONFIG_ADJD_S311 is not set -# CONFIG_ADUX1020 is not set -# CONFIG_AL3010 is not set -# CONFIG_AL3320A is not set -# CONFIG_APDS9300 is not set -# CONFIG_APDS9960 is not set -# CONFIG_AS73211 is not set -# CONFIG_BH1750 is not set -# CONFIG_BH1780 is not set -# CONFIG_CM32181 is not set -# CONFIG_CM3232 is not set -# CONFIG_CM3323 is not set -# CONFIG_CM3605 is not set -# CONFIG_CM36651 is not set -# CONFIG_GP2AP002 is not set -# CONFIG_GP2AP020A00F is not set -# CONFIG_IQS621_ALS is not set -# CONFIG_SENSORS_ISL29018 is not set -# CONFIG_SENSORS_ISL29028 is not set -# CONFIG_ISL29125 is not set -# CONFIG_JSA1212 is not set -# CONFIG_ROHM_BU27008 is not set -# CONFIG_ROHM_BU27034 is not set -# CONFIG_RPR0521 is not set -# CONFIG_LTR501 is not set -# CONFIG_LTRF216A is not set -# CONFIG_LV0104CS is not set -# CONFIG_MAX44000 is not set -# CONFIG_MAX44009 is not set -# CONFIG_NOA1305 is not set -# CONFIG_OPT3001 is not set -# CONFIG_OPT4001 is not set -# CONFIG_PA12203001 is not set -# CONFIG_SI1133 is not set -# CONFIG_SI1145 is not set -# CONFIG_STK3310 is not set -# CONFIG_ST_UVIS25 is not set -# CONFIG_TCS3414 is not set -# CONFIG_TCS3472 is not set -# CONFIG_SENSORS_TSL2563 is not set -# CONFIG_TSL2583 is not set -# CONFIG_TSL2591 is not set -# CONFIG_TSL2772 is not set -# CONFIG_TSL4531 is not set -# CONFIG_US5182D is not set -# CONFIG_VCNL4000 is not set -# CONFIG_VCNL4035 is not set -# CONFIG_VEML6030 is not set -# CONFIG_VEML6070 is not set -# CONFIG_VL6180 is not set -# CONFIG_ZOPT2201 is not set -# end of Light sensors - -# -# Magnetometer sensors -# -# CONFIG_AK8974 is not set -# CONFIG_AK8975 is not set -# CONFIG_AK09911 is not set -# CONFIG_BMC150_MAGN_I2C is not set -# CONFIG_BMC150_MAGN_SPI is not set -# CONFIG_MAG3110 is not set -# CONFIG_MMC35240 is not set -# CONFIG_IIO_ST_MAGN_3AXIS is not set -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843_SPI is not set -# CONFIG_SENSORS_RM3100_I2C is not set -# CONFIG_SENSORS_RM3100_SPI is not set -# CONFIG_TI_TMAG5273 is not set -# CONFIG_YAMAHA_YAS530 is not set -# end of Magnetometer sensors - -# -# Multiplexers -# -# CONFIG_IIO_MUX is not set -# end of Multiplexers - -# -# Inclinometer sensors -# -# end of Inclinometer sensors - -# -# Linear and angular position sensors -# -# CONFIG_IQS624_POS is not set -# end of Linear and angular position sensors - -# -# Digital potentiometers -# -# CONFIG_AD5110 is not set -# CONFIG_AD5272 is not set -# CONFIG_DS1803 is not set -# CONFIG_MAX5432 is not set -# CONFIG_MAX5481 is not set -# CONFIG_MAX5487 is not set -# CONFIG_MCP4018 is not set -# CONFIG_MCP4131 is not set -# CONFIG_MCP4531 is not set -# CONFIG_MCP41010 is not set -# CONFIG_TPL0102 is not set -# CONFIG_X9250 is not set -# end of Digital potentiometers - -# -# Digital potentiostats -# -# CONFIG_LMP91000 is not set -# end of Digital potentiostats - -# -# Pressure sensors -# -# CONFIG_ABP060MG is not set -# CONFIG_BMP280 is not set -# CONFIG_DLHL60D is not set -# CONFIG_DPS310 is not set -# CONFIG_HP03 is not set -# CONFIG_ICP10100 is not set -# CONFIG_MPL115_I2C is not set -# CONFIG_MPL115_SPI is not set -# CONFIG_MPL3115 is not set -# CONFIG_MPRLS0025PA is not set -# CONFIG_MS5611 is not set -# CONFIG_MS5637 is not set -# CONFIG_IIO_ST_PRESS is not set -# CONFIG_T5403 is not set -# CONFIG_HP206C is not set -# CONFIG_ZPA2326 is not set -# end of Pressure sensors - -# -# Lightning sensors -# -# CONFIG_AS3935 is not set -# end of Lightning sensors - -# -# Proximity and distance sensors -# -# CONFIG_IRSD200 is not set -# CONFIG_ISL29501 is not set -# CONFIG_LIDAR_LITE_V2 is not set -# CONFIG_MB1232 is not set -# CONFIG_PING is not set -# CONFIG_RFD77402 is not set -# CONFIG_SRF04 is not set -# CONFIG_SX9310 is not set -# CONFIG_SX9324 is not set -# CONFIG_SX9360 is not set -# CONFIG_SX9500 is not set -# CONFIG_SRF08 is not set -# CONFIG_VCNL3020 is not set -# CONFIG_VL53L0X_I2C is not set -# end of Proximity and distance sensors - -# -# Resolver to digital converters -# -# CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set -# end of Resolver to digital converters - -# -# Temperature sensors -# -# CONFIG_IQS620AT_TEMP is not set -# CONFIG_LTC2983 is not set -# CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_MLX90614 is not set -# CONFIG_MLX90632 is not set -# CONFIG_TMP006 is not set -# CONFIG_TMP007 is not set -# CONFIG_TMP117 is not set -# CONFIG_TSYS01 is not set -# CONFIG_TSYS02D is not set -# CONFIG_MAX30208 is not set -# CONFIG_MAX31856 is not set -# CONFIG_MAX31865 is not set -# end of Temperature sensors - -# CONFIG_NTB is not set -CONFIG_PWM=y -CONFIG_PWM_SYSFS=y -# CONFIG_PWM_DEBUG is not set -# CONFIG_PWM_APPLE is not set -# CONFIG_PWM_ATMEL is not set -# CONFIG_PWM_ATMEL_TCB is not set -# CONFIG_PWM_BCM_IPROC is not set -# CONFIG_PWM_BCM_KONA is not set -# CONFIG_PWM_BCM2835 is not set -# CONFIG_PWM_BERLIN is not set -# CONFIG_PWM_BRCMSTB is not set -# CONFIG_PWM_CLK is not set -# CONFIG_PWM_CLPS711X is not set -# CONFIG_PWM_DWC is not set -# CONFIG_PWM_EP93XX is not set -# CONFIG_PWM_FSL_FTM is not set -# CONFIG_PWM_HIBVT is not set -# CONFIG_PWM_IMG is not set -# CONFIG_PWM_IMX1 is not set -# CONFIG_PWM_IMX27 is not set -# CONFIG_PWM_IMX_TPM is not set -# CONFIG_PWM_INTEL_LGM is not set -# CONFIG_PWM_IQS620A is not set -# CONFIG_PWM_JZ4740 is not set -# CONFIG_PWM_KEEMBAY is not set -# CONFIG_PWM_LPC18XX_SCT is not set -# CONFIG_PWM_LPC32XX is not set -# CONFIG_PWM_LPSS_PCI is not set -# CONFIG_PWM_LPSS_PLATFORM is not set -# CONFIG_PWM_MESON is not set -# CONFIG_PWM_MTK_DISP is not set -# CONFIG_PWM_MEDIATEK is not set -# CONFIG_PWM_MICROCHIP_CORE is not set -# CONFIG_PWM_MXS is not set -CONFIG_PWM_OCORES=y -# CONFIG_PWM_OMAP_DMTIMER is not set -# CONFIG_PWM_PCA9685 is not set -# CONFIG_PWM_PXA is not set -# CONFIG_PWM_RASPBERRYPI_POE is not set -# CONFIG_PWM_RCAR is not set -# CONFIG_PWM_RENESAS_TPU is not set -# CONFIG_PWM_ROCKCHIP is not set -# CONFIG_PWM_SAMSUNG is not set -# CONFIG_PWM_SIFIVE is not set -# CONFIG_PWM_SL28CPLD is not set -# CONFIG_PWM_SPEAR is not set -# CONFIG_PWM_SPRD is not set -# CONFIG_PWM_STI is not set -# CONFIG_PWM_STM32 is not set -# CONFIG_PWM_STM32_LP is not set -# CONFIG_PWM_SUN4I is not set -# CONFIG_PWM_SUNPLUS is not set -# CONFIG_PWM_TEGRA is not set -# CONFIG_PWM_TIECAP is not set -# CONFIG_PWM_TIEHRPWM is not set -# CONFIG_PWM_VISCONTI is not set -# CONFIG_PWM_VT8500 is not set -# CONFIG_PWM_XILINX is not set - -# -# IRQ chip support -# -CONFIG_IRQCHIP=y -# CONFIG_AL_FIC is not set -# CONFIG_JCORE_AIC is not set -# CONFIG_RENESAS_INTC_IRQPIN is not set -# CONFIG_RENESAS_IRQC is not set -# CONFIG_RENESAS_RZA1_IRQC is not set -# CONFIG_RENESAS_RZG2L_IRQC is not set -# CONFIG_SL28CPLD_INTC is not set -# CONFIG_TS4800_IRQ is not set -# CONFIG_XILINX_INTC is not set -# CONFIG_INGENIC_TCU_IRQ is not set -# CONFIG_IRQ_UNIPHIER_AIDET is not set -# CONFIG_MESON_IRQ_GPIO is not set -# CONFIG_IMX_IRQSTEER is not set -# CONFIG_IMX_INTMUX is not set -# CONFIG_IMX_MU_MSI is not set -CONFIG_RISCV_INTC=y -CONFIG_SIFIVE_PLIC=y -# CONFIG_EXYNOS_IRQ_COMBINER is not set -# CONFIG_MST_IRQ is not set -# CONFIG_MCHP_EIC is not set -# CONFIG_SUNPLUS_SP7021_INTC is not set -# end of IRQ chip support - -# CONFIG_IPACK_BUS is not set -CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_A10SR is not set -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_AXS10X is not set -# CONFIG_RESET_BCM6345 is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_BRCMSTB is not set -# CONFIG_RESET_BRCMSTB_RESCAL is not set -# CONFIG_RESET_HSDK is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_INTEL_GW is not set -# CONFIG_RESET_K210 is not set -# CONFIG_RESET_LANTIQ is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MCHP_SPARX5 is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_MESON_AUDIO_ARB is not set -# CONFIG_RESET_NPCM is not set -# CONFIG_RESET_NUVOTON_MA35D1 is not set -# CONFIG_RESET_PISTACHIO is not set -# CONFIG_RESET_QCOM_AOSS is not set -# CONFIG_RESET_QCOM_PDC is not set -CONFIG_RESET_RASPBERRYPI=y -# CONFIG_RESET_RZG2L_USBPHY_CTRL is not set -# CONFIG_RESET_SCMI is not set -# CONFIG_RESET_SIMPLE is not set -# CONFIG_RESET_SOCFPGA is not set -# CONFIG_RESET_SUNPLUS is not set -# CONFIG_RESET_SUNXI is not set -# CONFIG_RESET_TI_SCI is not set -# CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RESET_TI_TPS380X is not set -# CONFIG_RESET_TN48M_CPLD is not set -# CONFIG_RESET_UNIPHIER is not set -# CONFIG_RESET_UNIPHIER_GLUE is not set -# CONFIG_RESET_ZYNQ is not set -CONFIG_RESET_STARFIVE_JH71X0=y -CONFIG_RESET_STARFIVE_JH7100=y -CONFIG_RESET_STARFIVE_JH7110=y -# CONFIG_COMMON_RESET_HI3660 is not set -# CONFIG_COMMON_RESET_HI6220 is not set - -# -# PHY Subsystem -# -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PHY_MIPI_DPHY=y -# CONFIG_PHY_LPC18XX_USB_OTG is not set -# CONFIG_PHY_PISTACHIO_USB is not set -# CONFIG_PHY_XGENE is not set -# CONFIG_USB_LGM_PHY is not set -# CONFIG_PHY_CAN_TRANSCEIVER is not set -# CONFIG_PHY_SUN6I_MIPI_DPHY is not set -# CONFIG_PHY_SUN9I_USB is not set -# CONFIG_PHY_SUN50I_USB3 is not set -# CONFIG_PHY_MESON8_HDMI_TX is not set -# CONFIG_PHY_MESON8B_USB2 is not set -# CONFIG_PHY_MESON_GXL_USB2 is not set -# CONFIG_PHY_MESON_G12A_MIPI_DPHY_ANALOG is not set -# CONFIG_PHY_MESON_G12A_USB2 is not set -# CONFIG_PHY_MESON_G12A_USB3_PCIE is not set -# CONFIG_PHY_MESON_AXG_PCIE is not set -# CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG is not set -# CONFIG_PHY_MESON_AXG_MIPI_DPHY is not set - -# -# PHY drivers for Broadcom platforms -# -# CONFIG_PHY_BCM63XX_USBH is not set -# CONFIG_PHY_CYGNUS_PCIE is not set -# CONFIG_PHY_BCM_SR_USB is not set -# CONFIG_BCM_KONA_USB2_PHY is not set -# CONFIG_PHY_BCM_NS_USB2 is not set -# CONFIG_PHY_BCM_NS_USB3 is not set -# CONFIG_PHY_NS2_PCIE is not set -# CONFIG_PHY_NS2_USB_DRD is not set -# CONFIG_PHY_BRCM_SATA is not set -# CONFIG_PHY_BRCM_USB is not set -# CONFIG_PHY_BCM_SR_PCIE is not set -# end of PHY drivers for Broadcom platforms - -# CONFIG_PHY_CADENCE_TORRENT is not set -# CONFIG_PHY_CADENCE_DPHY is not set -# CONFIG_PHY_CADENCE_DPHY_RX is not set -# CONFIG_PHY_CADENCE_SIERRA is not set -# CONFIG_PHY_CADENCE_SALVO is not set -# CONFIG_PHY_FSL_IMX8MQ_USB is not set -# CONFIG_PHY_MIXEL_LVDS_PHY is not set -# CONFIG_PHY_MIXEL_MIPI_DPHY is not set -# CONFIG_PHY_FSL_IMX8M_PCIE is not set -# CONFIG_PHY_FSL_LYNX_28G is not set -# CONFIG_PHY_HI6220_USB is not set -# CONFIG_PHY_HI3660_USB is not set -# CONFIG_PHY_HI3670_USB is not set -# CONFIG_PHY_HI3670_PCIE is not set -# CONFIG_PHY_HISTB_COMBPHY is not set -# CONFIG_PHY_HISI_INNO_USB2 is not set -# CONFIG_PHY_INGENIC_USB is not set -# CONFIG_PHY_LANTIQ_VRX200_PCIE is not set -# CONFIG_PHY_LANTIQ_RCU_USB2 is not set -# CONFIG_ARMADA375_USBCLUSTER_PHY is not set -# CONFIG_PHY_BERLIN_SATA is not set -# CONFIG_PHY_BERLIN_USB is not set -CONFIG_PHY_MVEBU_A3700_UTMI=y -# CONFIG_PHY_MVEBU_A38X_COMPHY is not set -# CONFIG_PHY_MVEBU_CP110_UTMI is not set -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_PXA_USB is not set -# CONFIG_PHY_MMP3_USB is not set -# CONFIG_PHY_MMP3_HSIC is not set -# CONFIG_PHY_MTK_PCIE is not set -# CONFIG_PHY_MTK_TPHY is not set -# CONFIG_PHY_MTK_UFS is not set -# CONFIG_PHY_MTK_XSPHY is not set -# CONFIG_PHY_MTK_HDMI is not set -# CONFIG_PHY_MTK_MIPI_DSI is not set -# CONFIG_PHY_MTK_DP is not set -# CONFIG_PHY_SPARX5_SERDES is not set -# CONFIG_PHY_LAN966X_SERDES is not set -# CONFIG_PHY_CPCAP_USB is not set -# CONFIG_PHY_MAPPHONE_MDM6600 is not set -# CONFIG_PHY_OCELOT_SERDES is not set -# CONFIG_PHY_ATH79_USB is not set -# CONFIG_PHY_QCOM_EDP is not set -# CONFIG_PHY_QCOM_IPQ4019_USB is not set -# CONFIG_PHY_QCOM_PCIE2 is not set -# CONFIG_PHY_QCOM_QMP is not set -# CONFIG_PHY_QCOM_QUSB2 is not set -# CONFIG_PHY_QCOM_SNPS_EUSB2 is not set -# CONFIG_PHY_QCOM_EUSB2_REPEATER is not set -# CONFIG_PHY_QCOM_M31_USB is not set -# CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set -# CONFIG_PHY_QCOM_USB_HS_28NM is not set -# CONFIG_PHY_QCOM_USB_SS is not set -# CONFIG_PHY_QCOM_IPQ806X_USB is not set -# CONFIG_PHY_QCOM_SGMII_ETH is not set -# CONFIG_PHY_MT7621_PCI is not set -# CONFIG_PHY_RALINK_USB is not set -# CONFIG_PHY_R8A779F0_ETHERNET_SERDES is not set -# CONFIG_PHY_RCAR_GEN3_USB3 is not set -# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set -# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set -# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_PCIE is not set -# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set -# CONFIG_PHY_ROCKCHIP_TYPEC is not set -# CONFIG_PHY_EXYNOS_DP_VIDEO is not set -# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set -# CONFIG_PHY_EXYNOS_PCIE is not set -# CONFIG_PHY_SAMSUNG_UFS is not set -# CONFIG_PHY_SAMSUNG_USB2 is not set -# CONFIG_PHY_UNIPHIER_USB2 is not set -# CONFIG_PHY_UNIPHIER_USB3 is not set -# CONFIG_PHY_UNIPHIER_PCIE is not set -# CONFIG_PHY_UNIPHIER_AHCI is not set -# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set -# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set -# CONFIG_PHY_STIH407_USB is not set -# CONFIG_PHY_STM32_USBPHYC is not set -# CONFIG_PHY_STARFIVE_JH7110_DPHY_RX is not set -CONFIG_PHY_STARFIVE_JH7110_PCIE=y -CONFIG_PHY_STARFIVE_JH7110_USB=y -# CONFIG_PHY_SUNPLUS_USB is not set -# CONFIG_PHY_TEGRA194_P2U is not set -# CONFIG_PHY_DA8XX_USB is not set -# CONFIG_PHY_DM816X_USB is not set -# CONFIG_PHY_AM654_SERDES is not set -# CONFIG_PHY_J721E_WIZ is not set -# CONFIG_OMAP_CONTROL_PHY is not set -# CONFIG_TI_PIPE3 is not set -# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set -# CONFIG_PHY_INTEL_KEEMBAY_USB is not set -# CONFIG_PHY_INTEL_LGM_COMBO is not set -# CONFIG_PHY_INTEL_LGM_EMMC is not set -# CONFIG_PHY_XILINX_ZYNQMP is not set -CONFIG_PHY_M31_DPHY_RX0=y -# end of PHY Subsystem - -# CONFIG_POWERCAP is not set -# CONFIG_MCB is not set - -# -# Performance monitor support -# -# CONFIG_ARM_CCN is not set -# CONFIG_ARM_CMN is not set -CONFIG_RISCV_PMU=y -CONFIG_RISCV_PMU_LEGACY=y -CONFIG_RISCV_PMU_SBI=y -# CONFIG_ARM_SMMU_V3_PMU is not set -# CONFIG_FSL_IMX8_DDR_PMU is not set -# CONFIG_XGENE_PMU is not set -# CONFIG_ARM_DMC620_PMU is not set -# CONFIG_MARVELL_CN10K_TAD_PMU is not set -# CONFIG_ALIBABA_UNCORE_DRW_PMU is not set -# CONFIG_HNS3_PMU is not set -# CONFIG_MARVELL_CN10K_DDR_PMU is not set -# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set -# CONFIG_MESON_DDR_PMU is not set -CONFIG_SIFIVE_U74_L2_PMU=y -# end of Performance monitor support - -CONFIG_RAS=y -# CONFIG_USB4 is not set - -# -# Android -# -# CONFIG_ANDROID_BINDER_IPC is not set -# end of Android - -# CONFIG_LIBNVDIMM is not set -# CONFIG_DAX is not set -CONFIG_NVMEM=y -CONFIG_NVMEM_SYSFS=y - -# -# Layout Types -# -# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set -# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set -# end of Layout Types - -# CONFIG_NVMEM_APPLE_EFUSES is not set -# CONFIG_NVMEM_BCM_OCOTP is not set -# CONFIG_NVMEM_BRCM_NVRAM is not set -# CONFIG_NVMEM_IMX_IIM is not set -# CONFIG_NVMEM_IMX_OCOTP is not set -# CONFIG_NVMEM_IMX_OCOTP_ELE is not set -# CONFIG_NVMEM_JZ4780_EFUSE is not set -# CONFIG_NVMEM_LAN9662_OTPC is not set -# CONFIG_NVMEM_LAYERSCAPE_SFP is not set -# CONFIG_NVMEM_LPC18XX_EEPROM is not set -# CONFIG_NVMEM_LPC18XX_OTP is not set -# CONFIG_NVMEM_MESON_MX_EFUSE is not set -# CONFIG_NVMEM_MICROCHIP_OTPC is not set -# CONFIG_NVMEM_MTK_EFUSE is not set -# CONFIG_NVMEM_MXS_OCOTP is not set -# CONFIG_NVMEM_NINTENDO_OTP is not set -# CONFIG_NVMEM_QCOM_QFPROM is not set -# CONFIG_NVMEM_QCOM_SEC_QFPROM is not set -# CONFIG_NVMEM_RMEM is not set -# CONFIG_NVMEM_ROCKCHIP_EFUSE is not set -# CONFIG_NVMEM_ROCKCHIP_OTP is not set -# CONFIG_NVMEM_SC27XX_EFUSE is not set -# CONFIG_NVMEM_SNVS_LPGPR is not set -# CONFIG_NVMEM_SPRD_EFUSE is not set -# CONFIG_NVMEM_STM32_ROMEM is not set -# CONFIG_NVMEM_SUNPLUS_OCOTP is not set -# CONFIG_NVMEM_U_BOOT_ENV is not set -# CONFIG_NVMEM_UNIPHIER_EFUSE is not set -# CONFIG_NVMEM_VF610_OCOTP is not set -# CONFIG_NVMEM_QORIQ_EFUSE is not set - -# -# HW tracing support -# -# CONFIG_STM is not set -# CONFIG_INTEL_TH is not set -# CONFIG_HISI_PTT is not set -# end of HW tracing support - -# CONFIG_FPGA is not set -# CONFIG_FSI is not set -# CONFIG_TEE is not set -CONFIG_PM_OPP=y -# CONFIG_SIOX is not set -# CONFIG_SLIMBUS is not set -# CONFIG_INTERCONNECT is not set -# CONFIG_COUNTER is not set -# CONFIG_MOST is not set -# CONFIG_PECI is not set -# CONFIG_HTE is not set -CONFIG_E24=m -# end of Device Drivers - -# -# File systems -# -# CONFIG_VALIDATE_FS_PARSER is not set -CONFIG_FS_IOMAP=y -CONFIG_BUFFER_HEAD=y -CONFIG_LEGACY_DIRECT_IO=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -CONFIG_EXT4_FS_POSIX_ACL=y -# CONFIG_EXT4_FS_SECURITY is not set -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -CONFIG_BTRFS_FS=m -CONFIG_BTRFS_FS_POSIX_ACL=y -# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_FS_REF_VERIFY is not set -# CONFIG_NILFS2_FS is not set -# CONFIG_F2FS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=y -# CONFIG_EXPORTFS_BLOCK_OPS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FS_ENCRYPTION is not set -# CONFIG_FS_VERITY is not set -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -# CONFIG_QUOTA is not set -CONFIG_AUTOFS_FS=y -CONFIG_FUSE_FS=y -CONFIG_CUSE=y -CONFIG_VIRTIO_FS=y -# CONFIG_OVERLAY_FS is not set - -# -# Caches -# -CONFIG_NETFS_SUPPORT=y -CONFIG_NETFS_STATS=y -CONFIG_FSCACHE=y -CONFIG_FSCACHE_STATS=y -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_CACHEFILES is not set -# end of Caches - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set -# end of CD-ROM/DVD Filesystems - -# -# DOS/FAT/EXFAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_FAT_DEFAULT_UTF8=y -CONFIG_EXFAT_FS=y -CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -CONFIG_NTFS_FS=y -# CONFIG_NTFS_DEBUG is not set -CONFIG_NTFS_RW=y -# CONFIG_NTFS3_FS is not set -# end of DOS/FAT/EXFAT/NT Filesystems - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_CHILDREN=y -CONFIG_KERNFS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -# CONFIG_TMPFS_INODE64 is not set -# CONFIG_TMPFS_QUOTA is not set -CONFIG_ARCH_SUPPORTS_HUGETLBFS=y -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -CONFIG_CONFIGFS_FS=y -CONFIG_EFIVAR_FS=m -# end of Pseudo filesystems - -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ORANGEFS_FS is not set -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -CONFIG_JFFS2_ZLIB=y -CONFIG_JFFS2_RTIME=y -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_PSTORE is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set -# CONFIG_EROFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=y -CONFIG_NFS_V2=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -# CONFIG_NFS_SWAP is not set -CONFIG_NFS_V4_1=y -CONFIG_NFS_V4_2=y -CONFIG_PNFS_FILE_LAYOUT=y -CONFIG_PNFS_BLOCK=m -CONFIG_PNFS_FLEXFILE_LAYOUT=y -CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" -# CONFIG_NFS_V4_1_MIGRATION is not set -CONFIG_ROOT_NFS=y -# CONFIG_NFS_FSCACHE is not set -# CONFIG_NFS_USE_LEGACY_DNS is not set -CONFIG_NFS_USE_KERNEL_DNS=y -CONFIG_NFS_DISABLE_UDP_SUPPORT=y -CONFIG_NFS_V4_2_READ_PLUS=y -# CONFIG_NFSD is not set -CONFIG_GRACE_PERIOD=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_NFS_V4_2_SSC_HELPER=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_SUNRPC_BACKCHANNEL=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_SUNRPC_DEBUG is not set -# CONFIG_CEPH_FS is not set -CONFIG_CIFS=m -# CONFIG_CIFS_STATS2 is not set -CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y -CONFIG_CIFS_UPCALL=y -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG is not set -CONFIG_CIFS_DFS_UPCALL=y -# CONFIG_CIFS_SWN_UPCALL is not set -CONFIG_CIFS_FSCACHE=y -CONFIG_SMB_SERVER=m -CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y -# CONFIG_SMB_SERVER_KERBEROS5 is not set -CONFIG_SMBFS=m -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_MAC_ROMAN is not set -# CONFIG_NLS_MAC_CELTIC is not set -# CONFIG_NLS_MAC_CENTEURO is not set -# CONFIG_NLS_MAC_CROATIAN is not set -# CONFIG_NLS_MAC_CYRILLIC is not set -# CONFIG_NLS_MAC_GAELIC is not set -# CONFIG_NLS_MAC_GREEK is not set -# CONFIG_NLS_MAC_ICELAND is not set -# CONFIG_NLS_MAC_INUIT is not set -# CONFIG_NLS_MAC_ROMANIAN is not set -# CONFIG_NLS_MAC_TURKISH is not set -CONFIG_NLS_UTF8=m -CONFIG_NLS_UCS2_UTILS=m -# CONFIG_DLM is not set -# CONFIG_UNICODE is not set -CONFIG_IO_WQ=y -# end of File systems - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_TRUSTED_KEYS is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_HARDENED_USERCOPY is not set -# CONFIG_FORTIFY_SOURCE is not set -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,bpf" - -# -# Kernel hardening options -# - -# -# Memory initialization -# -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y -CONFIG_INIT_STACK_NONE=y -# CONFIG_INIT_STACK_ALL_PATTERN is not set -# CONFIG_INIT_STACK_ALL_ZERO is not set -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set -# end of Memory initialization - -# -# Hardening of kernel data structures -# -CONFIG_LIST_HARDENED=y -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# end of Hardening of kernel data structures - -# CONFIG_RANDSTRUCT_NONE is not set -CONFIG_RANDSTRUCT_FULL=y -# CONFIG_RANDSTRUCT_PERFORMANCE is not set -CONFIG_RANDSTRUCT=y -CONFIG_GCC_PLUGIN_RANDSTRUCT=y -# end of Kernel hardening options -# end of Security options - -CONFIG_XOR_BLOCKS=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_SIG2=y -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_KPP=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_USER=y -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_PCRYPT is not set -# CONFIG_CRYPTO_CRYPTD is not set -# CONFIG_CRYPTO_AUTHENC is not set -CONFIG_CRYPTO_TEST=m -CONFIG_CRYPTO_ENGINE=y -# end of Crypto core or helper - -# -# Public-key cryptography -# -CONFIG_CRYPTO_RSA=y -# CONFIG_CRYPTO_DH is not set -CONFIG_CRYPTO_ECC=y -CONFIG_CRYPTO_ECDH=y -# CONFIG_CRYPTO_ECDSA is not set -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_SM2 is not set -# CONFIG_CRYPTO_CURVE25519 is not set -# end of Public-key cryptography - -# -# Block ciphers -# -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_ARIA is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_SEED is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SM4_GENERIC is not set -# CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_TWOFISH is not set -# end of Block ciphers - -# -# Length-preserving ciphers and modes -# -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_ARC4 is not set -# CONFIG_CRYPTO_CHACHA20 is not set -# CONFIG_CRYPTO_CBC is not set -# CONFIG_CRYPTO_CFB is not set -CONFIG_CRYPTO_CTR=y -# CONFIG_CRYPTO_CTS is not set -CONFIG_CRYPTO_ECB=y -# CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_OFB is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_XTS is not set -# end of Length-preserving ciphers and modes - -# -# AEAD (authenticated encryption with associated data) ciphers -# -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -# CONFIG_CRYPTO_SEQIV is not set -# CONFIG_CRYPTO_ECHAINIV is not set -# CONFIG_CRYPTO_ESSIV is not set -# end of AEAD (authenticated encryption with associated data) ciphers - -# -# Hashes, digests, and MACs -# -CONFIG_CRYPTO_BLAKE2B=m -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=y -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_SHA1 is not set -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=y -CONFIG_CRYPTO_SM3=y -CONFIG_CRYPTO_SM3_GENERIC=y -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_VMAC is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_XCBC is not set -CONFIG_CRYPTO_XXHASH=m -# end of Hashes, digests, and MACs - -# -# CRCs (cyclic redundancy checks) -# -CONFIG_CRYPTO_CRC32C=y -# CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_CRCT10DIF is not set -# end of CRCs (cyclic redundancy checks) - -# -# Compression -# -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_LZO is not set -# CONFIG_CRYPTO_842 is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set -# end of Compression - -# -# Random number generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -# CONFIG_CRYPTO_DRBG_HASH is not set -# CONFIG_CRYPTO_DRBG_CTR is not set -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_JITTERENTROPY=y -# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set -# end of Random number generation - -# -# Userspace interface -# -CONFIG_CRYPTO_USER_API=y -CONFIG_CRYPTO_USER_API_HASH=y -CONFIG_CRYPTO_USER_API_SKCIPHER=y -CONFIG_CRYPTO_USER_API_RNG=y -# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set -CONFIG_CRYPTO_USER_API_AEAD=y -CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y -# CONFIG_CRYPTO_STATS is not set -# end of Userspace interface - -CONFIG_CRYPTO_HASH_INFO=y -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_ALLWINNER is not set -# CONFIG_CRYPTO_DEV_SL3516 is not set -# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set -# CONFIG_CRYPTO_DEV_S5P is not set -# CONFIG_CRYPTO_DEV_ATMEL_AES is not set -# CONFIG_CRYPTO_DEV_ATMEL_TDES is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA is not set -# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set -# CONFIG_CAVIUM_CPT is not set -# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set -# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set -# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4 is not set -# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_ECC is not set -# CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set -# CONFIG_CRYPTO_DEV_QAT_C62X is not set -# CONFIG_CRYPTO_DEV_QAT_4XXX is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set -# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set -# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set -# CONFIG_CRYPTO_DEV_QCE is not set -# CONFIG_CRYPTO_DEV_QCOM_RNG is not set -# CONFIG_CRYPTO_DEV_IMGTEC_HASH is not set -# CONFIG_CRYPTO_DEV_ZYNQMP_AES is not set -# CONFIG_CRYPTO_DEV_ZYNQMP_SHA3 is not set -CONFIG_CRYPTO_DEV_VIRTIO=y -# CONFIG_CRYPTO_DEV_SAFEXCEL is not set -# CONFIG_CRYPTO_DEV_CCREE is not set -# CONFIG_CRYPTO_DEV_HISI_SEC is not set -# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set -# CONFIG_CRYPTO_DEV_SA2UL is not set -# CONFIG_CRYPTO_DEV_ASPEED is not set -CONFIG_CRYPTO_DEV_JH7110=y -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set -# CONFIG_FIPS_SIGNATURE_SELFTEST is not set - -# -# Certificates for signature checking -# -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set -# end of Certificates for signature checking - -CONFIG_BINARY_PRINTF=y - -# -# Library routines -# -CONFIG_RAID6_PQ=m -CONFIG_RAID6_PQ_BENCHMARK=y -CONFIG_LINEAR_RANGES=y -# CONFIG_PACKING is not set -CONFIG_BITREVERSE=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_NET_UTILS=y -# CONFIG_CORDIC is not set -# CONFIG_PRIME_NUMBERS is not set -CONFIG_RATIONAL=y -CONFIG_GENERIC_PCI_IOMAP=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=y -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -CONFIG_CRYPTO_LIB_DES=m -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -# end of Crypto library routines - -# CONFIG_CRC_CCITT is not set -CONFIG_CRC16=y -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC64_ROCKSOFT is not set -CONFIG_CRC_ITU_T=y -CONFIG_CRC32=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32_SLICEBY8=y -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SARWATE is not set -# CONFIG_CRC32_BIT is not set -# CONFIG_CRC64 is not set -# CONFIG_CRC4 is not set -CONFIG_CRC7=y -CONFIG_LIBCRC32C=y -# CONFIG_CRC8 is not set -CONFIG_XXHASH=y -# CONFIG_RANDOM32_SELFTEST is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_DECOMPRESS=y -CONFIG_ZSTD_COMMON=y -CONFIG_ZSTD_COMPRESS=m -CONFIG_ZSTD_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -# CONFIG_XZ_DEC_MICROLZMA is not set -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_DECOMPRESS_LZ4=y -CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=y -CONFIG_TEXTSEARCH_BM=y -CONFIG_TEXTSEARCH_FSM=y -CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAS_DMA=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=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_PREP_COHERENT=y -CONFIG_ARCH_DMA_DEFAULT_COHERENT=y -CONFIG_SWIOTLB=y -# CONFIG_SWIOTLB_DYNAMIC is not set -CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y -# CONFIG_DMA_RESTRICTED_POOL is not set -CONFIG_DMA_NONCOHERENT_MMAP=y -CONFIG_DMA_COHERENT_POOL=y -CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_CMA=y - -# -# Default contiguous memory area size: -# -CONFIG_CMA_SIZE_MBYTES=16 -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_DMA_MAP_BENCHMARK is not set -CONFIG_SGL_ALLOC=y -CONFIG_CPU_RMAP=y -CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set -CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y -# CONFIG_IRQ_POLL is not set -CONFIG_MPILIB=y -CONFIG_LIBFDT=y -CONFIG_OID_REGISTRY=y -CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_FONT_SUPPORT=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_SG_POOL=y -CONFIG_ARCH_HAS_PMEM_API=y -CONFIG_ARCH_STACKWALK=y -CONFIG_STACKDEPOT=y -CONFIG_SBITMAP=y -# CONFIG_PARMAN is not set -# CONFIG_OBJAGG is not set -# end of Library routines - -CONFIG_GENERIC_IOREMAP=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_CALLER is not set -# CONFIG_STACKTRACE_BUILD_ID is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set -CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=y -# end of printk and dmesg options - -CONFIG_DEBUG_KERNEL=y -CONFIG_DEBUG_MISC=y - -# -# Compile-time checks and compiler options -# -CONFIG_DEBUG_INFO_NONE=y -# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_DWARF5 is not set -CONFIG_FRAME_WARN=2048 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_READABLE_ASM is not set -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set -CONFIG_ARCH_WANT_FRAME_POINTERS=y -CONFIG_FRAME_POINTER=y -# CONFIG_VMLINUX_MAP is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# end of Compile-time checks and compiler options - -# -# Generic Kernel Debugging Instruments -# -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y -# CONFIG_KGDB is not set -CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y -# CONFIG_UBSAN is not set -CONFIG_HAVE_KCSAN_COMPILER=y -# end of Generic Kernel Debugging Instruments - -# -# Networking Debugging -# -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_DEBUG_NET is not set -# end of Networking Debugging - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -CONFIG_SLUB_DEBUG=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_RODATA_TEST is not set -CONFIG_ARCH_HAS_DEBUG_WX=y -# CONFIG_DEBUG_WX is not set -CONFIG_GENERIC_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SHRINKER_DEBUG is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set -CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VM_PGTABLE is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -# CONFIG_KASAN is not set -CONFIG_HAVE_ARCH_KFENCE=y -# CONFIG_KFENCE is not set -# end of Memory Debugging - -# CONFIG_DEBUG_SHIRQ is not set - -# -# Debug Oops, Lockups and Hangs -# -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -CONFIG_LOCKUP_DETECTOR=y -CONFIG_SOFTLOCKUP_DETECTOR=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -CONFIG_DETECT_HUNG_TASK=y -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_WQ_WATCHDOG=y -# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set -# CONFIG_TEST_LOCKUP is not set -# end of Debug Oops, Lockups and Hangs - -# -# Scheduler Debugging -# -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -# end of Scheduler Debugging - -CONFIG_DEBUG_TIMEKEEPING=y - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_SPINLOCK=y -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -CONFIG_DEBUG_RWSEMS=y -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set -# end of Lock Debugging (spinlocks, mutexes, etc...) - -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_STACKTRACE=y -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set - -# -# Debug kernel data structures -# -CONFIG_DEBUG_LIST=y -CONFIG_DEBUG_PLIST=y -CONFIG_DEBUG_SG=y -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_MAPLE_TREE is not set -# end of Debug kernel data structures - -# -# RCU Debugging -# -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=21 -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_EQS_DEBUG=y -# end of RCU Debugging - -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_LATENCYTOP is not set -CONFIG_HAVE_RETHOOK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_SAMPLES is not set -# CONFIG_STRICT_DEVMEM is not set - -# -# riscv Debugging -# -# end of riscv Debugging - -# -# Kernel Testing and Coverage -# -# CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set -# CONFIG_RUNTIME_TESTING_MENU is not set -CONFIG_ARCH_USE_MEMTEST=y -CONFIG_MEMTEST=y -# end of Kernel Testing and Coverage - -# -# Rust hacking -# -# end of Rust hacking -# end of Kernel hacking - -# -# Documentation -# -# CONFIG_WARN_MISSING_DOCUMENTS is not set -# CONFIG_WARN_ABI_ERRORS is not set -# end of Documentation diff --git a/llvm-snapshot.gpg.key b/llvm-snapshot.gpg.key deleted file mode 100644 index aa6b105aa3d71..0000000000000 --- a/llvm-snapshot.gpg.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) - -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 -bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== -=j+4q ------END PGP PUBLIC KEY BLOCK-----