Move Espressobin NEXT to 4.16.y and DEV to 4.17.y, adjusted patches, tested for building and booting

This commit is contained in:
Igor Pečovnik 2018-06-25 17:36:58 +00:00
parent 154b83d39d
commit 65368a323a
18 changed files with 860 additions and 1904 deletions

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 4.16.17 Kernel Configuration
# Linux/arm64 4.17.2 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@ -35,6 +35,7 @@ CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_MULTI_IRQ_HANDLER=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@ -203,7 +204,6 @@ CONFIG_MEMBARRIER=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_BPF_SYSCALL=y
# CONFIG_BPF_JIT_ALWAYS_ON is not set
@ -236,8 +236,6 @@ CONFIG_KEXEC_CORE=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
@ -271,28 +269,23 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
# CONFIG_CC_STACKPROTECTOR_AUTO is not set
CONFIG_THIN_ARCHIVES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=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=11
# CONFIG_HAVE_ARCH_HASH is not set
# CONFIG_ISA_BUS_API is not set
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
# CONFIG_CPU_NO_EFFICIENT_FFS is not set
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set
# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
@ -396,7 +389,6 @@ CONFIG_ARCH_MVEBU=y
# CONFIG_ARCH_THUNDER2 is not set
# CONFIG_ARCH_UNIPHIER is not set
# CONFIG_ARCH_VEXPRESS is not set
# CONFIG_ARCH_VULCAN is not set
# CONFIG_ARCH_XGENE is not set
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQMP is not set
@ -545,7 +537,6 @@ CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_NO_BOOTMEM=y
CONFIG_MEMORY_ISOLATION=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
@ -560,7 +551,6 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
# CONFIG_ARCH_WANTS_THP_SWAP is not set
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
@ -589,6 +579,7 @@ CONFIG_XEN=y
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_UNMAP_KERNEL_AT_EL0=y
CONFIG_HARDEN_BRANCH_PREDICTOR=y
CONFIG_HARDEN_EL2_VECTORS=y
# CONFIG_ARMV8_DEPRECATED is not set
# CONFIG_ARM64_SW_TTBR0_PAN is not set
@ -607,7 +598,7 @@ CONFIG_ARM64_UAO=y
# CONFIG_ARM64_PMEM is not set
CONFIG_ARM64_RAS_EXTN=y
CONFIG_ARM64_SVE=y
CONFIG_ARM64_MODULE_CMODEL_LARGE=y
CONFIG_ARM64_MODULE_PLTS=y
# CONFIG_RANDOMIZE_BASE is not set
#
@ -628,7 +619,6 @@ CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ELFCORE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COREDUMP=y
CONFIG_COMPAT=y
@ -676,7 +666,6 @@ CONFIG_DT_IDLE_STATES=y
# ARM CPU Idle Drivers
#
CONFIG_ARM_CPUIDLE=y
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
#
# CPU Frequency scaling
@ -707,7 +696,6 @@ CONFIG_ACPI_CPPC_CPUFREQ=y
CONFIG_ARM_ARMADA_37XX_CPUFREQ=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
CONFIG_ARM_DT_BL_CPUFREQ=y
# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
# CONFIG_QORIQ_CPUFREQ is not set
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
@ -748,6 +736,7 @@ CONFIG_NET_IPGRE_DEMUX=m
CONFIG_NET_IP_TUNNEL=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE_COMMON=y
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
@ -884,8 +873,8 @@ CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=m
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=m
CONFIG_NF_TABLES_NETDEV=m
# CONFIG_NF_TABLES_INET is not set
# CONFIG_NF_TABLES_NETDEV is not set
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
# CONFIG_NFT_RT is not set
@ -905,15 +894,8 @@ CONFIG_NFT_NAT=m
CONFIG_NFT_QUEUE=m
# CONFIG_NFT_QUOTA is not set
CONFIG_NFT_REJECT=m
CONFIG_NFT_REJECT_INET=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB=m
CONFIG_NFT_FIB_INET=m
# CONFIG_NF_DUP_NETDEV is not set
# CONFIG_NFT_DUP_NETDEV is not set
# CONFIG_NFT_FWD_NETDEV is not set
CONFIG_NFT_FIB_NETDEV=m
# CONFIG_NF_FLOW_TABLE_INET is not set
CONFIG_NF_FLOW_TABLE=m
CONFIG_NETFILTER_XTABLES=m
@ -1071,22 +1053,15 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_SOCKET_IPV4=m
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=m
# CONFIG_NF_TABLES_IPV4 is not set
# CONFIG_NF_TABLES_ARP is not set
CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m
CONFIG_NF_NAT_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
CONFIG_NF_NAT_MASQUERADE_IPV4=m
CONFIG_NFT_MASQ_IPV4=m
CONFIG_NFT_REDIR_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PPTP=m
@ -1119,14 +1094,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_SOCKET_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
CONFIG_NFT_MASQ_IPV6=m
CONFIG_NFT_REDIR_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
# CONFIG_NF_TABLES_IPV6 is not set
CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
@ -1159,10 +1127,7 @@ CONFIG_IP6_NF_TARGET_NPT=m
# DECnet: Netfilter Configuration
#
CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_LOG_BRIDGE=m
# CONFIG_NF_TABLES_BRIDGE is not set
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -1212,6 +1177,7 @@ CONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not set
CONFIG_TIPC=m
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TIPC_DIAG=m
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
CONFIG_ATM_CLIP_NO_ICMP=y
@ -1332,6 +1298,7 @@ CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_IPSET=m
# CONFIG_NET_EMATCH_IPT is not set
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
@ -1490,13 +1457,13 @@ CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_ATH3K=m
CONFIG_BT_HCIRSI=m
CONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_IPV6 is not set
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
# CONFIG_AF_RXRPC_DEBUG is not set
# CONFIG_RXKAD is not set
# CONFIG_AF_KCM is not set
# CONFIG_STREAM_PARSER is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
@ -1622,7 +1589,6 @@ CONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
CONFIG_SYS_HYPERVISOR=y
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
@ -1646,9 +1612,6 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y
#
# Bus devices
#
# CONFIG_ARM_CCI400_PMU is not set
# CONFIG_ARM_CCI5xx_PMU is not set
# CONFIG_ARM_CCN is not set
# CONFIG_BRCMSTB_GISB_ARB is not set
# CONFIG_SIMPLE_PM_BUS is not set
CONFIG_VEXPRESS_CONFIG=y
@ -1688,13 +1651,8 @@ CONFIG_MTD_BLOCK=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
@ -1723,25 +1681,22 @@ CONFIG_MTD_M25P80=y
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOCG3 is not set
# CONFIG_MTD_ONENAND is not set
CONFIG_MTD_NAND_ECC=y
# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_SM_COMMON is not set
# CONFIG_MTD_NAND_DENALI_PCI is not set
# CONFIG_MTD_NAND_DENALI_DT is not set
# CONFIG_MTD_NAND_GPIO is not set
# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
# CONFIG_MTD_NAND_RICOH is not set
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_DOCG4 is not set
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_PXA3xx is not set
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_BRCMNAND is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_ONENAND is not set
#
# LPDDR & LPDDR2 PCM memory drivers
@ -1786,7 +1741,6 @@ CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@ -1818,7 +1772,6 @@ CONFIG_BLK_DEV_NVME=y
#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set
@ -1899,10 +1852,6 @@ CONFIG_EEPROM_93CX6=m
#
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_AFU_DRIVER_OPS is not set
# CONFIG_CXL_LIB is not set
# CONFIG_OCXL_BASE is not set
CONFIG_MISC_RTSX_PCI=m
# CONFIG_MISC_RTSX_USB is not set
@ -1913,7 +1862,6 @@ CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_MQ_DEFAULT is not set
# CONFIG_SCSI_PROC_FS is not set
@ -1976,7 +1924,6 @@ CONFIG_SCSI_MVUMI=m
CONFIG_XEN_SCSI_FRONTEND=m
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
@ -2000,7 +1947,6 @@ CONFIG_SCSI_OSD_DPRINT_SENSE=1
# CONFIG_SCSI_OSD_DEBUG is not set
CONFIG_HAVE_PATA_PLATFORM=y
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
# CONFIG_ATA_VERBOSE_ERROR is not set
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
@ -2125,8 +2071,6 @@ CONFIG_GENEVE=m
# CONFIG_GTP is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
CONFIG_TUN=y
CONFIG_TAP=y
# CONFIG_TUN_VNET_CROSS_LE is not set
@ -2162,6 +2106,7 @@ CONFIG_NET_DSA_MT7530=m
# CONFIG_MICROCHIP_KSZ is not set
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
# CONFIG_NET_DSA_MV88E6XXX_PTP is not set
# CONFIG_NET_DSA_QCA8K is not set
CONFIG_NET_DSA_SMSC_LAN9303=m
CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
@ -2185,7 +2130,6 @@ CONFIG_NET_VENDOR_AMD=y
# CONFIG_AMD8111_ETH is not set
# CONFIG_PCNET32 is not set
# CONFIG_AMD_XGBE is not set
# CONFIG_AMD_XGBE_HAVE_ECC is not set
CONFIG_NET_VENDOR_AQUANTIA=y
CONFIG_NET_VENDOR_ARC=y
CONFIG_NET_VENDOR_ATHEROS=y
@ -2263,6 +2207,7 @@ CONFIG_IXGBE_HWMON=y
CONFIG_IXGBEVF=y
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_ICE is not set
# CONFIG_FM10K is not set
CONFIG_NET_VENDOR_I825XX=y
# CONFIG_JME is not set
@ -2275,7 +2220,6 @@ CONFIG_SKY2=y
# CONFIG_SKY2_DEBUG is not set
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
@ -2287,6 +2231,7 @@ CONFIG_NET_VENDOR_MICREL=y
CONFIG_NET_VENDOR_MICROCHIP=y
# CONFIG_ENC28J60 is not set
# CONFIG_ENCX24J600 is not set
# CONFIG_LAN743X is not set
CONFIG_NET_VENDOR_MYRI=y
# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
@ -2295,6 +2240,7 @@ CONFIG_NET_VENDOR_NATSEMI=y
# CONFIG_NS83820 is not set
CONFIG_NET_VENDOR_NETRONOME=y
# CONFIG_NFP is not set
CONFIG_NET_VENDOR_NI=y
CONFIG_NET_VENDOR_8390=y
# CONFIG_NE2K_PCI is not set
CONFIG_NET_VENDOR_NVIDIA=y
@ -2338,7 +2284,6 @@ CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC91X=y
# CONFIG_EPIC100 is not set
CONFIG_SMSC911X=y
# CONFIG_SMSC911X_ARCH_HOOKS is not set
# CONFIG_SMSC9420 is not set
CONFIG_NET_VENDOR_SOCIONEXT=y
CONFIG_NET_VENDOR_STMICRO=y
@ -2693,6 +2638,7 @@ CONFIG_RSI_91X=m
# CONFIG_RSI_DEBUGFS is not set
CONFIG_RSI_SDIO=m
CONFIG_RSI_USB=m
CONFIG_RSI_COEX=y
CONFIG_WLAN_VENDOR_ST=y
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@ -2920,7 +2866,6 @@ CONFIG_HW_RANDOM_CAVIUM=y
# PCMCIA character devices
#
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
# CONFIG_XILLYBUS is not set
@ -2997,7 +2942,6 @@ CONFIG_I2C_NOMADIK=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PCA_PLATFORM=m
# CONFIG_I2C_PXA is not set
# CONFIG_I2C_PXA_PCI is not set
CONFIG_I2C_RK3X=m
CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_THUNDERX is not set
@ -3040,7 +2984,6 @@ CONFIG_SPI_ARMADA_3700=y
CONFIG_SPI_ORION=y
CONFIG_SPI_PL022=y
# CONFIG_SPI_PXA2XX is not set
# CONFIG_SPI_PXA2XX_PCI is not set
# CONFIG_SPI_ROCKCHIP is not set
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_THUNDERX is not set
@ -3108,6 +3051,7 @@ CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_HLWD is not set
CONFIG_GPIO_MB86S7X=m
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_MVEBU=y
@ -3356,6 +3300,7 @@ CONFIG_SENSORS_XGENE=m
#
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_THERMAL=y
# CONFIG_THERMAL_STATISTICS is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_OF=y
@ -3493,7 +3438,6 @@ CONFIG_MFD_TI_LP87565=m
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set
@ -3508,6 +3452,7 @@ CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_88PG86X is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ANATOP is not set
@ -3556,6 +3501,7 @@ CONFIG_IR_SANYO_DECODER=y
CONFIG_IR_SHARP_DECODER=y
CONFIG_IR_MCE_KBD_DECODER=y
CONFIG_IR_XMP_DECODER=y
CONFIG_IR_IMON_DECODER=m
# CONFIG_RC_DEVICES is not set
# CONFIG_MEDIA_SUPPORT is not set
@ -3573,8 +3519,6 @@ CONFIG_VGA_ARB_MAX_GPUS=16
#
# AMD Library routines
#
# CONFIG_CHASH is not set
# CONFIG_DRM_LIB_RANDOM is not set
#
# Frame buffer Devices
@ -3583,22 +3527,15 @@ CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
@ -3673,7 +3610,6 @@ CONFIG_BACKLIGHT_LP855X=m
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_ARCXCNN is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEOMODE_HELPERS=y
#
@ -3719,12 +3655,14 @@ CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
# 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_EZKEY=y
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_GOOGLE_HAMMER is not set
# CONFIG_HID_GT683R is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
@ -3831,7 +3769,6 @@ CONFIG_USB_EHCI_HCD_ORION=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_MAX3421_HCD is not set
CONFIG_USB_OHCI_HCD=y
@ -3987,8 +3924,14 @@ CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_FUSB302=m
# CONFIG_TYPEC_UCSI is not set
# CONFIG_TYPEC_TPS6598X is not set
#
# USB Type-C Multiplexer/DeMultiplexer Switch support
#
# CONFIG_TYPEC_MUX_PI3USB30532 is not set
# CONFIG_USB_LED_TRIG is not set
# CONFIG_USB_ULPI_BUS is not set
CONFIG_USB_ROLE_SWITCH=m
# CONFIG_UWB is not set
CONFIG_MMC=y
CONFIG_PWRSEQ_EMMC=y
@ -4068,6 +4011,7 @@ CONFIG_LEDS_PWM=m
#
# CONFIG_LEDS_BLINKM is not set
CONFIG_LEDS_SYSCON=y
# CONFIG_LEDS_MLXREG is not set
# CONFIG_LEDS_USER is not set
#
@ -4127,6 +4071,7 @@ CONFIG_RTC_INTF_DEV=y
# 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
@ -4218,6 +4163,7 @@ CONFIG_DMA_OF=y
# CONFIG_ALTERA_MSGDMA is not set
# CONFIG_AMBA_PL08X is not set
CONFIG_BCM_SBA_RAID=m
# CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set
# CONFIG_INTEL_IDMA64 is not set
CONFIG_MV_XOR=y
@ -4269,7 +4215,6 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
#
# Microsoft Hyper-V guest support
#
# CONFIG_HYPERV_TSCPAGE is not set
#
# Xen driver support
@ -4291,57 +4236,6 @@ CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_STAGING=y
CONFIG_IRDA=m
#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y
#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m
#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TOIM3232_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m
CONFIG_KINGSUN_DONGLE=m
CONFIG_KSDAZZLE_DONGLE=m
CONFIG_KS959_DONGLE=m
#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_MCS_FIR=m
CONFIG_IPX=m
CONFIG_IPX_INTERN=y
# CONFIG_NCP_FS is not set
@ -4384,13 +4278,13 @@ CONFIG_MTD_SPINAND_ONDIEECC=y
# CONFIG_MOST is not set
# CONFIG_KS7010 is not set
# CONFIG_GREYBUS is not set
CONFIG_CRYPTO_DEV_CCREE=m
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC_TCPCI=m
# CONFIG_PI433 is not set
# CONFIG_MTK_MMC is not set
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
CONFIG_CLKDEV_LOOKUP=y
@ -4407,16 +4301,14 @@ CONFIG_CLK_VEXPRESS_OSC=y
# CONFIG_COMMON_CLK_SCPI 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_CDCE706 is not set
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_CLK_QORIQ is not set
CONFIG_COMMON_CLK_XGENE=y
# CONFIG_COMMON_CLK_NXP is not set
CONFIG_COMMON_CLK_PWM=m
# CONFIG_COMMON_CLK_PXA is not set
# CONFIG_COMMON_CLK_PIC32 is not set
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_ARMADA_37XX_CLK=y
CONFIG_ARMADA_AP806_SYSCON=y
@ -4437,11 +4329,6 @@ CONFIG_FSL_ERRATUM_A008585=y
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_ARM_TIMER_SP804 is not set
# CONFIG_ATMEL_PIT is not set
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
# CONFIG_EM_TIMER_STI is not set
CONFIG_CLKSRC_VERSATILE=y
CONFIG_MAILBOX=y
CONFIG_ARM_MHU=m
@ -4501,7 +4388,6 @@ CONFIG_RPMSG_QCOM_GLINK_RPM=m
#
# Qualcomm SoC drivers
#
# CONFIG_SUNXI_SRAM is not set
# CONFIG_SOC_TI is not set
#
@ -4545,19 +4431,7 @@ CONFIG_MVEBU_PIC=y
CONFIG_PARTITION_PERCPU=y
# CONFIG_IPACK_BUS is not set
CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
# CONFIG_RESET_AXS10X is not set
# CONFIG_RESET_BERLIN is not set
# CONFIG_RESET_IMX7 is not set
# CONFIG_RESET_LANTIQ is not set
# CONFIG_RESET_LPC18XX is not set
# CONFIG_RESET_MESON is not set
# CONFIG_RESET_PISTACHIO is not set
# CONFIG_RESET_SIMPLE is not set
# CONFIG_RESET_SUNXI is not set
# CONFIG_RESET_TI_SYSCON is not set
# CONFIG_RESET_ZYNQ is not set
# CONFIG_RESET_TEGRA_BPMP is not set
# CONFIG_FMC is not set
#
@ -4569,12 +4443,16 @@ CONFIG_PHY_XGENE=y
# CONFIG_PHY_MVEBU_CP110_COMPHY is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
#
# Performance monitor support
#
# CONFIG_ARM_CCI400_PMU is not set
# CONFIG_ARM_CCI5xx_PMU is not set
# CONFIG_ARM_CCN is not set
CONFIG_ARM_PMU=y
CONFIG_ARM_PMU_ACPI=y
# CONFIG_ARM_DSU_PMU is not set
@ -4590,6 +4468,10 @@ CONFIG_RAS=y
CONFIG_DAX=y
# CONFIG_DEV_DAX is not set
CONFIG_NVMEM=y
#
# HW tracing support
#
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
# CONFIG_FPGA is not set
@ -4617,6 +4499,7 @@ CONFIG_PM_OPP=y
#
CONFIG_ARM_PSCI_FW=y
# CONFIG_ARM_PSCI_CHECKER is not set
# CONFIG_ARM_SCMI_PROTOCOL is not set
CONFIG_ARM_SCPI_PROTOCOL=m
CONFIG_ARM_SCPI_POWER_DOMAIN=m
# CONFIG_ARM_SDE_INTERFACE is not set
@ -4638,8 +4521,6 @@ CONFIG_EFI_ARMSTUB=y
# CONFIG_EFI_CAPSULE_LOADER is not set
# CONFIG_EFI_TEST is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_EFI_DEV_PATH_PARSER is not set
# CONFIG_MESON_SM is not set
#
# Tegra firmware driver
@ -4652,6 +4533,7 @@ CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_TAD is not set
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_MCFG=y
@ -4660,7 +4542,6 @@ CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
@ -4735,6 +4616,7 @@ CONFIG_OVERLAY_FS=m
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
# CONFIG_OVERLAY_FS_INDEX is not set
# CONFIG_OVERLAY_FS_XINO_AUTO is not set
#
# Caches
@ -4795,9 +4677,7 @@ CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_UBIFS_FS=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_LZO=y
@ -4935,6 +4815,7 @@ CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_ARM_HOST=y
CONFIG_KVM_ARM_PMU=y
CONFIG_KVM_INDIRECT_VECTORS=y
CONFIG_VHOST_NET=y
# CONFIG_VHOST_VSOCK is not set
CONFIG_VHOST=y
@ -5022,13 +4903,15 @@ CONFIG_SCHED_INFO=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 is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT 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
@ -5047,8 +4930,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
#
# RCU Debugging
#
# CONFIG_PROVE_RCU is not set
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
@ -5101,11 +4982,9 @@ CONFIG_MEMTEST=y
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
# CONFIG_UBSAN is not set
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_ARM64_PTDUMP_CORE is not set
# CONFIG_ARM64_PTDUMP_DEBUGFS is not set
# CONFIG_PID_IN_CONTEXTIDR is not set
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
@ -5133,7 +5012,6 @@ CONFIG_KEYS_COMPAT=y
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_SECURITY=y
# CONFIG_SECURITY_WRITABLE_HOOKS is not set
# CONFIG_SECURITYFS is not set
# CONFIG_SECURITY_NETWORK is not set
# CONFIG_SECURITY_PATH is not set
@ -5212,6 +5090,7 @@ CONFIG_CRYPTO_ECHAINIV=m
# Block modes
#
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_CFB is not set
CONFIG_CRYPTO_CTR=m
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=m
@ -5269,6 +5148,8 @@ CONFIG_CRYPTO_FCRYPT=m
# CONFIG_CRYPTO_CHACHA20 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SM4 is not set
CONFIG_CRYPTO_SPECK=m
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
@ -5298,13 +5179,13 @@ CONFIG_CRYPTO_JITTERENTROPY=m
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_MARVELL_CESA is not set
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set
# CONFIG_CRYPTO_DEV_CCP is not set
CONFIG_CRYPTO_DEV_NITROX=m
CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
@ -5338,7 +5219,7 @@ CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
# CONFIG_CRYPTO_CHACHA20_NEON is not set
# CONFIG_CRYPTO_AES_ARM64_BS is not set
# CONFIG_BINARY_PRINTF is not set
CONFIG_CRYPTO_SPECK_NEON=m
#
# Library routines
@ -5352,6 +5233,7 @@ CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
# CONFIG_INDIRECT_PIO is not set
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
@ -5406,7 +5288,6 @@ CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_SGL_ALLOC=y
CONFIG_DMA_DIRECT_OPS=y
# CONFIG_DMA_VIRT_OPS is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
@ -5424,7 +5305,6 @@ CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_SG_SPLIT is not set
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_SBITMAP=y

File diff suppressed because it is too large Load diff

View file

@ -29,7 +29,7 @@ case $BRANCH in
next)
KERNELSOURCE=$MAINLINE_KERNEL_SOURCE
KERNELBRANCH='branch:linux-4.14.y'
KERNELBRANCH='branch:linux-4.16.y'
KERNELDIR=$MAINLINE_KERNEL_DIR
KERNEL_USE_GCC='> 7.0'
@ -37,7 +37,7 @@ case $BRANCH in
dev)
KERNELSOURCE=$MAINLINE_KERNEL_SOURCE
KERNELBRANCH='branch:linux-4.16.y'
KERNELBRANCH='branch:linux-4.17.y'
KERNELDIR=$MAINLINE_KERNEL_DIR
KERNEL_USE_GCC='> 7.0'

View file

@ -1,11 +0,0 @@
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -218,7 +218,7 @@
for script in postinst postrm preinst prerm ; do
mkdir -p "$tmpdir$debhookdir/$script.d"
cat <<EOF > "$tmpdir/DEBIAN/$script"
-#!/bin/sh
+#!/bin/bash
set -e

View file

@ -1,8 +1,8 @@
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 1845c5d..9dab810 100755
index 90c9a8a..3c79b90 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -29,6 +29,28 @@ create_package() {
@@ -29,6 +29,27 @@ create_package() {
# in case we are in a restrictive umask environment like 0077
chmod -R a+rX "$pdir"
@ -10,56 +10,69 @@ index 1845c5d..9dab810 100755
+ if [[ "$1" == *dtb* ]]; then
+ echo "if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/preinst
+ echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
+ echo "if [ -d /dtb ]; then mv /dtb /dtb.old; fi" >> $pdir/DEBIAN/preinst
+ echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
+ echo "exit 0" >> $pdir/DEBIAN/preinst
+ chmod 775 $pdir/DEBIAN/preinst
+ #
+
+ echo "if [ -d /boot/dtb-$version.old ]; then rm -rf /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/postinst
+ echo "ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir/DEBIAN/postinst
+ echo "exit 0" >> $pdir/DEBIAN/postinst
+ chmod 775 $pdir/DEBIAN/postinst
+ fi
+
+
+ # Create postinstall script for headers
+ if [[ "$1" == *headers* ]]; then
+ echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst
+ echo "exit 0" >> $pdir/DEBIAN/postinst
+ chmod 775 $pdir/DEBIAN/postinst
+ fi
+
+
# Create the package
dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
dpkg-gencontrol -p$pname -P"$pdir"
dpkg --build "$pdir" ..
@@ -94,10 +116,13 @@ sourcename=$KDEB_SOURCENAME
tmpdir="$objtree/debian/tmp"
@@ -39,9 +60,11 @@ tmpdir="$objtree/debian/tmp"
kernel_headers_dir="$objtree/debian/hdrtmp"
libc_headers_dir="$objtree/debian/headertmp"
+dtb_dir="$objtree/debian/dtbtmp"
dbg_dir="$objtree/debian/dbgtmp"
-packagename=linux-image-$version
-kernel_headers_packagename=linux-headers-$version
-libc_headers_packagename=linux-libc-dev
+dtb_dir="$objtree/debian/dtbtmp"
+packagename=linux-image-dev"$LOCALVERSION"
+fwpackagename=linux-firmware-image-dev"$LOCALVERSION"
+kernel_headers_packagename=linux-headers-dev"$LOCALVERSION"
+dtb_packagename=linux-dtb-dev"$LOCALVERSION"
+libc_headers_packagename=linux-libc-dev-dev"$LOCALVERSION"
dbg_packagename=$packagename-dbg
debarch=
forcearch=
@@ -124,7 +149,9 @@ esac
if [ "$ARCH" = "um" ] ; then
@@ -52,6 +75,15 @@ fi
# XXX: have each arch Makefile export a variable of the canonical image install
# path instead
case $ARCH in
+aarch64|arm64)
+ image_name=Image
+ installed_image_path="boot/vmlinuz-$version"
+
+ ;;
+arm*)
+ image_name=zImage
+ installed_image_path="boot/vmlinuz-$version"
+ ;;
um)
installed_image_path="usr/bin/linux-$version"
;;
@@ -65,7 +97,9 @@ esac
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
# Setup the directory structure
-rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
+rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
+mkdir -m 755 -p "$dtb_dir/DEBIAN"
+mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename"
mkdir -m 755 -p "$tmpdir/DEBIAN"
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
@@ -177,6 +204,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
@@ -118,6 +152,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
fi
fi
@ -71,28 +84,16 @@ index 1845c5d..9dab810 100755
if [ "$ARCH" != "um" ]; then
$MAKE headers_check KBUILD_SRC=
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
@@ -189,7 +221,7 @@ fi
# so do we; recent versions of dracut and initramfs-tools will obey this.
debhookdir=${KDEB_HOOKDIR:-/etc/kernel}
if grep -q '^CONFIG_BLK_DEV_INITRD=y' $KCONFIG_CONFIG; then
- want_initrd=Yes
+ want_initrd=Yes
else
want_initrd=No
fi
@@ -201,9 +233,11 @@ for script in postinst postrm preinst prerm ; do
@@ -137,7 +176,7 @@ fi
for script in postinst postrm preinst prerm ; do
mkdir -p "$tmpdir$debhookdir/$script.d"
cat <<EOF > "$tmpdir/DEBIAN/$script"
-#!/bin/sh
+#!/bin/bash
set -e
# Pass maintainer script parameters to hook scripts
+
export DEB_MAINT_PARAMS="\$*"
# Tell initramfs builder whether it's wanted
+
export INITRD=$want_initrd
test -d $debhookdir/$script.d && run-parts --arg="$version" --arg="/$installed_image_path" $debhookdir/$script.d
@@ -212,6 +246,55 @@ EOF
@@ -153,9 +192,60 @@ EOF
chmod 755 "$tmpdir/DEBIAN/$script"
done
@ -101,97 +102,120 @@ index 1845c5d..9dab810 100755
+##
+sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst
+sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
+cat >> $tmpdir/DEBIAN/postinst <<EOT
+cat >> $tmpdir/DEBIAN/postinst <<EOT
+if [ "\$(grep nand /proc/partitions)" != "" ] && [ "\$(grep mmc /proc/partitions)" = "" ]; then
+mkimage -A arm -O linux -T kernel -C none -a "0x40008000" -e "0x40008000" -n "Linux kernel" -d /$installed_image_path /boot/uImage > /dev/null 2>&1
+cp /boot/uImage /tmp/uImage
+sync
+mountpoint -q /boot || mount /boot
+cp /tmp/uImage /boot/uImage
+rm -f /$installed_image_path
+ mkimage -A arm -O linux -T kernel -C none -a "0x40008000" -e "0x40008000" -n "Linux kernel" -d /$installed_image_path /boot/uImage > /dev/null 2>&1
+ cp /boot/uImage /tmp/uImage
+ sync
+ mountpoint -q /boot || mount /boot
+ cp /tmp/uImage /boot/uImage
+ rm -f /$installed_image_path
+else
+ln -sf $(basename $installed_image_path) /boot/zImage > /dev/null 2>&1 || mv /$installed_image_path /boot/zImage
+ ln -sf $(basename $installed_image_path) /boot/$image_name || mv /$installed_image_path /boot/$image_name
+fi
+touch /boot/.next
+exit 0
+EOT
+
+##
+## FAT install workaround
+##
+sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst
+sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
+cat >> $tmpdir/DEBIAN/preinst <<EOT
+cat >> $tmpdir/DEBIAN/preinst <<EOT
+# exit if we are running chroot
+if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
+
+check_and_unmount (){
+boot_device=\$(mountpoint -d /boot)
+ boot_device=\$(mountpoint -d /boot)
+
+for file in /dev/* ; do
+ CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
+ if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
+ boot_partition=\$file
+ break;
+ for file in /dev/* ; do
+ CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
+ if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
+ boot_partition=\$file
+ break
+ fi
+ done
+
+ bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
+ if [ "\$bootfstype" = "vfat" ]; then
+ umount /boot
+ rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/$image_name /boot/uImage
+ fi
+done
+
+bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
+if [ "\$bootfstype" = "vfat" ]; then
+umount /boot;
+rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/zImage /boot/uImage
+fi
+}
+mountpoint -q /boot && check_and_unmount
+EOT
+echo "exit 0" >> $tmpdir/DEBIAN/preinst
+echo "exit 0" >> $tmpdir/DEBIAN/preinst
+
# Try to determine maintainer and email values
if [ -n "$DEBEMAIL" ]; then
email=$DEBEMAIL
@@ -325,12 +408,20 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then
# Build kernel header package
(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
+(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles"
(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then
@@ -167,15 +257,19 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then
fi
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
mkdir -p "$destdir"
+######################## headers patch
+ZACNI=$(pwd)
+cd $destdir
+patch -p1 < /tmp/headers-debian-byteshift.patch
+cd $ZACNI
+######################## headers patch
+(cd $destdir; patch -p1 < /tmp/headers-debian-byteshift.patch)
(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -)
(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
+(cd "$destdir"; make M=scripts clean)
+(cd $destdir; make M=scripts clean)
+
cat <<EOF >> debian/control
Package: $kernel_headers_packagename
@@ -343,6 +434,16 @@ EOF
cat <<EOF >> debian/control
+Package: $dtb_packagename
+Architecture: any
+Description: Linux DTB, version $version
+ This package contains device blobs from the Linux kernel, version $version.
+EOF
+
+create_package "$dtb_packagename" "$dtb_dir"
+
+cat <<EOF >> debian/control
+
Package: $libc_headers_packagename
Section: devel
Provides: linux-kernel-headers
@@ -354,7 +455,7 @@ EOF
if [ "$ARCH" != "um" ]; then
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
- create_package "$libc_headers_packagename" "$libc_headers_dir"
+# create_package "$libc_headers_packagename" "$libc_headers_dir"
+ # create_package "$libc_headers_packagename" "$libc_headers_dir"
+ create_package "$dtb_packagename" "$dtb_dir"
fi
create_package "$packagename" "$tmpdir"
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
index 6adb3a1..00e12eb 100755
--- a/scripts/package/mkdebian
+++ b/scripts/package/mkdebian
@@ -61,10 +61,12 @@ else
packageversion=$version-$revision
fi
sourcename=$KDEB_SOURCENAME
-packagename=linux-image-$version
-kernel_headers_packagename=linux-headers-$version
+packagename=linux-image-dev$LOCALVERSION
+kernel_headers_packagename=linux-headers-dev$LOCALVERSION
+dtb_packagename=linux-dtb-dev$LOCALVERSION
dbg_packagename=$packagename-dbg
debarch=
+image_name=
set_debarch
if [ "$ARCH" = "um" ] ; then
@@ -168,6 +170,11 @@ Architecture: $debarch
Description: Linux kernel debugging symbols for $version
This package will come in handy if you need to debug the kernel. It provides
all the necessary debug symbols for the kernel and its modules.
+
+Package: $dtb_packagename
+Architecture: $debarch
+Description: Linux DTB, version $version
+ This package contains device blobs from the Linux kernel, version $version
EOF
cat <<EOF > debian/rules
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index f839ecd9..cd276162 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -103,7 +103,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
# Default target when executing plain make
boot := arch/arm64/boot
-KBUILD_IMAGE := $(boot)/Image.gz
+KBUILD_IMAGE := $(boot)/Image
KBUILD_DTBS := dtbs
all: Image.gz $(KBUILD_DTBS)

View file

@ -1,13 +0,0 @@
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index f839ecd9..cd276162 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -103,7 +103,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
# Default target when executing plain make
boot := arch/arm64/boot
-KBUILD_IMAGE := $(boot)/Image.gz
+KBUILD_IMAGE := $(boot)/Image
KBUILD_DTBS := dtbs
all: Image.gz $(KBUILD_DTBS)

View file

@ -1,50 +0,0 @@
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 0f8de20..3a39d73 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -251,7 +251,7 @@ done
##
sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
-cat >> $tmpdir/DEBIAN/postinst <<EOT
+cat >> $tmpdir/DEBIAN/postinst <<EOT
if [ "\$(grep nand /proc/partitions)" != "" ] && [ "\$(grep mmc /proc/partitions)" = "" ]; then
mkimage -A arm -O linux -T kernel -C none -a "0x40008000" -e "0x40008000" -n "Linux kernel" -d /$installed_image_path /boot/uImage > /dev/null 2>&1
cp /boot/uImage /tmp/uImage
@@ -260,7 +260,7 @@ mountpoint -q /boot || mount /boot
cp /tmp/uImage /boot/uImage
rm -f /$installed_image_path
else
-ln -sf $(basename $installed_image_path) /boot/zImage > /dev/null 2>&1 || mv /$installed_image_path /boot/zImage
+ln -sf $(basename $installed_image_path) /boot/Image > /dev/null 2>&1 || mv /$installed_image_path /boot/Image
fi
touch /boot/.next
exit 0
@@ -270,7 +270,7 @@ EOT
##
sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst
sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
-cat >> $tmpdir/DEBIAN/preinst <<EOT
+cat >> $tmpdir/DEBIAN/preinst <<EOT
# exit if we are running chroot
if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
@@ -286,14 +286,14 @@ for file in /dev/* ; do
done
bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
-if [ "\$bootfstype" = "vfat" ]; then
-umount /boot;
-rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/zImage /boot/uImage
+if [ "\$bootfstype" = "vfat" ]; then
+umount /boot;
+rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/Image /boot/uImage
fi
}
mountpoint -q /boot && check_and_unmount
EOT
-echo "exit 0" >> $tmpdir/DEBIAN/preinst
+echo "exit 0" >> $tmpdir/DEBIAN/preinst
# Try to determine maintainer and email values
if [ -n "$DEBEMAIL" ]; then

View file

@ -1,13 +1,11 @@
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
old mode 100644
new mode 100755
index bb8cb31..0e5348c
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
@@ -116,6 +116,26 @@
status = "okay";
};
+&spi0 {
+ status = "okay";
+

View file

@ -1,66 +0,0 @@
diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c
index cecb0fdfaef6..6dae21ced18a 100644
--- a/drivers/clk/mvebu/armada-37xx-periph.c
+++ b/drivers/clk/mvebu/armada-37xx-periph.c
@@ -79,6 +79,7 @@ static const struct clk_div_table clk_table2[] = {
{ .val = 1, .div = 4, },
{ .val = 0, .div = 0, }, /* last entry */
};
+
static const struct clk_ops clk_double_div_ops;
#define PERIPH_GATE(_name, _bit) \
@@ -217,7 +218,7 @@ PERIPH_CLK_FULL(counter, 23, 20, DIV_SEL0, 23, clk_table6);
PERIPH_CLK_FULL_DD(eip97, 24, 24, DIV_SEL2, DIV_SEL2, 22, 19);
PERIPH_CLK_MUX_DIV(cpu, 22, DIV_SEL0, 28, clk_table6);
-static struct clk_periph_data data_nb[] ={
+static struct clk_periph_data data_nb[] = {
REF_CLK_FULL_DD(mmc),
REF_CLK_FULL_DD(sata_host),
REF_CLK_FULL_DD(sec_at),
@@ -281,7 +282,7 @@ static unsigned int get_div(void __iomem *reg, int shift)
}
static unsigned long clk_double_div_recalc_rate(struct clk_hw *hw,
- unsigned long parent_rate)
+ unsigned long parent_rate)
{
struct clk_double_div *double_div = to_clk_double_div(hw);
unsigned int div;
@@ -303,6 +304,7 @@ static const struct of_device_id armada_3700_periph_clock_of_match[] = {
.data = data_sb, },
{ }
};
+
static int armada_3700_add_composite_clk(const struct clk_periph_data *data,
void __iomem *reg, spinlock_t *lock,
struct device *dev, struct clk_hw **hw)
@@ -355,9 +357,9 @@ static int armada_3700_add_composite_clk(const struct clk_periph_data *data,
}
*hw = clk_hw_register_composite(dev, data->name, data->parent_names,
- data->num_parents, mux_hw,
- mux_ops, rate_hw, rate_ops,
- gate_hw, gate_ops, CLK_IGNORE_UNUSED);
+ data->num_parents, mux_hw,
+ mux_ops, rate_hw, rate_ops,
+ gate_hw, gate_ops, CLK_IGNORE_UNUSED);
if (IS_ERR(*hw))
return PTR_ERR(*hw);
@@ -406,12 +408,11 @@ static int armada_3700_periph_clock_probe(struct platform_device *pdev)
if (armada_3700_add_composite_clk(&data[i], reg,
&driver_data->lock, dev, hw))
dev_err(dev, "Can't register periph clock %s\n",
- data[i].name);
-
+ data[i].name);
}
ret = of_clk_add_hw_provider(np, of_clk_hw_onecell_get,
- driver_data->hw_data);
+ driver_data->hw_data);
if (ret) {
for (i = 0; i < num_periph; i++)
clk_hw_unregister(driver_data->hw_data->hws[i]);

View file

@ -1,161 +0,0 @@
diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c
index 6dae21ced18a..ef725ec73c93 100644
--- a/drivers/clk/mvebu/armada-37xx-periph.c
+++ b/drivers/clk/mvebu/armada-37xx-periph.c
@@ -46,7 +46,17 @@ struct clk_double_div {
u8 shift2;
};
+struct clk_pm_cpu {
+ struct clk_hw hw;
+ void __iomem *reg_mux;
+ u8 shift_mux;
+ u32 mask_mux;
+ void __iomem *reg_div;
+ u8 shift_div;
+};
+
#define to_clk_double_div(_hw) container_of(_hw, struct clk_double_div, hw)
+#define to_clk_pm_cpu(_hw) container_of(_hw, struct clk_pm_cpu, hw)
struct clk_periph_data {
const char *name;
@@ -55,6 +65,7 @@ struct clk_periph_data {
struct clk_hw *mux_hw;
struct clk_hw *rate_hw;
struct clk_hw *gate_hw;
+ struct clk_hw *muxrate_hw;
bool is_double_div;
};
@@ -81,6 +92,7 @@ static const struct clk_div_table clk_table2[] = {
};
static const struct clk_ops clk_double_div_ops;
+static const struct clk_ops clk_pm_cpu_ops;
#define PERIPH_GATE(_name, _bit) \
struct clk_gate gate_##_name = { \
@@ -122,6 +134,18 @@ struct clk_divider rate_##_name = { \
} \
};
+#define PERIPH_PM_CPU(_name, _shift1, _reg, _shift2) \
+struct clk_pm_cpu muxrate_##_name = { \
+ .reg_mux = (void *)TBG_SEL, \
+ .mask_mux = 3, \
+ .shift_mux = _shift1, \
+ .reg_div = (void *)_reg, \
+ .shift_div = _shift2, \
+ .hw.init = &(struct clk_init_data){ \
+ .ops = &clk_pm_cpu_ops, \
+ } \
+};
+
#define PERIPH_CLK_FULL_DD(_name, _bit, _shift, _reg1, _reg2, _shift1, _shift2)\
static PERIPH_GATE(_name, _bit); \
static PERIPH_MUX(_name, _shift); \
@@ -136,10 +160,6 @@ static PERIPH_DIV(_name, _reg, _shift1, _table);
static PERIPH_GATE(_name, _bit); \
static PERIPH_DIV(_name, _reg, _shift, _table);
-#define PERIPH_CLK_MUX_DIV(_name, _shift, _reg, _shift_div, _table) \
-static PERIPH_MUX(_name, _shift); \
-static PERIPH_DIV(_name, _reg, _shift_div, _table);
-
#define PERIPH_CLK_MUX_DD(_name, _shift, _reg1, _reg2, _shift1, _shift2)\
static PERIPH_MUX(_name, _shift); \
static PERIPH_DOUBLEDIV(_name, _reg1, _reg2, _shift1, _shift2);
@@ -180,13 +200,12 @@ static PERIPH_DOUBLEDIV(_name, _reg1, _reg2, _shift1, _shift2);
.rate_hw = &rate_##_name.hw, \
}
-#define REF_CLK_MUX_DIV(_name) \
+#define REF_CLK_PM_CPU(_name) \
{ .name = #_name, \
.parent_names = (const char *[]){ "TBG-A-P", \
"TBG-B-P", "TBG-A-S", "TBG-B-S"}, \
.num_parents = 4, \
- .mux_hw = &mux_##_name.hw, \
- .rate_hw = &rate_##_name.hw, \
+ .muxrate_hw = &muxrate_##_name.hw, \
}
#define REF_CLK_MUX_DD(_name) \
@@ -216,7 +235,7 @@ PERIPH_CLK_FULL_DD(ddr_fclk, 21, 16, DIV_SEL0, DIV_SEL0, 15, 12);
PERIPH_CLK_FULL(trace, 22, 18, DIV_SEL0, 20, clk_table6);
PERIPH_CLK_FULL(counter, 23, 20, DIV_SEL0, 23, clk_table6);
PERIPH_CLK_FULL_DD(eip97, 24, 24, DIV_SEL2, DIV_SEL2, 22, 19);
-PERIPH_CLK_MUX_DIV(cpu, 22, DIV_SEL0, 28, clk_table6);
+static PERIPH_PM_CPU(cpu, 22, DIV_SEL0, 28);
static struct clk_periph_data data_nb[] = {
REF_CLK_FULL_DD(mmc),
@@ -235,7 +254,7 @@ static struct clk_periph_data data_nb[] = {
REF_CLK_FULL(trace),
REF_CLK_FULL(counter),
REF_CLK_FULL_DD(eip97),
- REF_CLK_MUX_DIV(cpu),
+ REF_CLK_PM_CPU(cpu),
{ },
};
@@ -297,6 +316,37 @@ static const struct clk_ops clk_double_div_ops = {
.recalc_rate = clk_double_div_recalc_rate,
};
+static u8 clk_pm_cpu_get_parent(struct clk_hw *hw)
+{
+ struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
+ int num_parents = clk_hw_get_num_parents(hw);
+ u32 val;
+
+ val = readl(pm_cpu->reg_mux) >> pm_cpu->shift_mux;
+ val &= pm_cpu->mask_mux;
+
+ if (val >= num_parents)
+ return -EINVAL;
+
+ return val;
+}
+
+static unsigned long clk_pm_cpu_recalc_rate(struct clk_hw *hw,
+ unsigned long parent_rate)
+{
+ struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
+ unsigned int div;
+
+ div = get_div(pm_cpu->reg_div, pm_cpu->shift_div);
+
+ return DIV_ROUND_UP_ULL((u64)parent_rate, div);
+}
+
+static const struct clk_ops clk_pm_cpu_ops = {
+ .get_parent = clk_pm_cpu_get_parent,
+ .recalc_rate = clk_pm_cpu_recalc_rate,
+};
+
static const struct of_device_id armada_3700_periph_clock_of_match[] = {
{ .compatible = "marvell,armada-3700-periph-clock-nb",
.data = data_nb, },
@@ -356,6 +406,20 @@ static int armada_3700_add_composite_clk(const struct clk_periph_data *data,
}
}
+ if (data->muxrate_hw) {
+ struct clk_pm_cpu *pmcpu_clk;
+ struct clk_hw *muxrate_hw = data->muxrate_hw;
+
+ pmcpu_clk = to_clk_pm_cpu(muxrate_hw);
+ pmcpu_clk->reg_mux = reg + (u64)pmcpu_clk->reg_mux;
+ pmcpu_clk->reg_div = reg + (u64)pmcpu_clk->reg_div;
+
+ mux_hw = muxrate_hw;
+ rate_hw = muxrate_hw;
+ mux_ops = muxrate_hw->init->ops;
+ rate_ops = muxrate_hw->init->ops;
+ }
+
*hw = clk_hw_register_composite(dev, data->name, data->parent_names,
data->num_parents, mux_hw,
mux_ops, rate_hw, rate_ops,

View file

@ -1,285 +0,0 @@
diff --git a/drivers/clk/mvebu/armada-37xx-periph.c b/drivers/clk/mvebu/armada-37xx-periph.c
index ef725ec73c93..0fd7a671a76d 100644
--- a/drivers/clk/mvebu/armada-37xx-periph.c
+++ b/drivers/clk/mvebu/armada-37xx-periph.c
@@ -21,9 +21,11 @@
*/
#include <linux/clk-provider.h>
+#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
+#include <linux/regmap.h>
#include <linux/slab.h>
#define TBG_SEL 0x0
@@ -33,6 +35,26 @@
#define CLK_SEL 0x10
#define CLK_DIS 0x14
+#define LOAD_LEVEL_NR 4
+
+#define ARMADA_37XX_NB_L0L1 0x18
+#define ARMADA_37XX_NB_L2L3 0x1C
+#define ARMADA_37XX_NB_TBG_DIV_OFF 13
+#define ARMADA_37XX_NB_TBG_DIV_MASK 0x7
+#define ARMADA_37XX_NB_CLK_SEL_OFF 11
+#define ARMADA_37XX_NB_CLK_SEL_MASK 0x1
+#define ARMADA_37XX_NB_TBG_SEL_OFF 9
+#define ARMADA_37XX_NB_TBG_SEL_MASK 0x3
+#define ARMADA_37XX_NB_CONFIG_SHIFT 16
+#define ARMADA_37XX_NB_DYN_MOD 0x24
+#define ARMADA_37XX_NB_DFS_EN 31
+#define ARMADA_37XX_NB_CPU_LOAD 0x30
+#define ARMADA_37XX_NB_CPU_LOAD_MASK 0x3
+#define ARMADA_37XX_DVFS_LOAD_0 0
+#define ARMADA_37XX_DVFS_LOAD_1 1
+#define ARMADA_37XX_DVFS_LOAD_2 2
+#define ARMADA_37XX_DVFS_LOAD_3 3
+
struct clk_periph_driver_data {
struct clk_hw_onecell_data *hw_data;
spinlock_t lock;
@@ -53,6 +75,7 @@ struct clk_pm_cpu {
u32 mask_mux;
void __iomem *reg_div;
u8 shift_div;
+ struct regmap *nb_pm_base;
};
#define to_clk_double_div(_hw) container_of(_hw, struct clk_double_div, hw)
@@ -316,14 +339,94 @@ static const struct clk_ops clk_double_div_ops = {
.recalc_rate = clk_double_div_recalc_rate,
};
+static void armada_3700_pm_dvfs_update_regs(unsigned int load_level,
+ unsigned int *reg,
+ unsigned int *offset)
+{
+ if (load_level <= ARMADA_37XX_DVFS_LOAD_1)
+ *reg = ARMADA_37XX_NB_L0L1;
+ else
+ *reg = ARMADA_37XX_NB_L2L3;
+
+ if (load_level == ARMADA_37XX_DVFS_LOAD_0 ||
+ load_level == ARMADA_37XX_DVFS_LOAD_2)
+ *offset += ARMADA_37XX_NB_CONFIG_SHIFT;
+}
+
+static bool armada_3700_pm_dvfs_is_enabled(struct regmap *base)
+{
+ unsigned int val, reg = ARMADA_37XX_NB_DYN_MOD;
+
+ if (IS_ERR(base))
+ return false;
+
+ regmap_read(base, reg, &val);
+
+ return !!(val & BIT(ARMADA_37XX_NB_DFS_EN));
+}
+
+static unsigned int armada_3700_pm_dvfs_get_cpu_div(struct regmap *base)
+{
+ unsigned int reg = ARMADA_37XX_NB_CPU_LOAD;
+ unsigned int offset = ARMADA_37XX_NB_TBG_DIV_OFF;
+ unsigned int load_level, div;
+
+ /*
+ * This function is always called after the function
+ * armada_3700_pm_dvfs_is_enabled, so no need to check again
+ * if the base is valid.
+ */
+ regmap_read(base, reg, &load_level);
+
+ /*
+ * The register and the offset inside this register accessed to
+ * read the current divider depend on the load level
+ */
+ load_level &= ARMADA_37XX_NB_CPU_LOAD_MASK;
+ armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
+
+ regmap_read(base, reg, &div);
+
+ return (div >> offset) & ARMADA_37XX_NB_TBG_DIV_MASK;
+}
+
+static unsigned int armada_3700_pm_dvfs_get_cpu_parent(struct regmap *base)
+{
+ unsigned int reg = ARMADA_37XX_NB_CPU_LOAD;
+ unsigned int offset = ARMADA_37XX_NB_TBG_SEL_OFF;
+ unsigned int load_level, sel;
+
+ /*
+ * This function is always called after the function
+ * armada_3700_pm_dvfs_is_enabled, so no need to check again
+ * if the base is valid
+ */
+ regmap_read(base, reg, &load_level);
+
+ /*
+ * The register and the offset inside this register accessed to
+ * read the current divider depend on the load level
+ */
+ load_level &= ARMADA_37XX_NB_CPU_LOAD_MASK;
+ armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
+
+ regmap_read(base, reg, &sel);
+
+ return (sel >> offset) & ARMADA_37XX_NB_TBG_SEL_MASK;
+}
+
static u8 clk_pm_cpu_get_parent(struct clk_hw *hw)
{
struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
int num_parents = clk_hw_get_num_parents(hw);
u32 val;
- val = readl(pm_cpu->reg_mux) >> pm_cpu->shift_mux;
- val &= pm_cpu->mask_mux;
+ if (armada_3700_pm_dvfs_is_enabled(pm_cpu->nb_pm_base)) {
+ val = armada_3700_pm_dvfs_get_cpu_parent(pm_cpu->nb_pm_base);
+ } else {
+ val = readl(pm_cpu->reg_mux) >> pm_cpu->shift_mux;
+ val &= pm_cpu->mask_mux;
+ }
if (val >= num_parents)
return -EINVAL;
@@ -331,19 +434,124 @@ static u8 clk_pm_cpu_get_parent(struct clk_hw *hw)
return val;
}
+static int clk_pm_cpu_set_parent(struct clk_hw *hw, u8 index)
+{
+ struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
+ struct regmap *base = pm_cpu->nb_pm_base;
+ int load_level;
+
+ /*
+ * We set the clock parent only if the DVFS is available but
+ * not enabled.
+ */
+ if (IS_ERR(base) || armada_3700_pm_dvfs_is_enabled(base))
+ return -EINVAL;
+
+ /* Set the parent clock for all the load level */
+ for (load_level = 0; load_level < LOAD_LEVEL_NR; load_level++) {
+ unsigned int reg, mask, val,
+ offset = ARMADA_37XX_NB_TBG_SEL_OFF;
+
+ armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
+
+ val = index << offset;
+ mask = ARMADA_37XX_NB_TBG_SEL_MASK << offset;
+ regmap_update_bits(base, reg, mask, val);
+ }
+ return 0;
+}
+
static unsigned long clk_pm_cpu_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{
struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
unsigned int div;
- div = get_div(pm_cpu->reg_div, pm_cpu->shift_div);
-
+ if (armada_3700_pm_dvfs_is_enabled(pm_cpu->nb_pm_base))
+ div = armada_3700_pm_dvfs_get_cpu_div(pm_cpu->nb_pm_base);
+ else
+ div = get_div(pm_cpu->reg_div, pm_cpu->shift_div);
return DIV_ROUND_UP_ULL((u64)parent_rate, div);
}
+static long clk_pm_cpu_round_rate(struct clk_hw *hw, unsigned long rate,
+ unsigned long *parent_rate)
+{
+ struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
+ struct regmap *base = pm_cpu->nb_pm_base;
+ unsigned int div = *parent_rate / rate;
+ unsigned int load_level;
+ /* only available when DVFS is enabled */
+ if (!armada_3700_pm_dvfs_is_enabled(base))
+ return -EINVAL;
+
+ for (load_level = 0; load_level < LOAD_LEVEL_NR; load_level++) {
+ unsigned int reg, val, offset = ARMADA_37XX_NB_TBG_DIV_OFF;
+
+ armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
+
+ regmap_read(base, reg, &val);
+
+ val >>= offset;
+ val &= ARMADA_37XX_NB_TBG_DIV_MASK;
+ if (val == div)
+ /*
+ * We found a load level matching the target
+ * divider, switch to this load level and
+ * return.
+ */
+ return *parent_rate / div;
+ }
+
+ /* We didn't find any valid divider */
+ return -EINVAL;
+}
+
+static int clk_pm_cpu_set_rate(struct clk_hw *hw, unsigned long rate,
+ unsigned long parent_rate)
+{
+ struct clk_pm_cpu *pm_cpu = to_clk_pm_cpu(hw);
+ struct regmap *base = pm_cpu->nb_pm_base;
+ unsigned int div = parent_rate / rate;
+ unsigned int load_level;
+
+ /* only available when DVFS is enabled */
+ if (!armada_3700_pm_dvfs_is_enabled(base))
+ return -EINVAL;
+
+ for (load_level = 0; load_level < LOAD_LEVEL_NR; load_level++) {
+ unsigned int reg, mask, val,
+ offset = ARMADA_37XX_NB_TBG_DIV_OFF;
+
+ armada_3700_pm_dvfs_update_regs(load_level, &reg, &offset);
+
+ regmap_read(base, reg, &val);
+ val >>= offset;
+ val &= ARMADA_37XX_NB_TBG_DIV_MASK;
+
+ if (val == div) {
+ /*
+ * We found a load level matching the target
+ * divider, switch to this load level and
+ * return.
+ */
+ reg = ARMADA_37XX_NB_CPU_LOAD;
+ mask = ARMADA_37XX_NB_CPU_LOAD_MASK;
+ regmap_update_bits(base, reg, mask, load_level);
+
+ return rate;
+ }
+ }
+
+ /* We didn't find any valid divider */
+ return -EINVAL;
+}
+
static const struct clk_ops clk_pm_cpu_ops = {
.get_parent = clk_pm_cpu_get_parent,
+ .set_parent = clk_pm_cpu_set_parent,
+ .round_rate = clk_pm_cpu_round_rate,
+ .set_rate = clk_pm_cpu_set_rate,
.recalc_rate = clk_pm_cpu_recalc_rate,
};
@@ -418,6 +626,9 @@ static int armada_3700_add_composite_clk(const struct clk_periph_data *data,
rate_hw = muxrate_hw;
mux_ops = muxrate_hw->init->ops;
rate_ops = muxrate_hw->init->ops;
+
+ pmcpu_clk->nb_pm_base =
+ syscon_regmap_lookup_by_compatible("marvell,armada-3700-nb-pm");
}
*hw = clk_hw_register_composite(dev, data->name, data->parent_names,

View file

@ -1,37 +0,0 @@
diff --git a/arch/arm64/boot/dts/marvell/armada-372x.dtsi b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
index 59d7557d3b1b..2554e0baea6b 100644
--- a/arch/arm64/boot/dts/marvell/armada-372x.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
@@ -56,6 +56,7 @@
device_type = "cpu";
compatible = "arm,cortex-a53","arm,armv8";
reg = <0x1>;
+ clocks = <&nb_periph_clk 16>;
enable-method = "psci";
};
};
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index 90c26d616a54..3056d7168e0b 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -65,6 +65,7 @@
device_type = "cpu";
compatible = "arm,cortex-a53", "arm,armv8";
reg = <0>;
+ clocks = <&nb_periph_clk 16>;
enable-method = "psci";
};
};
@@ -234,6 +235,12 @@
};
};
+ nb_pm: syscon@14000 {
+ compatible = "marvell,armada-3700-nb-pm",
+ "syscon";
+ reg = <0x14000 0x60>;
+ };
+
pinctrl_sb: pinctrl@18800 {
compatible = "marvell,armada3710-sb-pinctrl",
"syscon", "simple-mfd";

View file

@ -1,301 +0,0 @@
This patch adds DVFS support for the Armada 37xx SoCs
There are up to four CPU frequency loads for Armada 37xx controlled by
the hardware.
This driver associates the CPU load level to a frequency, then the
hardware will switch while selecting a load level.
The hardware also can associate a voltage for each level (AVS support)
but it is not yet supported
Tested-by: Andre Heider <a.heider@xxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
---
drivers/cpufreq/Kconfig.arm | 7 +
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/armada-37xx-cpufreq.c | 241 ++++++++++++++++++++++++++++++++++
3 files changed, 249 insertions(+)
create mode 100644 drivers/cpufreq/armada-37xx-cpufreq.c
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index beb8826afbb1..3a88e33b0cfe 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -18,6 +18,13 @@ config ACPI_CPPC_CPUFREQ
If in doubt, say N.
+config ARM_ARMADA_37XX_CPUFREQ
+ tristate "Armada 37xx CPUFreq support"
+ depends on ARCH_MVEBU
+ help
+ This adds the CPUFreq driver support for Marvell Armada 37xx SoCs.
+ The Armada 37xx PMU supports 4 frequency and VDD levels.
+
# big LITTLE core layer and glue drivers
config ARM_BIG_LITTLE_CPUFREQ
tristate "Generic ARM big LITTLE CPUfreq driver"
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index d762e76887e7..e07715ce8844 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -51,7 +51,7 @@ obj-$(CONFIG_ARM_BIG_LITTLE_CPUFREQ) += arm_big_little.o
# big LITTLE per platform glues. Keep DT_BL_CPUFREQ as the last entry in all big
# LITTLE drivers, so that it is probed last.
obj-$(CONFIG_ARM_DT_BL_CPUFREQ) += arm_big_little_dt.o
-
+obj-$(CONFIG_ARM_ARMADA_37XX_CPUFREQ) += armada-37xx-cpufreq.o
obj-$(CONFIG_ARM_BRCMSTB_AVS_CPUFREQ) += brcmstb-avs-cpufreq.o
obj-$(CONFIG_ARCH_DAVINCI) += davinci-cpufreq.o
obj-$(CONFIG_ARM_EXYNOS5440_CPUFREQ) += exynos5440-cpufreq.o
diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada-37xx-cpufreq.c
new file mode 100644
index 000000000000..b819e5159a4b
--- /dev/null
+++ b/drivers/cpufreq/armada-37xx-cpufreq.c
@@ -0,0 +1,241 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * CPU frequency scaling support for Armada 37xx platform.
+ *
+ * Copyright (C) 2017 Marvell
+ *
+ * Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
+ */
+
+#include <linux/clk.h>
+#include <linux/cpu.h>
+#include <linux/cpufreq.h>
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of_address.h>
+#include <linux/of_device.h>
+#include <linux/of_irq.h>
+#include <linux/platform_device.h>
+#include <linux/pm_opp.h>
+#include <linux/regmap.h>
+#include <linux/slab.h>
+
+/* Power management in North Bridge register set */
+#define ARMADA_37XX_NB_L0L1 0x18
+#define ARMADA_37XX_NB_L2L3 0x1C
+#define ARMADA_37XX_NB_TBG_DIV_OFF 13
+#define ARMADA_37XX_NB_TBG_DIV_MASK 0x7
+#define ARMADA_37XX_NB_CLK_SEL_OFF 11
+#define ARMADA_37XX_NB_CLK_SEL_MASK 0x1
+#define ARMADA_37XX_NB_CLK_SEL_TBG 0x1
+#define ARMADA_37XX_NB_TBG_SEL_OFF 9
+#define ARMADA_37XX_NB_TBG_SEL_MASK 0x3
+#define ARMADA_37XX_NB_VDD_SEL_OFF 6
+#define ARMADA_37XX_NB_VDD_SEL_MASK 0x3
+#define ARMADA_37XX_NB_CONFIG_SHIFT 16
+#define ARMADA_37XX_NB_DYN_MOD 0x24
+#define ARMADA_37XX_NB_CLK_SEL_EN BIT(26)
+#define ARMADA_37XX_NB_TBG_EN BIT(28)
+#define ARMADA_37XX_NB_DIV_EN BIT(29)
+#define ARMADA_37XX_NB_VDD_EN BIT(30)
+#define ARMADA_37XX_NB_DFS_EN BIT(31)
+#define ARMADA_37XX_NB_CPU_LOAD 0x30
+#define ARMADA_37XX_NB_CPU_LOAD_MASK 0x3
+#define ARMADA_37XX_DVFS_LOAD_0 0
+#define ARMADA_37XX_DVFS_LOAD_1 1
+#define ARMADA_37XX_DVFS_LOAD_2 2
+#define ARMADA_37XX_DVFS_LOAD_3 3
+
+/*
+ * On Armada 37xx the Power management manages 4 level of CPU load,
+ * each level can be associated with a CPU clock source, a CPU
+ * divider, a VDD level, etc...
+ */
+#define LOAD_LEVEL_NR 4
+
+struct armada_37xx_dvfs {
+ u32 cpu_freq_max;
+ u8 divider[LOAD_LEVEL_NR];
+};
+
+static struct armada_37xx_dvfs armada_37xx_dvfs[] = {
+ {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, 6} },
+ {.cpu_freq_max = 1000*1000*1000, .divider = {1, 2, 4, 5} },
+ {.cpu_freq_max = 800*1000*1000, .divider = {1, 2, 3, 4} },
+ {.cpu_freq_max = 600*1000*1000, .divider = {2, 4, 5, 6} },
+};
+
+static struct armada_37xx_dvfs *armada_37xx_cpu_freq_info_get(u32 freq)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(armada_37xx_dvfs); i++) {
+ if (freq == armada_37xx_dvfs[i].cpu_freq_max)
+ return &armada_37xx_dvfs[i];
+ }
+
+ pr_err("Unsupported CPU frequency %d MHz\n", freq/1000000);
+ return NULL;
+}
+
+/*
+ * Setup the four level managed by the hardware. Once the four level
+ * will be configured then the DVFS will be enabled.
+ */
+static void __init armada37xx_cpufreq_dvfs_setup(struct regmap *base,
+ struct clk *clk, u8 *divider)
+{
+ int load_lvl;
+ struct clk *parent;
+
+ for (load_lvl = 0; load_lvl < LOAD_LEVEL_NR; load_lvl++) {
+ unsigned int reg, mask, val, offset = 0;
+
+ if (load_lvl <= ARMADA_37XX_DVFS_LOAD_1)
+ reg = ARMADA_37XX_NB_L0L1;
+ else
+ reg = ARMADA_37XX_NB_L2L3;
+
+ if (load_lvl == ARMADA_37XX_DVFS_LOAD_0 ||
+ load_lvl == ARMADA_37XX_DVFS_LOAD_2)
+ offset += ARMADA_37XX_NB_CONFIG_SHIFT;
+
+ /* Set cpu clock source, for all the level we use TBG */
+ val = ARMADA_37XX_NB_CLK_SEL_TBG << ARMADA_37XX_NB_CLK_SEL_OFF;
+ mask = (ARMADA_37XX_NB_CLK_SEL_MASK
+ << ARMADA_37XX_NB_CLK_SEL_OFF);
+
+ /*
+ * Set cpu divider based on the pre-computed array in
+ * order to have balanced step.
+ */
+ val |= divider[load_lvl] << ARMADA_37XX_NB_TBG_DIV_OFF;
+ mask |= (ARMADA_37XX_NB_TBG_DIV_MASK
+ << ARMADA_37XX_NB_TBG_DIV_OFF);
+
+ /* Set VDD divider which is actually the load level. */
+ val |= load_lvl << ARMADA_37XX_NB_VDD_SEL_OFF;
+ mask |= (ARMADA_37XX_NB_VDD_SEL_MASK
+ << ARMADA_37XX_NB_VDD_SEL_OFF);
+
+ val <<= offset;
+ mask <<= offset;
+
+ regmap_update_bits(base, reg, mask, val);
+ }
+
+ /*
+ * Set cpu clock source, for all the level we keep the same
+ * clock source that the one already configured. For this one
+ * we need to use the clock framework
+ */
+ parent = clk_get_parent(clk);
+ clk_set_parent(clk, parent);
+}
+
+static void __init armada37xx_cpufreq_disable_dvfs(struct regmap *base)
+{
+ unsigned int reg = ARMADA_37XX_NB_DYN_MOD,
+ mask = ARMADA_37XX_NB_DFS_EN;
+
+ regmap_update_bits(base, reg, mask, 0);
+}
+
+static void __init armada37xx_cpufreq_enable_dvfs(struct regmap *base)
+{
+ unsigned int val, reg = ARMADA_37XX_NB_CPU_LOAD,
+ mask = ARMADA_37XX_NB_CPU_LOAD_MASK;
+
+ /* Start with the highest load (0) */
+ val = ARMADA_37XX_DVFS_LOAD_0;
+ regmap_update_bits(base, reg, mask, val);
+
+ /* Now enable DVFS for the CPUs */
+ reg = ARMADA_37XX_NB_DYN_MOD;
+ mask = ARMADA_37XX_NB_CLK_SEL_EN | ARMADA_37XX_NB_TBG_EN |
+ ARMADA_37XX_NB_DIV_EN | ARMADA_37XX_NB_VDD_EN |
+ ARMADA_37XX_NB_DFS_EN;
+
+ regmap_update_bits(base, reg, mask, mask);
+}
+
+static int __init armada37xx_cpufreq_driver_init(void)
+{
+ struct armada_37xx_dvfs *dvfs;
+ struct platform_device *pdev;
+ unsigned int cur_frequency;
+ struct regmap *nb_pm_base;
+ struct device *cpu_dev;
+ int load_lvl, ret;
+ struct clk *clk;
+
+ nb_pm_base =
+ syscon_regmap_lookup_by_compatible("marvell,armada-3700-nb-pm");
+
+ if (IS_ERR(nb_pm_base))
+ return -ENODEV;
+
+ /* Before doing any configuration on the DVFS first, disable it */
+ armada37xx_cpufreq_disable_dvfs(nb_pm_base);
+
+ /*
+ * On CPU 0 register the operating points supported (which are
+ * the nominal CPU frequency and full integer divisions of
+ * it).
+ */
+ cpu_dev = get_cpu_device(0);
+ if (!cpu_dev) {
+ dev_err(cpu_dev, "Cannot get CPU\n");
+ return -ENODEV;
+ }
+
+ clk = clk_get(cpu_dev, 0);
+ if (IS_ERR(clk)) {
+ dev_err(cpu_dev, "Cannot get clock for CPU0\n");
+ return PTR_ERR(clk);
+ }
+
+ /* Get nominal (current) CPU frequency */
+ cur_frequency = clk_get_rate(clk);
+ if (!cur_frequency) {
+ dev_err(cpu_dev, "Failed to get clock rate for CPU\n");
+ return -EINVAL;
+ }
+
+ dvfs = armada_37xx_cpu_freq_info_get(cur_frequency);
+ if (!dvfs)
+ return -EINVAL;
+
+ armada37xx_cpufreq_dvfs_setup(nb_pm_base, clk, dvfs->divider);
+
+ for (load_lvl = ARMADA_37XX_DVFS_LOAD_0; load_lvl < LOAD_LEVEL_NR;
+ load_lvl++) {
+ unsigned long freq = cur_frequency / dvfs->divider[load_lvl];
+
+ ret = dev_pm_opp_add(cpu_dev, freq, 0);
+ if (ret) {
+ /* clean-up the already added opp before leaving */
+ while (load_lvl-- > ARMADA_37XX_DVFS_LOAD_0) {
+ freq = cur_frequency / dvfs->divider[load_lvl];
+ dev_pm_opp_remove(cpu_dev, freq);
+ }
+ return ret;
+ }
+ }
+
+ /* Now that everything is setup, enable the DVFS at hardware level */
+ armada37xx_cpufreq_enable_dvfs(nb_pm_base);
+
+ pdev = platform_device_register_simple("cpufreq-dt", -1, NULL, 0);
+
+ return PTR_ERR_OR_ZERO(pdev);
+}
+/* late_initcall, to guarantee the driver is loaded after A37xx clock driver */
+late_initcall(armada37xx_cpufreq_driver_init);
+
+MODULE_AUTHOR("Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>");
+MODULE_DESCRIPTION("Armada 37xx cpufreq driver");
+MODULE_LICENSE("GPL");
--
2.15.1

View file

@ -1,89 +0,0 @@
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index 71b944748304..4e8d836a8c6f 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -576,6 +576,19 @@ static int armada_37xx_irq_set_type(struct irq_data *d, unsigned int type)
case IRQ_TYPE_EDGE_FALLING:
val |= (BIT(d->hwirq % GPIO_PER_REG));
break;
+ case IRQ_TYPE_EDGE_BOTH: {
+ u32 in_val, in_reg = INPUT_VAL;
+
+ armada_37xx_irq_update_reg(&in_reg, d);
+ regmap_read(info->regmap, in_reg, &in_val);
+
+ /* Set initial polarity based on current input level. */
+ if (in_val & d->mask)
+ val |= d->mask; /* falling */
+ else
+ val &= ~d->mask; /* rising */
+ break;
+ }
default:
spin_unlock_irqrestore(&info->irq_lock, flags);
return -EINVAL;
@@ -586,6 +599,40 @@ static int armada_37xx_irq_set_type(struct irq_data *d, unsigned int type)
return 0;
}
+static int armada_37xx_edge_both_irq_swap_pol(struct armada_37xx_pinctrl *info,
+ u32 pin_idx)
+{
+ u32 reg_idx = pin_idx / GPIO_PER_REG;
+ u32 bit_num = pin_idx % GPIO_PER_REG;
+ u32 p, l, ret;
+ unsigned long flags;
+
+ regmap_read(info->regmap, INPUT_VAL + 4*reg_idx, &l);
+
+ spin_lock_irqsave(&info->irq_lock, flags);
+ p = readl(info->base + IRQ_POL + 4 * reg_idx);
+ if ((p ^ l) & (1 << bit_num)) {
+ /*
+ * For the gpios which are used for both-edge irqs, when their
+ * interrupts happen, their input levels are changed,
+ * yet their interrupt polarities are kept in old values, we
+ * should synchronize their interrupt polarities; for example,
+ * at first a gpio's input level is low and its interrupt
+ * polarity control is "Detect rising edge", then the gpio has
+ * a interrupt , its level turns to high, we should change its
+ * polarity control to "Detect falling edge" correspondingly.
+ */
+ p ^= 1 << bit_num;
+ writel(p, info->base + IRQ_POL + 4 * reg_idx);
+ ret = 0;
+ } else {
+ /* Spurious irq */
+ ret = -1;
+ }
+
+ spin_unlock_irqrestore(&info->irq_lock, flags);
+ return ret;
+}
static void armada_37xx_irq_handler(struct irq_desc *desc)
{
@@ -609,6 +656,23 @@ static void armada_37xx_irq_handler(struct irq_desc *desc)
u32 hwirq = ffs(status) - 1;
u32 virq = irq_find_mapping(d, hwirq +
i * GPIO_PER_REG);
+ u32 t = irq_get_trigger_type(virq);
+
+ if ((t & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
+ /* Swap polarity (race with GPIO line) */
+ if (armada_37xx_edge_both_irq_swap_pol(info,
+ hwirq + i * GPIO_PER_REG)) {
+ /*
+ * For spurious irq, which gpio level
+ * is not as expected after incoming
+ * edge, just ack the gpio irq.
+ */
+ writel(1 << hwirq,
+ info->base +
+ IRQ_STATUS + 4 * i);
+ continue;
+ }
+ }
generic_handle_irq(virq);

View file

@ -1,32 +0,0 @@
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index bb44f0c..9e9202b
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2155,13 +2155,6 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
}
ndst = &rt->dst;
- if (skb_dst(skb)) {
- int mtu = dst_mtu(ndst) - VXLAN_HEADROOM;
-
- skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL,
- skb, mtu);
- }
-
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
@@ -2197,13 +2190,6 @@ static void vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev,
goto out_unlock;
}
- if (skb_dst(skb)) {
- int mtu = dst_mtu(ndst) - VXLAN6_HEADROOM;
-
- skb_dst(skb)->ops->update_pmtu(skb_dst(skb), NULL,
- skb, mtu);
- }
-
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
ttl = ttl ? : ip6_dst_hoplimit(ndst);
skb_scrub_packet(skb, xnet);

View file

@ -361,7 +361,7 @@ index 0000000..d159169
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drivers/net/wireless/rtl8812au/Makefile b/drivers/net/wireless/rtl8812au/Makefile
new file mode 100755
new file mode 100644
index 0000000..ef959e7
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/Makefile
@ -110647,7 +110647,7 @@ index 0000000..cf167a5
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.c b/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.c
new file mode 100755
new file mode 100644
index 0000000..d5c5c47
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.c
@ -115517,7 +115517,7 @@ index 0000000..d5c5c47
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.h b/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.h
new file mode 100755
new file mode 100644
index 0000000..361c443
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/btc/HalBtc8703b2Ant.h
@ -267231,7 +267231,7 @@ index 0000000..ec8c6fa
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.c b/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.c
new file mode 100755
new file mode 100644
index 0000000..8a4a273
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.c
@ -268929,7 +268929,7 @@ index 0000000..8a4a273
+
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.h b/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.h
new file mode 100755
new file mode 100644
index 0000000..a1fe97f
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/phydm_rxhp.h
@ -320394,7 +320394,7 @@ index 0000000..e9c28bf
+#define COMMIT_BY_8814A "BB_LUKE"
+#define RELEASE_VERSION_8814A 81
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.c
new file mode 100755
new file mode 100644
index 0000000..09f3fbf
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.c
@ -321205,7 +321205,7 @@ index 0000000..09f3fbf
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.h
new file mode 100755
new file mode 100644
index 0000000..a5429f1
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_bb.h
@ -321280,7 +321280,7 @@ index 0000000..a5429f1
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.c
new file mode 100755
new file mode 100644
index 0000000..dc91392
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.c
@ -327923,7 +327923,7 @@ index 0000000..dc91392
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.h
new file mode 100755
new file mode 100644
index 0000000..945819a
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_fw.h
@ -328002,7 +328002,7 @@ index 0000000..945819a
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.c
new file mode 100755
new file mode 100644
index 0000000..ed73444
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.c
@ -328294,7 +328294,7 @@ index 0000000..ed73444
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.h
new file mode 100755
new file mode 100644
index 0000000..73158b4
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_mac.h
@ -328339,7 +328339,7 @@ index 0000000..73158b4
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.c
new file mode 100755
new file mode 100644
index 0000000..29df963
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.c
@ -333809,7 +333809,7 @@ index 0000000..29df963
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.h
new file mode 100755
new file mode 100644
index 0000000..c4dd473
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halhwimg8821a_rf.h
@ -333964,7 +333964,7 @@ index 0000000..c4dd473
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c
new file mode 100755
new file mode 100644
index 0000000..01da5a1
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c
@ -334295,7 +334295,7 @@ index 0000000..01da5a1
+
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h
new file mode 100755
new file mode 100644
index 0000000..688a95e
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h
@ -334353,7 +334353,7 @@ index 0000000..688a95e
+#endif // #ifndef __HAL_PHY_RF_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.c
new file mode 100755
new file mode 100644
index 0000000..40d6b52
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.c
@ -335507,7 +335507,7 @@ index 0000000..40d6b52
+
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.h
new file mode 100755
new file mode 100644
index 0000000..5d239ad
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/halphyrf_8821a_win.h
@ -335585,7 +335585,7 @@ index 0000000..5d239ad
+#endif // #ifndef __HAL_PHY_RF_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c
new file mode 100755
new file mode 100644
index 0000000..382025b
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c
@ -336466,7 +336466,7 @@ index 0000000..382025b
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h
new file mode 100755
new file mode 100644
index 0000000..8c74fec
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h
@ -336520,7 +336520,7 @@ index 0000000..8c74fec
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c
new file mode 100755
new file mode 100644
index 0000000..28905fd
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c
@ -337402,7 +337402,7 @@ index 0000000..28905fd
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h
new file mode 100755
new file mode 100644
index 0000000..f44f445
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h
@ -337456,7 +337456,7 @@ index 0000000..f44f445
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c
new file mode 100755
new file mode 100644
index 0000000..aeb4979
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c
@ -338337,7 +338337,7 @@ index 0000000..aeb4979
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h
new file mode 100755
new file mode 100644
index 0000000..8c74fec
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h
@ -338391,7 +338391,7 @@ index 0000000..8c74fec
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.c
new file mode 100755
new file mode 100644
index 0000000..c09db08
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.c
@ -338617,7 +338617,7 @@ index 0000000..c09db08
+#endif /* #if (RTL8821A_SUPPORT == 1)*/
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.h
new file mode 100755
new file mode 100644
index 0000000..a07fd74
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_regconfig8821a.h
@ -338719,7 +338719,7 @@ index 0000000..a07fd74
+#endif // end of SUPPORT
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.c b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.c
new file mode 100755
new file mode 100644
index 0000000..27bccb3
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.c
@ -338795,7 +338795,7 @@ index 0000000..27bccb3
+#endif //#if (RTL8821A_SUPPORT == 1)
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.h
new file mode 100755
new file mode 100644
index 0000000..0b5edf5
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/phydm_rtl8821a.h
@ -338830,7 +338830,7 @@ index 0000000..0b5edf5
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/version_rtl8821a.h b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/version_rtl8821a.h
new file mode 100755
new file mode 100644
index 0000000..5e10b15
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/rtl8821a/version_rtl8821a.h
@ -340785,7 +340785,7 @@ index 0000000..7efdc02
+#endif
+
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.c b/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.c
new file mode 100755
new file mode 100644
index 0000000..eff8e98
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.c
@ -341191,7 +341191,7 @@ index 0000000..eff8e98
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.h b/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.h
new file mode 100755
new file mode 100644
index 0000000..c92d79a
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/hal/phydm/txbf/haltxbf8821b.h
@ -412866,7 +412866,7 @@ index 0000000..4ab4feb
+
+#endif /* __HAL_COMMON_H__ */
diff --git a/drivers/net/wireless/rtl8812au/include/hal_data.h b/drivers/net/wireless/rtl8812au/include/hal_data.h
new file mode 100755
new file mode 100644
index 0000000..a9dd586
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/hal_data.h
@ -413649,7 +413649,7 @@ index 0000000..a9dd586
+
+#endif /* __HAL_DATA_H__ */
diff --git a/drivers/net/wireless/rtl8812au/include/hal_data.h.edited b/drivers/net/wireless/rtl8812au/include/hal_data.h.edited
new file mode 100755
new file mode 100644
index 0000000..ec59ebb
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/hal_data.h.edited
@ -428588,7 +428588,7 @@ index 0000000..a3bb7df
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8723b_hal.h b/drivers/net/wireless/rtl8812au/include/rtl8723b_hal.h
new file mode 100755
new file mode 100644
index 0000000..e6391a4
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8723b_hal.h
@ -428892,7 +428892,7 @@ index 0000000..e6391a4
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8723b_led.h b/drivers/net/wireless/rtl8812au/include/rtl8723b_led.h
new file mode 100755
new file mode 100644
index 0000000..0a7b2c9
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8723b_led.h
@ -428946,7 +428946,7 @@ index 0000000..0a7b2c9
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8723b_recv.h b/drivers/net/wireless/rtl8812au/include/rtl8723b_recv.h
new file mode 100755
new file mode 100644
index 0000000..fd9faef
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8723b_recv.h
@ -429079,7 +429079,7 @@ index 0000000..bf56dde
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8723b_spec.h b/drivers/net/wireless/rtl8812au/include/rtl8723b_spec.h
new file mode 100755
new file mode 100644
index 0000000..85b9d1e
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8723b_spec.h
@ -429416,7 +429416,7 @@ index 0000000..8067359
+#endif
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8723b_xmit.h b/drivers/net/wireless/rtl8812au/include/rtl8723b_xmit.h
new file mode 100755
new file mode 100644
index 0000000..7cc33e1
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8723b_xmit.h
@ -433210,7 +433210,7 @@ index 0000000..9fe4dfb
+#include "rtl8821a_xmit.h"
+#endif /* CONFIG_RTL8821A */
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8814a_cmd.h b/drivers/net/wireless/rtl8812au/include/rtl8814a_cmd.h
new file mode 100755
new file mode 100644
index 0000000..e2e0236
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8814a_cmd.h
@ -433408,7 +433408,7 @@ index 0000000..bb925e4
+
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8814a_hal.h b/drivers/net/wireless/rtl8812au/include/rtl8814a_hal.h
new file mode 100755
new file mode 100644
index 0000000..a2846bb
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8814a_hal.h
@ -433785,7 +433785,7 @@ index 0000000..1137a9b
+
+#endif /* __RTL8814A_LED_H__ */
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8814a_recv.h b/drivers/net/wireless/rtl8812au/include/rtl8814a_recv.h
new file mode 100755
new file mode 100644
index 0000000..e9626f3
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8814a_recv.h
@ -434021,7 +434021,7 @@ index 0000000..7b11d99
+
+#endif/* __RTL8188E_RF_H__ */
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8814a_spec.h b/drivers/net/wireless/rtl8812au/include/rtl8814a_spec.h
new file mode 100755
new file mode 100644
index 0000000..43a6381
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8814a_spec.h
@ -434713,7 +434713,7 @@ index 0000000..5d95e1f
+#endif
+#endif
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8814a_xmit.h b/drivers/net/wireless/rtl8812au/include/rtl8814a_xmit.h
new file mode 100755
new file mode 100644
index 0000000..099760d
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8814a_xmit.h
@ -435914,7 +435914,7 @@ index 0000000..089f97d
+
+#endif /* _RTL8822B_HAL_H_ */
diff --git a/drivers/net/wireless/rtl8812au/include/rtl8822be_hal.h b/drivers/net/wireless/rtl8812au/include/rtl8822be_hal.h
new file mode 100755
new file mode 100644
index 0000000..8379fab
--- /dev/null
+++ b/drivers/net/wireless/rtl8812au/include/rtl8822be_hal.h
@ -496518,7 +496518,7 @@ index 0000000..d159169
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/drivers/net/wireless/rtl8814au/Makefile b/drivers/net/wireless/rtl8814au/Makefile
new file mode 100755
new file mode 100644
index 0000000..ef959e7
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/Makefile
@ -606804,7 +606804,7 @@ index 0000000..cf167a5
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.c b/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.c
new file mode 100755
new file mode 100644
index 0000000..d5c5c47
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.c
@ -611674,7 +611674,7 @@ index 0000000..d5c5c47
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.h b/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.h
new file mode 100755
new file mode 100644
index 0000000..361c443
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/btc/HalBtc8703b2Ant.h
@ -763388,7 +763388,7 @@ index 0000000..ec8c6fa
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.c b/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.c
new file mode 100755
new file mode 100644
index 0000000..8a4a273
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.c
@ -765086,7 +765086,7 @@ index 0000000..8a4a273
+
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.h b/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.h
new file mode 100755
new file mode 100644
index 0000000..a1fe97f
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/phydm_rxhp.h
@ -816551,7 +816551,7 @@ index 0000000..e9c28bf
+#define COMMIT_BY_8814A "BB_LUKE"
+#define RELEASE_VERSION_8814A 81
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.c
new file mode 100755
new file mode 100644
index 0000000..09f3fbf
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.c
@ -817362,7 +817362,7 @@ index 0000000..09f3fbf
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.h
new file mode 100755
new file mode 100644
index 0000000..a5429f1
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_bb.h
@ -817437,7 +817437,7 @@ index 0000000..a5429f1
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.c
new file mode 100755
new file mode 100644
index 0000000..dc91392
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.c
@ -824080,7 +824080,7 @@ index 0000000..dc91392
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.h
new file mode 100755
new file mode 100644
index 0000000..945819a
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_fw.h
@ -824159,7 +824159,7 @@ index 0000000..945819a
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.c
new file mode 100755
new file mode 100644
index 0000000..ed73444
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.c
@ -824451,7 +824451,7 @@ index 0000000..ed73444
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.h
new file mode 100755
new file mode 100644
index 0000000..73158b4
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_mac.h
@ -824496,7 +824496,7 @@ index 0000000..73158b4
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.c
new file mode 100755
new file mode 100644
index 0000000..29df963
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.c
@ -829966,7 +829966,7 @@ index 0000000..29df963
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.h
new file mode 100755
new file mode 100644
index 0000000..c4dd473
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halhwimg8821a_rf.h
@ -830121,7 +830121,7 @@ index 0000000..c4dd473
+#endif /* end of HWIMG_SUPPORT*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c
new file mode 100755
new file mode 100644
index 0000000..01da5a1
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.c
@ -830452,7 +830452,7 @@ index 0000000..01da5a1
+
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h
new file mode 100755
new file mode 100644
index 0000000..688a95e
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_ce.h
@ -830510,7 +830510,7 @@ index 0000000..688a95e
+#endif // #ifndef __HAL_PHY_RF_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.c
new file mode 100755
new file mode 100644
index 0000000..40d6b52
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.c
@ -831664,7 +831664,7 @@ index 0000000..40d6b52
+
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.h
new file mode 100755
new file mode 100644
index 0000000..5d239ad
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/halphyrf_8821a_win.h
@ -831742,7 +831742,7 @@ index 0000000..5d239ad
+#endif // #ifndef __HAL_PHY_RF_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c
new file mode 100755
new file mode 100644
index 0000000..382025b
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.c
@ -832623,7 +832623,7 @@ index 0000000..382025b
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h
new file mode 100755
new file mode 100644
index 0000000..8c74fec
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ap.h
@ -832677,7 +832677,7 @@ index 0000000..8c74fec
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c
new file mode 100755
new file mode 100644
index 0000000..28905fd
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.c
@ -833559,7 +833559,7 @@ index 0000000..28905fd
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h
new file mode 100755
new file mode 100644
index 0000000..f44f445
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_ce.h
@ -833613,7 +833613,7 @@ index 0000000..f44f445
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c
new file mode 100755
new file mode 100644
index 0000000..aeb4979
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.c
@ -834494,7 +834494,7 @@ index 0000000..aeb4979
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h
new file mode 100755
new file mode 100644
index 0000000..8c74fec
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_iqk_8821a_win.h
@ -834548,7 +834548,7 @@ index 0000000..8c74fec
+#endif // #ifndef __PHYDM_IQK_8821A_H__
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.c
new file mode 100755
new file mode 100644
index 0000000..c09db08
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.c
@ -834774,7 +834774,7 @@ index 0000000..c09db08
+#endif /* #if (RTL8821A_SUPPORT == 1)*/
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.h
new file mode 100755
new file mode 100644
index 0000000..a07fd74
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_regconfig8821a.h
@ -834876,7 +834876,7 @@ index 0000000..a07fd74
+#endif // end of SUPPORT
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.c b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.c
new file mode 100755
new file mode 100644
index 0000000..27bccb3
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.c
@ -834952,7 +834952,7 @@ index 0000000..27bccb3
+#endif //#if (RTL8821A_SUPPORT == 1)
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.h
new file mode 100755
new file mode 100644
index 0000000..0b5edf5
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/phydm_rtl8821a.h
@ -834987,7 +834987,7 @@ index 0000000..0b5edf5
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/version_rtl8821a.h b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/version_rtl8821a.h
new file mode 100755
new file mode 100644
index 0000000..5e10b15
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/rtl8821a/version_rtl8821a.h
@ -836942,7 +836942,7 @@ index 0000000..7efdc02
+#endif
+
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.c b/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.c
new file mode 100755
new file mode 100644
index 0000000..eff8e98
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.c
@ -837348,7 +837348,7 @@ index 0000000..eff8e98
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.h b/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.h
new file mode 100755
new file mode 100644
index 0000000..c92d79a
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/hal/phydm/txbf/haltxbf8821b.h
@ -909023,7 +909023,7 @@ index 0000000..4ab4feb
+
+#endif /* __HAL_COMMON_H__ */
diff --git a/drivers/net/wireless/rtl8814au/include/hal_data.h b/drivers/net/wireless/rtl8814au/include/hal_data.h
new file mode 100755
new file mode 100644
index 0000000..a9dd586
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/hal_data.h
@ -909806,7 +909806,7 @@ index 0000000..a9dd586
+
+#endif /* __HAL_DATA_H__ */
diff --git a/drivers/net/wireless/rtl8814au/include/hal_data.h.edited b/drivers/net/wireless/rtl8814au/include/hal_data.h.edited
new file mode 100755
new file mode 100644
index 0000000..ec59ebb
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/hal_data.h.edited
@ -924745,7 +924745,7 @@ index 0000000..a3bb7df
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8723b_hal.h b/drivers/net/wireless/rtl8814au/include/rtl8723b_hal.h
new file mode 100755
new file mode 100644
index 0000000..e6391a4
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8723b_hal.h
@ -925049,7 +925049,7 @@ index 0000000..e6391a4
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8723b_led.h b/drivers/net/wireless/rtl8814au/include/rtl8723b_led.h
new file mode 100755
new file mode 100644
index 0000000..0a7b2c9
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8723b_led.h
@ -925103,7 +925103,7 @@ index 0000000..0a7b2c9
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8723b_recv.h b/drivers/net/wireless/rtl8814au/include/rtl8723b_recv.h
new file mode 100755
new file mode 100644
index 0000000..fd9faef
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8723b_recv.h
@ -925236,7 +925236,7 @@ index 0000000..bf56dde
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8723b_spec.h b/drivers/net/wireless/rtl8814au/include/rtl8723b_spec.h
new file mode 100755
new file mode 100644
index 0000000..85b9d1e
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8723b_spec.h
@ -925573,7 +925573,7 @@ index 0000000..8067359
+#endif
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8723b_xmit.h b/drivers/net/wireless/rtl8814au/include/rtl8723b_xmit.h
new file mode 100755
new file mode 100644
index 0000000..7cc33e1
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8723b_xmit.h
@ -929367,7 +929367,7 @@ index 0000000..9fe4dfb
+#include "rtl8821a_xmit.h"
+#endif /* CONFIG_RTL8821A */
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8814a_cmd.h b/drivers/net/wireless/rtl8814au/include/rtl8814a_cmd.h
new file mode 100755
new file mode 100644
index 0000000..e2e0236
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8814a_cmd.h
@ -929565,7 +929565,7 @@ index 0000000..bb925e4
+
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8814a_hal.h b/drivers/net/wireless/rtl8814au/include/rtl8814a_hal.h
new file mode 100755
new file mode 100644
index 0000000..a2846bb
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8814a_hal.h
@ -929942,7 +929942,7 @@ index 0000000..1137a9b
+
+#endif /* __RTL8814A_LED_H__ */
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8814a_recv.h b/drivers/net/wireless/rtl8814au/include/rtl8814a_recv.h
new file mode 100755
new file mode 100644
index 0000000..e9626f3
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8814a_recv.h
@ -930178,7 +930178,7 @@ index 0000000..7b11d99
+
+#endif/* __RTL8188E_RF_H__ */
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8814a_spec.h b/drivers/net/wireless/rtl8814au/include/rtl8814a_spec.h
new file mode 100755
new file mode 100644
index 0000000..43a6381
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8814a_spec.h
@ -930870,7 +930870,7 @@ index 0000000..5d95e1f
+#endif
+#endif
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8814a_xmit.h b/drivers/net/wireless/rtl8814au/include/rtl8814a_xmit.h
new file mode 100755
new file mode 100644
index 0000000..099760d
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8814a_xmit.h
@ -932071,7 +932071,7 @@ index 0000000..089f97d
+
+#endif /* _RTL8822B_HAL_H_ */
diff --git a/drivers/net/wireless/rtl8814au/include/rtl8822be_hal.h b/drivers/net/wireless/rtl8814au/include/rtl8822be_hal.h
new file mode 100755
new file mode 100644
index 0000000..8379fab
--- /dev/null
+++ b/drivers/net/wireless/rtl8814au/include/rtl8822be_hal.h