diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/configs/debug.config | 10 | ||||
| -rw-r--r-- | kernel/configs/no_smp.config | 6 | ||||
| -rw-r--r-- | kernel/configs/ti_arm64_prune.config | 485 | ||||
| -rw-r--r-- | kernel/configs/ti_early_display.config | 185 | ||||
| -rw-r--r-- | kernel/configs/ti_multi_v7_prune.config | 173 | ||||
| -rw-r--r-- | kernel/configs/ti_rt.config | 188 | ||||
| -rw-r--r-- | kernel/dma/coherent.c | 7 | ||||
| -rw-r--r-- | kernel/reboot.c | 3 |
8 files changed, 1056 insertions, 1 deletions
diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config index e8db8d938661..c636510201ec 100644 --- a/kernel/configs/debug.config +++ b/kernel/configs/debug.config @@ -104,3 +104,13 @@ CONFIG_BRANCH_PROFILE_NONE=y CONFIG_DYNAMIC_FTRACE=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y + +# +# Power Management +# +CONFIG_PM_DEBUG=y + +# +# Crypto Libraries +# +CONFIG_CRYPTO_TEST=m diff --git a/kernel/configs/no_smp.config b/kernel/configs/no_smp.config new file mode 100644 index 000000000000..676f99d16b6d --- /dev/null +++ b/kernel/configs/no_smp.config @@ -0,0 +1,6 @@ +################################################## +# NO SMP Config +################################################## + +CONFIG_SMP=n +CONFIG_CPUSETS=n diff --git a/kernel/configs/ti_arm64_prune.config b/kernel/configs/ti_arm64_prune.config new file mode 100644 index 000000000000..ad41cda81c7d --- /dev/null +++ b/kernel/configs/ti_arm64_prune.config @@ -0,0 +1,485 @@ +# Add config flags here that appear in the multi_v7_defconfig but are not +# used by a kernel targetting only the currently supported TI EVMs + +# Non-TI Architectures +CONFIG_ARCH_ACTIONS=n +CONFIG_ARCH_SUNXI=n +CONFIG_ARCH_AGILEX=n +CONFIG_ARCH_ALPINE=n +CONFIG_ARCH_APPLE=n +CONFIG_ARCH_BCM=n +CONFIG_ARCH_BCM2835=n +CONFIG_ARCH_BCM_IPROC=n +CONFIG_ARCH_BCMBCA=n +CONFIG_ARCH_BERLIN=n +CONFIG_ARCH_BRCMSTB=n +CONFIG_ARCH_EXYNOS=n +CONFIG_ARCH_LAYERSCAPE=n +CONFIG_ARCH_LG1K=n +CONFIG_ARCH_HISI=n +CONFIG_ARCH_KEEMBAY=n +CONFIG_ARCH_MEDIATEK=n +CONFIG_ARCH_MESON=n +CONFIG_ARCH_MVEBU=n +CONFIG_ARCH_NXP=n +CONFIG_ARCH_MXC=n +CONFIG_ARCH_NPCM=n +CONFIG_ARCH_QCOM=n +CONFIG_ARCH_ROCKCHIP=n +CONFIG_ARCH_SEATTLE=n +CONFIG_ARCH_RENESAS=n +CONFIG_ARCH_R8A7795=n +CONFIG_ARCH_R8A7796=n +CONFIG_ARCH_S32=n +CONFIG_ARCH_STRATIX10=n +CONFIG_ARCH_INTEL_SOCFPGA=n +CONFIG_ARCH_SYNQUACER=n +CONFIG_ARCH_TEGRA=n +CONFIG_ARCH_SPRD=n +CONFIG_ARCH_THUNDER=n +CONFIG_ARCH_THUNDER2=n +CONFIG_ARCH_UNIPHIER=n +CONFIG_ARCH_VEXPRESS=n +CONFIG_ARCH_VISCONTI=n +CONFIG_ARCH_XGENE=n +CONFIG_ARCH_ZX=n +CONFIG_ARCH_ZYNQMP=n +CONFIG_ARCH_TEGRA_132_SOC=n +CONFIG_ARCH_TEGRA_210_SOC=n +CONFIG_ARCH_TEGRA_186_SOC=n + +CONFIG_QCOM_FALKOR_ERRATUM_1003=n +CONFIG_QCOM_FALKOR_ERRATUM_1009=n +CONFIG_QCOM_QDF2400_ERRATUM_0065=n +CONFIG_QCOM_FALKOR_ERRATUM_E1041=n + +CONFIG_CAVIUM_ERRATUM_22375=n +CONFIG_CAVIUM_ERRATUM_23144=n +CONFIG_CAVIUM_ERRATUM_23154=n +CONFIG_CAVIUM_ERRATUM_27456=n +CONFIG_CAVIUM_ERRATUM_30115=n + +CONFIG_HISILICON_ERRATUM_161600802=n + +# Disable Errata fixes not relevant for Cortex A53 and Cortext A72 cores. +# The Socionext Synquacer GICv3 pre-ITS workaround is used on K3 devices +# as well, thats why its left enabled. +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=n +CONFIG_ARM64_ERRATUM_832075=n +CONFIG_ARM64_ERRATUM_1024718=n +CONFIG_ARM64_ERRATUM_1418040=n +CONFIG_ARM64_ERRATUM_1165522=n +CONFIG_ARM64_ERRATUM_1530923=n +CONFIG_ARM64_ERRATUM_2441007=n +CONFIG_ARM64_ERRATUM_1286807=n +CONFIG_ARM64_ERRATUM_1463225=n +CONFIG_ARM64_ERRATUM_1542419=n +CONFIG_ARM64_ERRATUM_1508412=n +CONFIG_ARM64_ERRATUM_2051678=n +CONFIG_ARM64_ERRATUM_2077057=n +CONFIG_ARM64_ERRATUM_2658417=n +CONFIG_ARM64_ERRATUM_2054223=n +CONFIG_ARM64_ERRATUM_2067961=n +CONFIG_ARM64_ERRATUM_2441009=n +CONFIG_CAVIUM_TX2_ERRATUM_219=n +CONFIG_FUJITSU_ERRATUM_010001=n +CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=n + +# Serial +CONFIG_SERIAL_8250_FSL=n +CONFIG_SERIAL_8250_DW=n +CONFIG_SERIAL_AMBA_PL011=n +CONFIG_SERIAL_AMBA_PL011_CONSOLE=n +CONFIG_SERIAL_XILINX_PS_UART=n +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=n + +CONFIG_ARM_SCPI_PROTOCOL=n +CONFIG_ARM_SCPI_POWER_DOMAIN=n +CONFIG_ARM_SCPI_CPUFREQ=n +CONFIG_SENSORS_ARM_SCPI=n +CONFIG_COMMON_CLK_SCPI=n + +CONFIG_ARM_MHU=n +CONFIG_PLATFORM_MHU=n + +CONFIG_ACPI=n + +CONFIG_NUMA=n + +CONFIG_XEN=n +CONFIG_KVM=n + +CONFIG_ARM_BIG_LITTLE_CPUFREQ=n + +CONFIG_PCI_XGENE=n +CONFIG_PCI_HISI=n +CONFIG_PCIE_KIRIN=n + +# DRM +CONFIG_DRM_NOUVEAU=n +CONFIG_DRM_I2C_ADV7511=n +CONFIG_DRM_ETNAVIV=n +CONFIG_DRM_HISI_HIBMC=n +CONFIG_DRM_HISI_KIRIN=n +CONFIG_DRM_MXSFB=n +CONFIG_DRM_PL111=n +CONFIG_DRM_LIMA=n +CONFIG_DRM_PANFROST=n + +# Video +CONFIG_VGA_ARB=n +CONFIG_FB_EFI=n + +# V4L2 +CONFIG_RC_CORE=n + +# Sound +CONFIG_SND_SPI=n +CONFIG_SND_SOC_FSL_SAI=n +CONFIG_SND_SOC_AK4613=n +CONFIG_SND_SOC_ES7134=n +CONFIG_SND_SOC_ES7241=n +CONFIG_SND_SOC_TAS571X=n + +# USB +CONFIG_USB_MUSB_HDRC=n +CONFIG_USB_DWC2=n +CONFIG_USB_CHIPIDEA=n +CONFIG_USB_ISP1760=n +CONFIG_USB_HSIC_USB3503=n + +# Generic kernel + +# We recommend to turn off Real-Time group scheduling in the +# kernel when using systemd. RT group scheduling effectively +# makes RT scheduling unavailable for most userspace, since it +# requires explicit assignment of RT budgets to each unit whose +# processes making use of RT. As there's no sensible way to +# assign these budgets automatically this cannot really be +# fixed, and it's best to disable group scheduling hence. +CONFIG_RT_GROUP_SCHED=n + +# Remove debug features. +CONFIG_SLUB_DEBUG=n + +# We are not a crash kernel +CONFIG_CRASH_DUMP=n + +# ARM Scalable Vector Extension (SVE) is available only with ARMv8.2-A +# and above. Since current TI SoCs are based on ARMv8.0, disable SVE +CONFIG_ARM64_SVE=n + +# Plan 9 is a distributed resource sharing protocol thats not +# typically used on TI processors +CONFIG_NET_9P=n + +# Non-TI hardware vendor specific drivers +CONFIG_KEYBOARD_CROS_EC=n +CONFIG_I2C_CROS_EC_TUNNEL=n +CONFIG_QRTR=n +CONFIG_SPI_NXP_FLEXSPI=n +CONFIG_GPIO_ALTERA=n +CONFIG_GPIO_DWAPB=n +CONFIG_GPIO_MB86S7X=n +CONFIG_GPIO_PL061=n +CONFIG_GPIO_XGENE=n +CONFIG_POWER_RESET_XGENE=n +CONFIG_ARM_SP805_WATCHDOG=n +CONFIG_ARM_SBSA_WATCHDOG=n +CONFIG_DW_WATCHDOG=n +CONFIG_MFD_SEC_CORE=n +CONFIG_REGULATOR_QCOM_SPMI=n +CONFIG_DRM_MALI_DISPLAY=n +CONFIG_DRM_RCAR_DW_HDMI=n +CONFIG_DRM_DW_HDMI_AHB_AUDIO=n +CONFIG_DRM_DW_HDMI_CEC=n +CONFIG_FB_SSD1307=n +CONFIG_MMC_ARMMMCI=n +CONFIG_MMC_SDHCI_XENON=n +CONFIG_RTC_DRV_S5M=n +CONFIG_RTC_DRV_CROS_EC=n +CONFIG_RTC_DRV_PL031=n +CONFIG_FSL_EDMA=n +CONFIG_MV_XOR_V2=n +CONFIG_PL330_DMA=n +CONFIG_QCOM_HIDMA_MGMT=n +CONFIG_QCOM_HIDMA=n +CONFIG_CHROME_PLATFORMS=n +CONFIG_CROS_EC=n +CONFIG_CROS_EC_I2C=n +CONFIG_CROS_EC_SPI=n +CONFIG_CROS_EC_CHARDEV=n +CONFIG_SURFACE_PLATFORMS=n +CONFIG_COMMON_CLK_S2MPS11=n +CONFIG_COMMON_CLK_VC5=n +CONFIG_COMMON_CLK_BD718XX=n +CONFIG_FSL_ERRATUM_A008585=n +CONFIG_HISILICON_ERRATUM_161010101=n +CONFIG_RPMSG_QCOM_GLINK_RPM=n +CONFIG_SOUNDWIRE_QCOM=n +CONFIG_EXTCON_USBC_CROS_EC=n +CONFIG_QCOM_SPMI_ADC5=n +CONFIG_IIO_CROS_EC_SENSORS_CORE=n +CONFIG_IIO_CROS_EC_SENSORS=n +CONFIG_IIO_CROS_EC_LIGHT_PROX=n +CONFIG_IIO_CROS_EC_BARO=n +CONFIG_PWM_CROS_EC=n +CONFIG_SLIM_QCOM_CTRL=n +CONFIG_SPI_PL022=n +CONFIG_SLIMBUS=n +CONFIG_REGMAP_SLIMBUS=n +CONFIG_SCSI_HISI_SAS=n +CONFIG_AHCI_CEVA=n +CONFIG_AHCI_XGENE=n +CONFIG_AHCI_QORIQ=n +CONFIG_SATA_SIL24=n +CONFIG_BCMGENET=n +CONFIG_SYSTEMPORT=n +CONFIG_HNS_DSAF=n +CONFIG_HNS_ENET=n +CONFIG_HNS3=n +CONFIG_NET_VENDOR_NVIDIA=n +CONFIG_NET_VENDOR_RENESAS=n +CONFIG_NET_VENDOR_SAMSUNG=n +CONFIG_NET_VENDOR_STMICRO=n +CONFIG_NET_VENDOR_XILINX=n +CONFIG_BROADCOM_PHY=n +CONFIG_BCM54140_PHY=n +CONFIG_ROCKCHIP_PHY=n +CONFIG_PCS_XPCS=n +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=n +CONFIG_HW_RANDOM_CN10K=n +CONFIG_I2C_CADENCE=n +CONFIG_I2C_DESIGNWARE_SLAVE=n +CONFIG_I2C_DESIGNWARE_PLATFORM=n +CONFIG_I2C_RK3X=n +CONFIG_PINCTRL_MAX77620=n +CONFIG_DRM_RCAR_USE_LVDS=n +CONFIG_DRM_RCAR_USE_MIPI_DSI=n +CONFIG_SND_SOC_FSL_ASRC=n +CONFIG_SND_SOC_FSL_AUDMIX=n +CONFIG_SND_SOC_FSL_SSI=n +CONFIG_SND_SOC_FSL_SPDIF=n +CONFIG_SND_SOC_FSL_ESAI=n +CONFIG_SND_SOC_FSL_MICFIL=n +CONFIG_SND_SOC_IMX_AUDMUX=n +CONFIG_MMC_SDHCI_OF_DWCMSHC=n +CONFIG_MMC_SDHCI_CADENCE=n +CONFIG_MMC_SDHCI_F_SDH30=n +CONFIG_MMC_DW=n +CONFIG_MMC_MTK=n +CONFIG_PCIE_ALTERA=n +CONFIG_PCI_HOST_THUNDER_PEM=n +CONFIG_PCI_HOST_THUNDER_ECAM=n +CONFIG_PCI_MESON=n +CONFIG_BRCMSTB_GISB_ARB=n +CONFIG_VEXPRESS_CONFIG=n +CONFIG_MTD_NAND_DENALI_DT=n +CONFIG_MTD_NAND_BRCMNAND=n +CONFIG_B53=n +CONFIG_NET_DSA_BCM_SF2=n +CONFIG_CAN_FLEXCAN=n +CONFIG_SPI_DESIGNWARE=n +CONFIG_SPI_ROCKCHIP=n +CONFIG_DRM_HDLCD=n +CONFIG_DRM_KOMEDA=n +CONFIG_COMMON_CLK_RK808=n +CONFIG_COMMON_CLK_XGENE=n +CONFIG_SOC_BRCMSTB=n +CONFIG_NET_VENDOR_ALACRITECH=n +CONFIG_NET_VENDOR_AMAZON=n +CONFIG_NET_VENDOR_AMD=n +CONFIG_NET_VENDOR_AQUANTIA=n +CONFIG_NET_VENDOR_ARC=n +CONFIG_NET_VENDOR_ASIX=n +CONFIG_NET_VENDOR_CORTINA=n +CONFIG_NET_VENDOR_DAVICOM=n +CONFIG_NET_VENDOR_ENGLEDER=n +CONFIG_NET_VENDOR_EZCHIP=n +CONFIG_NET_VENDOR_GOOGLE=n +CONFIG_NET_VENDOR_HISILICON=n +CONFIG_NET_VENDOR_LITEX=n +CONFIG_NET_VENDOR_MICREL=n +CONFIG_NET_VENDOR_MICROCHIP=n +CONFIG_NET_VENDOR_MICROSEMI=n +CONFIG_NET_VENDOR_NATSEMI=n +CONFIG_NET_VENDOR_NI=n +CONFIG_NET_VENDOR_QUALCOMM=n +CONFIG_NET_VENDOR_ROCKER=n +CONFIG_NET_VENDOR_SEEQ=n +CONFIG_NET_VENDOR_SMSC=n +CONFIG_NET_VENDOR_SOCIONEXT=n +CONFIG_NET_VENDOR_SOLARFLARE=n +CONFIG_NET_VENDOR_SYNOPSYS=n +CONFIG_NET_VENDOR_VERTEXCOM=n +CONFIG_NET_VENDOR_VIA=n +CONFIG_NET_VENDOR_WANGXUN=n +CONFIG_NET_VENDOR_WIZNET=n +CONFIG_NET_VENDOR_BROADCOM=n +CONFIG_NET_VENDOR_MICROSOFT=n +CONFIG_NET_VENDOR_FUNGIBLE=n +CONFIG_NET_VENDOR_CAVIUM=n +CONFIG_NET_VENDOR_PENSANDO=n +CONFIG_NET_VENDOR_CADENCE=n +CONFIG_NET_VENDOR_MELLANOX=n +CONFIG_NET_VENDOR_NETRONOME=n +CONFIG_NET_VENDOR_MARVELL=n +CONFIG_NET_VENDOR_INTEL=n +CONFIG_NET_VENDOR_HUAWEI=n + +# Serial Power Management Interface (SPMI) has not been used on TI +# platforms (yet) +CONFIG_SPMI=n + +# DVB and TV tuner cards are rarely used on TI platforms, if at all +CONFIG_CXD2880_SPI_DRV=n +CONFIG_MEDIA_TUNER_E4000=n +CONFIG_MEDIA_TUNER_FC0011=n +CONFIG_MEDIA_TUNER_FC0012=n +CONFIG_MEDIA_TUNER_FC0013=n +CONFIG_MEDIA_TUNER_FC2580=n +CONFIG_MEDIA_TUNER_IT913X=n +CONFIG_MEDIA_TUNER_M88RS6000T=n +CONFIG_MEDIA_TUNER_MAX2165=n +CONFIG_MEDIA_TUNER_MC44S803=n +CONFIG_MEDIA_TUNER_MSI001=n +CONFIG_MEDIA_TUNER_MT2060=n +CONFIG_MEDIA_TUNER_MT2063=n +CONFIG_MEDIA_TUNER_MT20XX=n +CONFIG_MEDIA_TUNER_MT2131=n +CONFIG_MEDIA_TUNER_MT2266=n +CONFIG_MEDIA_TUNER_MXL301RF=n +CONFIG_MEDIA_TUNER_MXL5005S=n +CONFIG_MEDIA_TUNER_MXL5007T=n +CONFIG_MEDIA_TUNER_QM1D1B0004=n +CONFIG_MEDIA_TUNER_QM1D1C0042=n +CONFIG_MEDIA_TUNER_QT1010=n +CONFIG_MEDIA_TUNER_R820T=n +CONFIG_MEDIA_TUNER_SI2157=n +CONFIG_MEDIA_TUNER_SIMPLE=n +CONFIG_MEDIA_TUNER_TDA18212=n +CONFIG_MEDIA_TUNER_TDA18218=n +CONFIG_MEDIA_TUNER_TDA18250=n +CONFIG_MEDIA_TUNER_TDA18271=n +CONFIG_MEDIA_TUNER_TDA827X=n +CONFIG_MEDIA_TUNER_TDA8290=n +CONFIG_MEDIA_TUNER_TDA9887=n +CONFIG_MEDIA_TUNER_TEA5761=n +CONFIG_MEDIA_TUNER_TEA5767=n +CONFIG_MEDIA_TUNER_TUA9001=n +CONFIG_MEDIA_TUNER_XC2028=n +CONFIG_MEDIA_TUNER_XC4000=n +CONFIG_MEDIA_TUNER_XC5000=n +CONFIG_DVB_M88DS3103=n +CONFIG_DVB_MXL5XX=n +CONFIG_DVB_STB0899=n +CONFIG_DVB_STB6100=n +CONFIG_DVB_STV090x=n +CONFIG_DVB_STV0910=n +CONFIG_DVB_STV6110x=n +CONFIG_DVB_STV6111=n +CONFIG_DVB_DRXK=n +CONFIG_DVB_MN88472=n +CONFIG_DVB_MN88473=n +CONFIG_DVB_SI2165=n +CONFIG_DVB_TDA18271C2DD=n +CONFIG_DVB_CX24110=n +CONFIG_DVB_CX24116=n +CONFIG_DVB_CX24117=n +CONFIG_DVB_CX24120=n +CONFIG_DVB_CX24123=n +CONFIG_DVB_DS3000=n +CONFIG_DVB_MB86A16=n +CONFIG_DVB_MT312=n +CONFIG_DVB_S5H1420=n +CONFIG_DVB_SI21XX=n +CONFIG_DVB_STB6000=n +CONFIG_DVB_STV0288=n +CONFIG_DVB_STV0299=n +CONFIG_DVB_STV0900=n +CONFIG_DVB_STV6110=n +CONFIG_DVB_TDA10071=n +CONFIG_DVB_TDA10086=n +CONFIG_DVB_TDA8083=n +CONFIG_DVB_TDA8261=n +CONFIG_DVB_TDA826X=n +CONFIG_DVB_TS2020=n +CONFIG_DVB_TUA6100=n +CONFIG_DVB_TUNER_CX24113=n +CONFIG_DVB_TUNER_ITD1000=n +CONFIG_DVB_VES1X93=n +CONFIG_DVB_ZL10036=n +CONFIG_DVB_ZL10039=n +CONFIG_DVB_AF9013=n +CONFIG_DVB_CX22700=n +CONFIG_DVB_CX22702=n +CONFIG_DVB_CXD2820R=n +CONFIG_DVB_CXD2841ER=n +CONFIG_DVB_DIB3000MB=n +CONFIG_DVB_DIB3000MC=n +CONFIG_DVB_DIB7000M=n +CONFIG_DVB_DIB7000P=n +CONFIG_DVB_DIB9000=n +CONFIG_DVB_DRXD=n +CONFIG_DVB_EC100=n +CONFIG_DVB_L64781=n +CONFIG_DVB_MT352=n +CONFIG_DVB_NXT6000=n +CONFIG_DVB_RTL2830=n +CONFIG_DVB_RTL2832=n +CONFIG_DVB_RTL2832_SDR=n +CONFIG_DVB_S5H1432=n +CONFIG_DVB_SI2168=n +CONFIG_DVB_SP887X=n +CONFIG_DVB_STV0367=n +CONFIG_DVB_TDA10048=n +CONFIG_DVB_TDA1004X=n +CONFIG_DVB_ZD1301_DEMOD=n +CONFIG_DVB_ZL10353=n +CONFIG_DVB_CXD2880=n +CONFIG_DVB_STV0297=n +CONFIG_DVB_TDA10021=n +CONFIG_DVB_TDA10023=n +CONFIG_DVB_VES1820=n +CONFIG_DVB_AU8522_DTV=n +CONFIG_DVB_AU8522_V4L=n +CONFIG_DVB_BCM3510=n +CONFIG_DVB_LG2160=n +CONFIG_DVB_LGDT3305=n +CONFIG_DVB_LGDT3306A=n +CONFIG_DVB_LGDT330X=n +CONFIG_DVB_MXL692=n +CONFIG_DVB_NXT200X=n +CONFIG_DVB_OR51132=n +CONFIG_DVB_OR51211=n +CONFIG_DVB_S5H1409=n +CONFIG_DVB_S5H1411=n +CONFIG_DVB_DIB8000=n +CONFIG_DVB_MB86A20S=n +CONFIG_DVB_S921=n +CONFIG_DVB_MN88443X=n +CONFIG_DVB_TC90522=n +CONFIG_DVB_PLL=n +CONFIG_DVB_TUNER_DIB0070=n +CONFIG_DVB_TUNER_DIB0090=n +CONFIG_DVB_A8293=n +CONFIG_DVB_AF9033=n +CONFIG_DVB_ASCOT2E=n +CONFIG_DVB_ATBM8830=n +CONFIG_DVB_HELENE=n +CONFIG_DVB_HORUS3A=n +CONFIG_DVB_ISL6405=n +CONFIG_DVB_ISL6421=n +CONFIG_DVB_ISL6423=n +CONFIG_DVB_IX2505V=n +CONFIG_DVB_LGS8GL5=n +CONFIG_DVB_LGS8GXX=n +CONFIG_DVB_LNBH25=n +CONFIG_DVB_LNBH29=n +CONFIG_DVB_LNBP21=n +CONFIG_DVB_LNBP22=n +CONFIG_DVB_M88RS2000=n +CONFIG_DVB_TDA665x=n +CONFIG_DVB_DRX39XYJ=n +CONFIG_DVB_CXD2099=n +CONFIG_DVB_SP2=n diff --git a/kernel/configs/ti_early_display.config b/kernel/configs/ti_early_display.config new file mode 100644 index 000000000000..372bc0f9ccc9 --- /dev/null +++ b/kernel/configs/ti_early_display.config @@ -0,0 +1,185 @@ +################################################## +# TI Early Display configs +################################################## + +# Time measurements were perfomed on AM62x-SK and AM62Px-SK + +# Configurations that add to boot time have to be reduced +# in order for display to come up as fast as possible + +### Necessary reduction ### + +# This config adds support for a virtual file system +# that developers use to put debugging files into +# +# This reduces kernel image size by 335.9KB and boot time by 48ms +CONFIG_DEBUG_FS=n + +# This config adds support for normal Windows file systems +# +# This reduces kernel image size by 131.1KB and boot time by 32ms +CONFIG_VFAT_FS=m + +# Kernel can apply read-only permissions to linear aliases of VM areas. This +# provides extra layer of protection against advertent/inadvertent modification +# of read-only data through the linear alias. While its a useful security +# feature, it has a performance impact. +# +#This reduces kernel image size by 0KB and boot time by 144ms +CONFIG_RODATA_FULL_DEFAULT_ENABLED=n + +# Remove SPI support +# +# This reduces kernel image size by 208.9KB and reduces boot time by 16ms +CONFIG_SPI=n + +# This adds support for PTP support used to precisely synchronize +# distributed clocks over Ethernet networks +# +# This reduces kernel image size by 69.6KB and reduces boot time by 64ms +CONFIG_PTP_1588_CLOCK=m + +# Remove MMC support +# +# This reduces kernel image size by 137.2KB and reduces boot time by 32ms +CONFIG_MMC=m + + +### Additional reduction ### + +# These configs reduce boot time by 64ms +CONFIG_PPS=m +CONFIG_PSTORE=m +CONFIG_CPU_FREQ=n + +CONFIG_OVERLAY_FS=n +CONFIG_SQUASHFS=m + +CONFIG_COMMON_CLK_SCMI=m +CONFIG_RESET_SCMI=m + +CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_XGENE=m +CONFIG_REALTEK_PHY=m + +CONFIG_REGULATOR_AXP20X=m +CONFIG_MEDIA_CEC_SUPPORT=n +CONFIG_TCG_TPM=m + +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_COMPLEX_MAPPINGS=n +CONFIG_MTD_RAW_NAND=m + +CONFIG_MULTIPLEXER=m +CONFIG_MUX_MMIO=m +CONFIG_SECTION_MISMATCH_WARN_ONLY=n + +CONFIG_KEXEC=n +CONFIG_KEXEC_FILE=n +CONFIG_TASKSTATS=n +CONFIG_ATA=m + +CONFIG_RUNTIME_TESTING_MENU=n +CONFIG_STACKTRACE=n +CONFIG_SYMBOLIC_ERRNAME=n +CONFIG_INDIRECT_PIO=n +CONFIG_QUOTA=n + +# Disable ARMv8.1+ architecture features. TI K3 processors +# are based on ARMv8.0, and these features are not applicable. +CONFIG_ARM64_CNP=n +CONFIG_ARM64_HW_AFDBM=n +CONFIG_ARM64_PAN=n +CONFIG_ARM64_RAS_EXTN=n +CONFIG_ARM64_USE_LSE_ATOMICS=n +# End of architecture features + +CONFIG_SOCIONEXT_SYNQUACER_PREITS=n +CONFIG_MEMORY_HOTPLUG=n + +CONFIG_BSD_PROCESS_ACCT=n +CONFIG_CPU_ISOLATION=n +CONFIG_IRQ_TIME_ACCOUNTING=n +CONFIG_POSIX_MQUEUE=n +CONFIG_PROFILING=n + +CONFIG_RD_BZIP2=n +CONFIG_RD_LZ4=n +CONFIG_RD_LZMA=n +CONFIG_RD_LZO=n +CONFIG_RD_XZ=n +CONFIG_RD_ZSTD=n + +CONFIG_EXTCON=m +CONFIG_FPGA=m +CONFIG_HWMON=m +CONFIG_HWSPINLOCK=n +CONFIG_I2C_ALGOBIT=m +CONFIG_IIO=m +CONFIG_INTERCONNECT=n +CONFIG_MD=n +CONFIG_MEMORY=n +CONFIG_NEW_LEDS=n +CONFIG_PCI=n +CONFIG_PWM=n +CONFIG_RTC_CLASS=n +CONFIG_SOUND=m + +CONFIG_STAGING=n +CONFIG_THERMAL=n +CONFIG_USB_SUPPORT=n +CONFIG_VFIO=m +CONFIG_VHOST_MENU=n +CONFIG_VIRTIO_MENU=n +CONFIG_AT803X_PHY=m +CONFIG_FSL_RCPM=n +CONFIG_INPUT_MATRIXKMAP=m +CONFIG_INPUT_MISC=n +CONFIG_INPUT_MOUSE=n +CONFIG_INPUT_TOUCHSCREEN=n +CONFIG_MDIO_BUS_MUX_MMIOREG=m +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m +CONFIG_MICROSEMI_PHY=m +CONFIG_MOTORCOMM_PHY=m + +CONFIG_PHY_AM654_SERDES=m +CONFIG_PHY_CADENCE_TORRENT=m + +CONFIG_RESET_SIMPLE=n +CONFIG_RPMSG_KDRV=m +CONFIG_RPMSG_KDRV_ETH_SWITCH=m +CONFIG_RPMSG_VIRTIO=m +CONFIG_SCSI=m +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_LIBPS2=m +CONFIG_TUN=m +CONFIG_VIRTIO_NET=m +CONFIG_VITESSE_PHY=m +CONFIG_WLAN=n +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_I2C_SLAVE=n + +CONFIG_MFD_HI6421_PMIC=m +CONFIG_MFD_MAX77620=n +CONFIG_MFD_MT6397=m +CONFIG_MFD_RK808=m +CONFIG_MFD_ROHM_BD718XX=m +CONFIG_POWER_RESET_BRCMSTB=n + +CONFIG_REGULATOR_BD9571MWV=m +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_MP8859=m +CONFIG_REGULATOR_PCA9450=m +CONFIG_REGULATOR_PF8X00=m +CONFIG_REGULATOR_PFUZE100=m +CONFIG_REGULATOR_TPS65219=m +CONFIG_SERIAL_FSL_LINFLEXUART=m +CONFIG_SERIAL_FSL_LPUART=m + +# These configs enable Display drivers and add 600KB to the kernel Image +CONFIG_DRM=y +CONFIG_DRM_TIDSS=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_FRAMEBUFFER_CONSOLE=n +CONFIG_LOGO=n diff --git a/kernel/configs/ti_multi_v7_prune.config b/kernel/configs/ti_multi_v7_prune.config new file mode 100644 index 000000000000..8f1a38fca68a --- /dev/null +++ b/kernel/configs/ti_multi_v7_prune.config @@ -0,0 +1,173 @@ +# Add config flags here that appear in the multi_v7_defconfig but are not +# used by a kernel targetting only the currently supported TI EVMs + +# Non-TI Architectures +CONFIG_ARCH_ACTIONS=n +CONFIG_ARCH_AIROHA=n +CONFIG_ARCH_ALPINE=n +CONFIG_ARCH_ARTPEC=n +CONFIG_ARCH_ASPEED=n +CONFIG_ARCH_AT91=n +CONFIG_ARCH_BCM=n +CONFIG_ARCH_BCM_CYGNUS=n +CONFIG_ARCH_BCM_NSP=n +CONFIG_ARCH_BCM_5301X=n +CONFIG_ARCH_BCM_281XX=n +CONFIG_ARCH_BCM_21664=n +CONFIG_ARCH_BRCMSTB=n +CONFIG_ARCH_BERLIN=n +CONFIG_ARCH_DIGICOLOR=n +CONFIG_ARCH_HIGHBANK=n +CONFIG_ARCH_HISI=n +CONFIG_ARCH_HI3xxx=n +CONFIG_ARCH_HIP01=n +CONFIG_ARCH_HIP04=n +CONFIG_ARCH_HIX5HD2=n +CONFIG_ARCH_HPE=n +CONFIG_ARCH_MESON=n +CONFIG_ARCH_MXC=n +CONFIG_ARCH_MEDIATEK=n +CONFIG_ARCH_MILBEAUT=n +CONFIG_ARCH_QCOM=n +CONFIG_ARCH_MMP=n +CONFIG_ARCH_MSM8X60=n +CONFIG_ARCH_MSM8960=n +CONFIG_ARCH_MSM8974=n +CONFIG_ARCH_ROCKCHIP=n +CONFIG_ARCH_SOCFPGA=n +CONFIG_ARCH_SPEAR13XX=n +CONFIG_ARCH_STI=n +CONFIG_ARCH_EXYNOS=n +CONFIG_ARCH_SHMOBILE_MULTI=n +CONFIG_ARCH_EMEV2=n +CONFIG_ARCH_R7S72100=n +CONFIG_ARCH_R8A73A4=n +CONFIG_ARCH_R8A7740=n +CONFIG_ARCH_R8A7778=n +CONFIG_ARCH_R8A7779=n +CONFIG_ARCH_R8A7790=n +CONFIG_ARCH_R8A7791=n +CONFIG_ARCH_R8A7793=n +CONFIG_ARCH_R8A7794=n +CONFIG_ARCH_RENESAS=n +CONFIG_ARCH_SH73A0=n +CONFIG_ARCH_SUNXI=n +CONFIG_ARCH_STM32=n +CONFIG_ARCH_SIRF=n +CONFIG_ARCH_TEGRA=n +CONFIG_ARCH_TEGRA_2x_SOC=n +CONFIG_ARCH_TEGRA_3x_SOC=n +CONFIG_ARCH_TEGRA_114_SOC=n +CONFIG_ARCH_TEGRA_124_SOC=n +CONFIG_ARCH_UNIPHIER=n +CONFIG_ARCH_U8500=n +CONFIG_ARCH_VEXPRESS=n +CONFIG_ARCH_VEXPRESS_TC2_PM=n +CONFIG_ARCH_WM8850=n +CONFIG_ARCH_ZYNQ=n +CONFIG_ARCH_VIRT=n +CONFIG_ARCH_MVEBU=n +CONFIG_PLAT_SPEAR=n +CONFIG_CHROME_PLATFORMS=n +CONFIG_ARCH_INTEL_SOCFPGA=n +CONFIG_ARCH_SUNPLUS=n + +# Multifunction device drivers +CONFIG_MFD_AS3711=n +CONFIG_MFD_AS3722=n +CONFIG_MFD_ATMEL_FLEXCOM=n +CONFIG_MFD_ATMEL_HLCDC=n +CONFIG_MFD_BCM590XX=n +CONFIG_MFD_AXP20X_I2C=n +CONFIG_MFD_DA9063=n +CONFIG_MFD_MAX14577=n +CONFIG_MFD_MAX77686=n +CONFIG_MFD_MAX77693=n +CONFIG_MFD_MAX8907=n +CONFIG_MFD_MAX8997=n +CONFIG_MFD_MAX8998=n +CONFIG_MFD_PM8XXX=n +CONFIG_MFD_RK808=n +CONFIG_MFD_RN5T618=n +CONFIG_MFD_SEC_CORE=n +CONFIG_MFD_STMPE=n + +# Regulators +CONFIG_REGULATOR_ACT8865=n +CONFIG_REGULATOR_DA9210=n +CONFIG_REGULATOR_FAN53555=n +CONFIG_REGULATOR_LP872X=n +CONFIG_REGULATOR_MAX8952=n +CONFIG_REGULATOR_MAX8973=n +CONFIG_REGULATOR_PWM=n +CONFIG_REGULATOR_TPS51632=n +CONFIG_REGULATOR_TWL4030=n + +# RTC drivers +CONFIG_RTC_DRV_HYM8563=n +CONFIG_RTC_DRV_RS5C372=n +CONFIG_RTC_DRV_BQ32K=n +CONFIG_RTC_DRV_S35390A=n +CONFIG_RTC_DRV_RX8581=n +CONFIG_RTC_DRV_EM3027=n + +# Watchdog Device Drivers +CONFIG_XILINX_WATCHDOG=n +CONFIG_DW_WATCHDOG=n + +# GPIO +CONFIG_GPIO_DWAPB=n +CONFIG_GPIO_XILINX=n +CONFIG_GPIO_TPS6586X=n + +# Sound +CONFIG_SND_ARM=n +CONFIG_SND_SPI=n +CONFIG_SND_ATMEL_SOC=n +CONFIG_SND_SOC_FSL_SAI=n +CONFIG_SND_SOC_AK4642=n +CONFIG_SND_SOC_CPCAP=n +CONFIG_SND_SOC_SGTL5000=n +CONFIG_SND_SOC_STI_SAS=n +CONFIG_SND_SOC_WM8978=n + +# DRM +CONFIG_VGA_ARB=n +CONFIG_DRM_I2C_ADV7511=n +CONFIG_DRM_NOUVEAU=n +CONFIG_DRM_EXYNOS=n +CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=n +CONFIG_DRM_NXP_PTN3460=n +CONFIG_DRM_PARADE_PS8622=n +CONFIG_DRM_STI=n +CONFIG_DRM_PANEL_SAMSUNG_LD9040=n +CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=n +CONFIG_DRM_DUMB_VGA_DAC=n +CONFIG_DRM_HISI_KIRIN=n +CONFIG_DRM_RCAR_LVDS=n +CONFIG_DRM_FSL_DCU=n +CONFIG_DRM_SII9234=n +CONFIG_DRM_MXSFB=n +CONFIG_DRM_HISI_HIBMC=n +CONFIG_DRM_ATMEL_HLCDC=n +CONFIG_DRM_STM=n +CONFIG_DRM_PANEL_ORISETECH_OTM8009A=n +CONFIG_DRM_PANEL_RAYDIUM_RM68200=n +CONFIG_DRM_TOSHIBA_TC358764=n +CONFIG_DRM_ETNAVIV=n +CONFIG_DRM_PL111=n +CONFIG_DRM_LIMA=n +CONFIG_DRM_PANFROST=n + +# Video +CONFIG_LCD_CLASS_DEVICE=n +CONFIG_FB_EFI=n +CONFIG_FB_SIMPLE=n +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=n +CONFIG_FB_ARMCLCD=n +CONFIG_XEN_FBDEV_FRONTEND=n + +# USB +CONFIG_USB_DWC2=n +CONFIG_USB_CHIPIDEA=n +CONFIG_USB_ISP1760=n diff --git a/kernel/configs/ti_rt.config b/kernel/configs/ti_rt.config new file mode 100644 index 000000000000..d703fca08d4e --- /dev/null +++ b/kernel/configs/ti_rt.config @@ -0,0 +1,188 @@ +################################################## +# Real Time Linux Configs +################################################## + +CONFIG_PREEMPT=y +CONFIG_PREEMPT_RT=y + +# max out the kernel's tick +# +# Ideally this is a balance. Increasing this means we +# spend more time in the scheduler deciding what we +# should do and less time on doing it however this +# also minimizes the time spent running a low-priority +# task while a real-time priority task is awake +CONFIG_HZ_1000=y +CONFIG_HZ=1000 + +# omit scheduling ticks for CPUs with a single task +# +# If a CPU has only one runnable task there is little +# need to contiguously interrupt it as there is no other +# task for it to switch to. This comes at the cost of having +# to offload the CPU's RCU callbacks to another CPU with +# an active tick. +# +# For workloads with many short-lived tasks HZ_PERIODIC may +# be the better selection as adaptive-tick modes does not +# come without tradeoffs. For example the user-to kernel +# transitions are slightly more expensive +CONFIG_NO_HZ_FULL=y +CONFIG_CONTEXT_TRACKING_USER=y + +# track our RCU callbacks +# +# there are situations in which idle CPUs cannot enter +# a dynctick or adaptive-tick mode, the most common reason +# being when a CPU has RCU callbacks pending. However boosting +# this thread will compete with the realtime task. So let's +# disable this for now. +CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=n +CONFIG_RCU_BOOST=n + +# memory management tuning +# +# The SLUB allocator (default allocator used by the kernel) +# uses per-cpu caches to accelerate allocation and freeing of +# objects local to that processor. This comes at the cost of +# more indeterminism when freeing. Remove this to remove jitter +CONFIG_SLUB_CPU_PARTIAL=n + +# RCU system tuning +# +# The scheduler heavily utilizes the RCU subsystem to avoid +# large amounts of locking that would be needed otherwise. +# Removing this is showing to improve the am62x latency numbers +# using stress-ng and cyclictest. +CONFIG_RCU_TRACE=n + +# remove have kmemleak support +# +# Even-though the kmemleak detector is disabled, removing it +# completely from the build is showing improvements for the +# am62x latency numbers when monitoring with cyclictest and +# stress-ng to generate a synthetic background load. +CONFIG_HAVE_DEBUG_KMEMLEAK=n + +# Disable debug features + +# CoreSight debug and trace drivers are not typically used in +# production. Keep them disabled by default. Users can enable +# when debugging is needed. +CONFIG_CORESIGHT=n + +# Remove support for symbolic crash dumps. These are useful +# while debugging and not must have for production. This also +# helps reduce kernel size. +CONFIG_KALLSYMS=n + +# Disable profiling support. Not needed on a production system. +CONFIG_PROFILING=n + +# Disable support for performance events. These are used only +# for development and debug. Not needed on production system. +CONFIG_PERF_EVENTS=n + +# Disable eBPF support which is typically used for tracing and +# profiling. This prevents users from loading eBPF programs +# but BPF usage within the kernel should still work. Disabling +# JIT compiler will slow down packet filtering. +CONFIG_BPF_SYSCALL=n +CONFIG_BPF_JIT=n + +# Fine granularity IRQ time accounting is not needed on a +# production system. +CONFIG_IRQ_TIME_ACCOUNTING=n + +# HACK: speed up event stream timer +# +# More of a TODO for myself... however something is putting +# the CPUs in WFE. Turning this off will increase the +# frequency this timer that takes the CPUs our of WFE. +# +# Ideally this should have a negative effect on our measurements +# as our CPUs are interrupted more often. +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=n + +# Disable ARMv8.1+ architecture featurres. TI processors are based +# on ARMv8.0, and these feaures are not applicable. If enabled +# they increase worst case latency from 41 usec to 83 usec when +# tested on AM62x silicon with 1 hour cyclictest. +CONFIG_ARM64_HW_AFDBM=n +CONFIG_ARM64_PAN=n +CONFIG_ARM64_USE_LSE_ATOMICS=n +CONFIG_ARM64_RAS_EXTN=n +CONFIG_ARM64_CNP=n +CONFIG_ARM64_PTR_AUTH=n +CONFIG_ARM64_AMU_EXTN=n +CONFIG_ARM64_TLB_RANGE=n +CONFIG_ARM64_BTI=n +CONFIG_ARM64_E0PD=n + +# Disable group scheduling. We already disable RT_GROUP_SCHEDULING since +# there is no way to meaningfully use it (see kernel/configs/ti_arm64_prune.config). +# Disable group scheduling as such on RT kernel - the main focus anyway +# is on RT tasks there. +CONFIG_SCHED_AUTOGROUP=n + +# Disable symmetric multi-threading scheduler. Its not used on ARM64 +CONFIG_SCHED_SMT=n + +# Kernel stack base address randomization helps frustate attacks that depend on +# stack address determinism. But it has an impact on RT latency. Using 1 hour +# cyclictest on AM62x, it was found to increase worst case latency from 50 usecs +# to 69 usecs. For RT kernel alone, be biased towards better latency over extra +# security. +CONFIG_RANDOMIZE_KSTACK_OFFSET=n + +# Kernel can apply read-only permissions to linear aliases of VM areas. This +# provides extra layer of protection against advertent/inadvertent modification +# of read-only data through the linear alias. While its a useful security +# feature, it has performance and RT latency impact. When testing on AM62x +# hardware using cyclictest running for 1 hour, the worst case latency increased +# from 50 usecs to 58 usecs when this feature was enabled. +CONFIG_RODATA_FULL_DEFAULT_ENABLED=n + +# Kernel page table isolation (KAISER) unmaps kernel page tables when in EL0 +# to mitigate speculation attacks that enable privilege bypass. Note that CPUs +# used on K3 SoCs are not impacted by meltdown vulnerability (CVE-2017-5754). +# Using a 6 hour cyclictest, enabling KAISER was seen to increase worst case +# latency by about 20 usecs (increase from 50 usecs to 70 usecs on AM62x hardware +# using cutdown configuration designed to minimizeRT latency) +CONFIG_UNMAP_KERNEL_AT_EL0=n + +# Disable control groups which are not minimum required by systemd and docker. +# These can be enabled as per need of end application. +# +# Keeping device control group enabled as docker example does not start without +# it. +# +# Having these enabled has an impact on RT latency. Using AM62x, using cyclictest, +# a 40 usecs latency impact was seen (worst case latency went from 50 usecs to 90 +# usecs) +CONFIG_MEMCG=n +CONFIG_BLK_CGROUP=n +CONFIG_CGROUP_SCHED=n +CONFIG_CGROUP_PIDS=n +CONFIG_CGROUP_FREEZER=n +CONFIG_CGROUP_HUGETLB=n +CONFIG_CPUSETS=n +CONFIG_CGROUP_CPUACCT=n +CONFIG_CGROUP_PERF=n +CONFIG_CGROUP_BPF=n + +# HACK: Remove security features with real-time latency effects. +# Unless you have aggressive latency goals you will most likely +# want these feature enabled. ;) +CONFIG_ARM64_TAGGED_ADDR_ABI=n +CONFIG_SECCOMP=n +CONFIG_STACKPROTECTOR=n +CONFIG_VMAP_STACK=n +CONFIG_GCC_PLUGINS=n +CONFIG_RANDOMIZE_BASE=n + +#Disable PM features +CONFIG_HOTPLUG_CPU=n +CONFIG_CPU_IDLE=n +CONFIG_CPU_FREQ=n +CONFIG_SUSPEND=n diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c index ff5683a57f77..ffcbe307ca4b 100644 --- a/kernel/dma/coherent.c +++ b/kernel/dma/coherent.c @@ -4,6 +4,7 @@ * Borrowed from i386 */ #include <linux/io.h> +#include <linux/of.h> #include <linux/slab.h> #include <linux/kernel.h> #include <linux/module.h> @@ -146,6 +147,9 @@ static void *__dma_alloc_from_coherent(struct device *dev, unsigned long flags; int pageno; void *ret; + static bool ipu_early_booted; + + ipu_early_booted = of_property_read_bool(dev->of_node, "late_attach"); spin_lock_irqsave(&mem->spinlock, flags); @@ -163,7 +167,8 @@ static void *__dma_alloc_from_coherent(struct device *dev, ((dma_addr_t)pageno << PAGE_SHIFT); ret = mem->virt_base + ((dma_addr_t)pageno << PAGE_SHIFT); spin_unlock_irqrestore(&mem->spinlock, flags); - memset(ret, 0, size); + if (!(strstr(dev->kobj.name, "58820000.ipu") && ipu_early_booted)) + memset(ret, 0, size); return ret; err: spin_unlock_irqrestore(&mem->spinlock, flags); diff --git a/kernel/reboot.c b/kernel/reboot.c index 6ebef11c8876..395a0ea3c7a8 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -55,6 +55,7 @@ struct sys_off_handler { enum sys_off_mode mode; bool blocking; void *list; + struct device *dev; }; /* @@ -324,6 +325,7 @@ static int sys_off_notify(struct notifier_block *nb, data.cb_data = handler->cb_data; data.mode = mode; data.cmd = cmd; + data.dev = handler->dev; return handler->sys_off_cb(&data); } @@ -511,6 +513,7 @@ int devm_register_sys_off_handler(struct device *dev, handler = register_sys_off_handler(mode, priority, callback, cb_data); if (IS_ERR(handler)) return PTR_ERR(handler); + handler->dev = dev; return devm_add_action_or_reset(dev, devm_unregister_sys_off_handler, handler); |
